Mobileread
Sample Plugins demonstrating retrieving/saving preferences
#1  DiapDealer 02-01-2015, 05:22 PM
Because storing preferences can be important for a Plugin, I have designed a new python launcher preferences class and integrated it right into the *container classes, so persistent preferences storage is easily available for all plugins.

To illustrate how to create and use these settings, I've designed two simple plugins that demonstrate how the interface should be used.

See the attached "PrefsExampleGroups_v0.0.2.zip" and "PrefsExampleSimple_v0.0.2.zip".

Important
In order to use this new preferences interface, you will need to be using Sigil v0.8.3 or greater.

Install them, use them, and inspect the code in plugin.py

In a nutshell:

From within the run method of plugin.py
Code
# Get preferences from json file
prefs = bk.getPrefs() # a dictionary
Code
# Set some defaults (used only when no preferences exist yet--like first run).
prefs.defaults['lastDir'] = os.path.expanduser('~')
prefs.defaults['lastFile'] = ''
Code
# Use a preference variable
print ('Last directory opened = ', prefs['lastDir'])
Code
# Set/change preference variable
prefs['lastDir'] = os.path.dirname(inpath)
Code
# Save prefs back to json file
bk.savePrefs(prefs)
[zip] PrefsExampleSimple_v0.0.2.zip (1.6 KB, 303 views)
[zip] PrefsExampleGroups_v0.0.2.zip (2.0 KB, 312 views)
Reply 

#2  Toxaris 02-02-2015, 02:53 AM
Where will the JSON file be stored and what will it be called?
Reply 

#3  DiapDealer 02-02-2015, 08:18 AM
A "plugins_prefs" directory will be created in the Sigil user preferences folder (use the "Open Preferences Location" button from the Sigil preferences dialog). Each plugin will have it's own subdirectory there (plugin name) and the <plugin name>.json file will be in that subdirectory.

The directory structure won't be there until the plugin saves its preferences for the first time, though.
Reply 

Today's Posts | Search this Thread | Login | Register