ui: Add changeTriggers to complete the migration to them

This commit is contained in:
June Tate-Gans 2021-05-04 01:41:56 -05:00
parent aecf1d0644
commit ccca4b5016
4 changed files with 20 additions and 16 deletions

View File

@ -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()

View File

@ -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):

View File

@ -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()

View File

@ -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':
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])
if key == 'selectedProfile' and not self._ignoreSelectionChange:
self.update()