UBA Context Plugins - eliranwong/UniqueBible GitHub Wiki
UBA Context Plugins
UBA context plugins are plugins accessible from right-click context menu.
They are displayed at the end of context menu.
A valid plugin file should be written in python file extension ".py".
Read https://github.com/eliranwong/UniqueBible/wiki/UBA-Plugins for other types of UBA plugins.
File Location
All UBA context plugins are placed in folder "plugins/context/" inside UniqueBible home directory.
Enable Plugins
You need to have "enablePlugins" checked on "Set Config Flags" window.
config.mainWindow
config.mainWindow points to the mainWindow of UBA. This gives developer an access point of UBA built-in functions.
config.pluginContext
The text selected by user before a right-click is assigned to config.pluginContext, with which plugin could process selected text.
config.contextSource
The widget where context menu is called from is pointed by config.contextSource, so developer can distinguish whether it is called from bible window or study window.
An example
A context plugin could be as simple as below, to display selected text in a dialog window.
import config
config.mainWindow.displayMessage(config.pluginContext)
Another example
The following two lines print all html codes:
import config
config.contextSource.page().toHtml(print)
Use as a Shortcut
You may use context plugin as a shortcut to a particular resource, e.g.
Save these two lines below as a file in folder "UniqueBible/plugins/context/" and name it "WordNet.py".
You can then select a word, right-click and select "WordNet" to search this word in a third party dictionary called "wordnet".
import config
config.mainWindow.runTextCommand("SEARCHTHIRDDICTIONARY:::wordnet:::{0}".format(config.pluginContext))
Hide supporting files from context menu
You may have multiple files for a plugin and some of which are shared library files, which you do not want to display on context menu.
You can do this by placing them into a sub-folder. Python files placed inside a sub-folder within the directory "plugins/context/" are not displayed on context menu.
Real Examples
https://github.com/eliranwong/UniqueBible/tree/master/plugins/context