ui: Make MainWindow actually save prefs to disk on change

This commit is contained in:
June Tate-Gans 2021-05-09 23:12:28 -05:00
parent c924aba55c
commit 9d7d4fafa2

View File

@ -28,7 +28,7 @@ class MainWindow(Gtk.ApplicationWindow, GtkObserver):
self._app = app self._app = app
self._prefs = prefs self._prefs = prefs
self._prefs.registerObserver(self, 'selectedProfile') self._prefs.registerObserver(self, {'selectedProfile'})
self._prefs.selectedProfile().registerObserver(self) self._prefs.selectedProfile().registerObserver(self)
self._lastProfileName = self._prefs.selectedProfileName() self._lastProfileName = self._prefs.selectedProfileName()
@ -52,19 +52,21 @@ class MainWindow(Gtk.ApplicationWindow, GtkObserver):
self.show_all() self.show_all()
def _updateProfileRegistration(self): def _updateProfileRegistration(self):
self._lastProfileName.removeObserver(self) lastProfile = self._prefs.profiles(self._lastProfileName)
self._lastProfileName = self._prefs.selectedProfile() lastProfile.removeObserver(self)
self._lastProfileName.registerObserver(self) self._lastProfileName = self._prefs.selectedProfileName()
self._prefs.selectedProfile().registerObserver(self)
def onChangeTrigger(self, subject, changeType, key, data=None): def onChangeTrigger(self, subject, changeType, key, data=None):
if key == 'selectedProfile': if key == 'selectedProfile':
self._updateProfileRegistration(self) self._updateProfileRegistration()
elif key == 'profile':
pass
t = threading.Thread( t = threading.Thread(
target=PreferencesStore.storePrefs, args=(self._prefs,)) target=PreferencesStore.storePrefs,
args=(self._prefs,),
daemon=True)
t.start() t.start()
print('Detected change -- saving via %s' % repr(t))
def setupHeaderBar(self): def setupHeaderBar(self):
self._headerBar = Gtk.HeaderBar() self._headerBar = Gtk.HeaderBar()