mirror of
https://github.com/jtgans/g13gui.git
synced 2025-06-20 08:23:50 -04:00
g13button: Swap out the old notification mechanism for triggers
This is a bit cleaner, overall, but also this makes key binding in the UI actually work again.
This commit is contained in:
parent
003ab3b526
commit
240be20b63
@ -15,15 +15,25 @@ class G13Button(Gtk.MenuButton, GtkObserver):
|
|||||||
GtkObserver.__init__(self)
|
GtkObserver.__init__(self)
|
||||||
|
|
||||||
self._prefs = prefs
|
self._prefs = prefs
|
||||||
self._prefs.registerObserver(self, {'selectedProfile'})
|
|
||||||
self._keyName = g13KeyName
|
self._keyName = g13KeyName
|
||||||
self._lastProfileName = None
|
self._lastProfileName = None
|
||||||
|
|
||||||
|
self._prefs.registerObserver(self, {'selectedProfile', self._keyName})
|
||||||
|
self.changeTrigger(self.onSelectedProfileChanged,
|
||||||
|
keys={'selectedProfile'})
|
||||||
|
self.changeTrigger(self.onBindingChanged, keys={self._keyName})
|
||||||
|
|
||||||
self._popover = ui.G13ButtonPopover(self, self._prefs, self._keyName)
|
self._popover = ui.G13ButtonPopover(self, self._prefs, self._keyName)
|
||||||
self.set_popover(self._popover)
|
self.set_popover(self._popover)
|
||||||
|
|
||||||
self.set_can_default(False)
|
self.set_can_default(False)
|
||||||
self.updateProfileRegistration()
|
self.updateProfileRegistration()
|
||||||
|
|
||||||
|
def onSelectedProfileChanged(self, subject, changeType, key, data):
|
||||||
|
self.updateProfileRegistration()
|
||||||
|
self.updateBindingDisplay()
|
||||||
|
|
||||||
|
def onBindingChanged(self, subject, changeType, key, data):
|
||||||
self.updateBindingDisplay()
|
self.updateBindingDisplay()
|
||||||
|
|
||||||
def updateProfileRegistration(self):
|
def updateProfileRegistration(self):
|
||||||
@ -46,20 +56,11 @@ class G13Button(Gtk.MenuButton, GtkObserver):
|
|||||||
if len(bindings) > 0:
|
if len(bindings) > 0:
|
||||||
keybinds = BindsToKeynames(bindings)
|
keybinds = BindsToKeynames(bindings)
|
||||||
accelerator = '+'.join(keybinds)
|
accelerator = '+'.join(keybinds)
|
||||||
shortcut = Gtk.ShortcutsShortcut(
|
label = Gtk.Label(accelerator)
|
||||||
shortcut_type=Gtk.ShortcutType.ACCELERATOR,
|
label.set_halign(Gtk.Align.CENTER)
|
||||||
accelerator=accelerator)
|
self.add(label)
|
||||||
shortcut.set_halign(Gtk.Align.CENTER)
|
|
||||||
self.add(shortcut)
|
|
||||||
else:
|
else:
|
||||||
label = Gtk.Label(self._keyName)
|
label = Gtk.Label(self._keyName)
|
||||||
self.add(label)
|
self.add(label)
|
||||||
|
|
||||||
self.show_all()
|
self.show_all()
|
||||||
|
|
||||||
def gtkSubjectChanged(self, subject, changeType, key, data=None):
|
|
||||||
if key == 'selectedProfile':
|
|
||||||
self.updateProfileRegistration()
|
|
||||||
self.updateBindingDisplay()
|
|
||||||
elif key == self._keyName:
|
|
||||||
self.updateBindingDisplay()
|
|
||||||
|
Loading…
Reference in New Issue
Block a user