mirror of
https://github.com/jtgans/g13gui.git
synced 2025-06-20 00:14:09 -04:00
ui: Add changeTriggers to complete the migration to them
This commit is contained in:
parent
aecf1d0644
commit
ccca4b5016
@ -17,13 +17,16 @@ class AppIndicator(GtkObserver):
|
||||
self._initIndicator()
|
||||
|
||||
self._prefs = prefs
|
||||
self._prefs.registerObserver(self, {'profile'})
|
||||
self._mainWindow = mainWindow
|
||||
self._menu = Gtk.Menu()
|
||||
self._menuItems = []
|
||||
self._indicator.set_menu(self._menu)
|
||||
self._rebuilding = False
|
||||
|
||||
self._prefs.registerObserver(self, {'selectedProfile'})
|
||||
self.changeTrigger(self.onSelectedProfileChanged,
|
||||
keys={'selectedProfile'})
|
||||
|
||||
self._rebuildMenu()
|
||||
|
||||
def _initIndicator(self):
|
||||
@ -79,7 +82,6 @@ class AppIndicator(GtkObserver):
|
||||
|
||||
def changeProfile(self, menuItem):
|
||||
self._prefs.setSelectedProfile(menuItem.get_label())
|
||||
self._rebuildMenu()
|
||||
|
||||
def gtkSubjectChanged(self, subject, changeType, key, data=None):
|
||||
def onSelectedProfileChanged(self, subject, changeType, key, data):
|
||||
self._rebuildMenu()
|
||||
|
@ -20,6 +20,8 @@ class G13ButtonPopover(Gtk.Popover, GtkObserver):
|
||||
|
||||
self._prefs = prefs
|
||||
self._prefs.registerObserver(self, {'selectedProfile'})
|
||||
self.changeTrigger(self.onSelectedProfileChanged,
|
||||
keys={'selectedProfile'})
|
||||
|
||||
self._inputReader = InputReader()
|
||||
self._inputReader.connect('evdev-key-pressed', self.keypress)
|
||||
@ -43,7 +45,7 @@ class G13ButtonPopover(Gtk.Popover, GtkObserver):
|
||||
selectedProfile = self._prefs.selectedProfile()
|
||||
self._currentBindings = selectedProfile.keyBinding(self._keyName)
|
||||
|
||||
def gtkSubjectChanged(self, subject, changeType, key, data=None):
|
||||
def onSelectedProfileChanged(self, subject, changeType, key, data):
|
||||
self.updateBinding()
|
||||
|
||||
def build(self):
|
||||
|
@ -28,6 +28,8 @@ class MainWindow(Gtk.Window, GtkObserver):
|
||||
self._prefs.selectedProfile().registerObserver(self)
|
||||
self._lastProfileName = self._prefs.selectedProfileName()
|
||||
|
||||
self.changeTrigger(self.onChangeTrigger)
|
||||
|
||||
self.setupHeaderBar()
|
||||
|
||||
self._box = Gtk.Box(spacing=6, orientation=Gtk.Orientation.VERTICAL)
|
||||
@ -43,7 +45,7 @@ class MainWindow(Gtk.Window, GtkObserver):
|
||||
|
||||
self.setupG13ButtonGrid()
|
||||
|
||||
def gtkSubjectChanged(self, subject, changeType, key, data=None):
|
||||
def onChangeTrigger(self, subject, changeType, key, data=None):
|
||||
print('Subject changed! Need to save!')
|
||||
pass
|
||||
|
||||
@ -53,7 +55,6 @@ class MainWindow(Gtk.Window, GtkObserver):
|
||||
self._headerBar.set_show_close_button(True)
|
||||
|
||||
self._profileComboBox = ui.ProfileComboBox(self._prefs)
|
||||
self._profileComboBox.connect('changed', self._profileChanged)
|
||||
self._headerBar.add(self._profileComboBox)
|
||||
|
||||
addProfileButton = Gtk.MenuButton.new()
|
||||
@ -104,9 +105,6 @@ class MainWindow(Gtk.Window, GtkObserver):
|
||||
else:
|
||||
self._infoBar.hide()
|
||||
|
||||
def _profileChanged(self, widget):
|
||||
self._doUpload()
|
||||
|
||||
def uploadClicked(self, widget):
|
||||
self._doUpload()
|
||||
self._doSave()
|
||||
|
@ -24,6 +24,8 @@ class ProfileComboBox(Gtk.ComboBoxText, GtkObserver):
|
||||
|
||||
self._prefs = prefs
|
||||
self._prefs.registerObserver(self, {'profile', 'selectedProfile'})
|
||||
self.changeTrigger(self.onSelectedProfileChanged,
|
||||
keys={'selectedProfile'})
|
||||
self._isUpdating = False
|
||||
self._ignoreSelectionChange = False
|
||||
|
||||
@ -54,11 +56,11 @@ class ProfileComboBox(Gtk.ComboBoxText, GtkObserver):
|
||||
self.set_active(row)
|
||||
row = row + 1
|
||||
|
||||
def gtkSubjectChanged(self, subject, changeType, key, data=None):
|
||||
if key == 'profile':
|
||||
name = list(data.keys())[0]
|
||||
if changeType == ChangeType.ADD:
|
||||
self._model.append([name, name])
|
||||
|
||||
if key == 'selectedProfile' and not self._ignoreSelectionChange:
|
||||
def onSelectedProfileChanged(self, subject, changeType, key, data):
|
||||
if not self._ignoreSelectionChange:
|
||||
self.update()
|
||||
|
||||
def onProfileChanged(self, subject, changeType, key, data):
|
||||
name = list(data.keys())[0]
|
||||
if changeType == ChangeType.ADD:
|
||||
self._model.append([name, name])
|
||||
|
Loading…
Reference in New Issue
Block a user