aboutsummaryrefslogtreecommitdiffstats
path: root/preferences_window.py
diff options
context:
space:
mode:
authorTeddy Wing2015-12-24 18:26:03 -0800
committerTeddy Wing2015-12-24 18:26:03 -0800
commit8778928a0989ea938fb06f0dd4c6639a6f9148ca (patch)
treec74529b901ff2dcb9883f293218b81ee8bbcfd58 /preferences_window.py
parent78cb02c8b70c037eda31e5a40b33da71067c8435 (diff)
downloadRoboFont-Equalize-Sidebearings-Key-8778928a0989ea938fb06f0dd4c6639a6f9148ca.tar.bz2
Make hotkey preference work
Separate preference handling into a new class and have the previous preferences class handle only the preferences window. We rename the old file to `preferences_window.py` and adjust the `info.plist` key for the menu item accordingly. Our new `Preference` class can now be imported from both `equalize_sidebearings.py` and `preferences_window.py` without causing confusion. I extracted it because asking for the `DEFAULT_ACTIVATION_KEY` from `preferences_window.py` from `equalize_sidebearings.py` would open the preferences window (bad). We now save the preferred key using RoboFont's extension preferences API. When the text input in the preferences window is modified, the new key preference gets saved. BUG: There's an issue with this implementation where the preferred key doesn't become active until the next launch of RoboFont because `EqualizeSidebearings` has its own instance of `Preferences` which has a stale `activation_key`.
Diffstat (limited to 'preferences_window.py')
-rw-r--r--preferences_window.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/preferences_window.py b/preferences_window.py
new file mode 100644
index 0000000..11d3b52
--- /dev/null
+++ b/preferences_window.py
@@ -0,0 +1,26 @@
+import vanilla
+
+from preferences import Preferences
+
+
+class PreferencesWindow(object):
+
+ def __init__(self):
+ self.preferences = Preferences()
+
+ self.w = vanilla.Window((150, 50), 'Equalize Sidebearings')
+ self.w.activation_key_label = vanilla.TextBox(
+ (10, 15, -10, 22),
+ 'Short Key:')
+ self.w.activation_key = vanilla.EditText(
+ posSize=(82, 12, -10, 25),
+ text=self.preferences.activation_key,
+ callback=self.edit_text_callback)
+ self.w.open()
+
+ def edit_text_callback(self, sender):
+ self.preferences.activation_key = sender.get()
+ self.preferences.save()
+
+
+PreferencesWindow()