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._initIndicator()
self._prefs = prefs self._prefs = prefs
self._prefs.registerObserver(self, {'profile'})
self._mainWindow = mainWindow self._mainWindow = mainWindow
self._menu = Gtk.Menu() self._menu = Gtk.Menu()
self._menuItems = [] self._menuItems = []
self._indicator.set_menu(self._menu) self._indicator.set_menu(self._menu)
self._rebuilding = False self._rebuilding = False
self._prefs.registerObserver(self, {'selectedProfile'})
self.changeTrigger(self.onSelectedProfileChanged,
keys={'selectedProfile'})
self._rebuildMenu() self._rebuildMenu()
def _initIndicator(self): def _initIndicator(self):
@ -79,7 +82,6 @@ class AppIndicator(GtkObserver):
def changeProfile(self, menuItem): def changeProfile(self, menuItem):
self._prefs.setSelectedProfile(menuItem.get_label()) 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() self._rebuildMenu()

View File

@ -20,6 +20,8 @@ class G13ButtonPopover(Gtk.Popover, GtkObserver):
self._prefs = prefs self._prefs = prefs
self._prefs.registerObserver(self, {'selectedProfile'}) self._prefs.registerObserver(self, {'selectedProfile'})
self.changeTrigger(self.onSelectedProfileChanged,
keys={'selectedProfile'})
self._inputReader = InputReader() self._inputReader = InputReader()
self._inputReader.connect('evdev-key-pressed', self.keypress) self._inputReader.connect('evdev-key-pressed', self.keypress)
@ -43,7 +45,7 @@ class G13ButtonPopover(Gtk.Popover, GtkObserver):
selectedProfile = self._prefs.selectedProfile() selectedProfile = self._prefs.selectedProfile()
self._currentBindings = selectedProfile.keyBinding(self._keyName) self._currentBindings = selectedProfile.keyBinding(self._keyName)
def gtkSubjectChanged(self, subject, changeType, key, data=None): def onSelectedProfileChanged(self, subject, changeType, key, data):
self.updateBinding() self.updateBinding()
def build(self): def build(self):

View File

@ -28,6 +28,8 @@ class MainWindow(Gtk.Window, GtkObserver):
self._prefs.selectedProfile().registerObserver(self) self._prefs.selectedProfile().registerObserver(self)
self._lastProfileName = self._prefs.selectedProfileName() self._lastProfileName = self._prefs.selectedProfileName()
self.changeTrigger(self.onChangeTrigger)
self.setupHeaderBar() self.setupHeaderBar()
self._box = Gtk.Box(spacing=6, orientation=Gtk.Orientation.VERTICAL) self._box = Gtk.Box(spacing=6, orientation=Gtk.Orientation.VERTICAL)
@ -43,7 +45,7 @@ class MainWindow(Gtk.Window, GtkObserver):
self.setupG13ButtonGrid() self.setupG13ButtonGrid()
def gtkSubjectChanged(self, subject, changeType, key, data=None): def onChangeTrigger(self, subject, changeType, key, data=None):
print('Subject changed! Need to save!') print('Subject changed! Need to save!')
pass pass
@ -53,7 +55,6 @@ class MainWindow(Gtk.Window, GtkObserver):
self._headerBar.set_show_close_button(True) self._headerBar.set_show_close_button(True)
self._profileComboBox = ui.ProfileComboBox(self._prefs) self._profileComboBox = ui.ProfileComboBox(self._prefs)
self._profileComboBox.connect('changed', self._profileChanged)
self._headerBar.add(self._profileComboBox) self._headerBar.add(self._profileComboBox)
addProfileButton = Gtk.MenuButton.new() addProfileButton = Gtk.MenuButton.new()
@ -104,9 +105,6 @@ class MainWindow(Gtk.Window, GtkObserver):
else: else:
self._infoBar.hide() self._infoBar.hide()
def _profileChanged(self, widget):
self._doUpload()
def uploadClicked(self, widget): def uploadClicked(self, widget):
self._doUpload() self._doUpload()
self._doSave() self._doSave()

View File

@ -24,6 +24,8 @@ class ProfileComboBox(Gtk.ComboBoxText, GtkObserver):
self._prefs = prefs self._prefs = prefs
self._prefs.registerObserver(self, {'profile', 'selectedProfile'}) self._prefs.registerObserver(self, {'profile', 'selectedProfile'})
self.changeTrigger(self.onSelectedProfileChanged,
keys={'selectedProfile'})
self._isUpdating = False self._isUpdating = False
self._ignoreSelectionChange = False self._ignoreSelectionChange = False
@ -54,11 +56,11 @@ class ProfileComboBox(Gtk.ComboBoxText, GtkObserver):
self.set_active(row) self.set_active(row)
row = row + 1 row = row + 1
def gtkSubjectChanged(self, subject, changeType, key, data=None): def onSelectedProfileChanged(self, subject, changeType, key, data):
if key == 'profile': if not self._ignoreSelectionChange:
self.update()
def onProfileChanged(self, subject, changeType, key, data):
name = list(data.keys())[0] name = list(data.keys())[0]
if changeType == ChangeType.ADD: if changeType == ChangeType.ADD:
self._model.append([name, name]) self._model.append([name, name])
if key == 'selectedProfile' and not self._ignoreSelectionChange:
self.update()