g13gui: Migrate preferences storage to a single class

Helps deal with separations of concerns.
This commit is contained in:
June Tate-Gans 2021-04-28 21:27:53 -05:00
parent d9e391e90a
commit fce850f786
4 changed files with 31 additions and 11 deletions

View File

@ -9,6 +9,7 @@ import traceback
import xdg.BaseDirectory as basedir import xdg.BaseDirectory as basedir
import json import json
from g13gui.model import PreferencesStore
from g13gui.common import PROFILES_CONFIG_PATH from g13gui.common import PROFILES_CONFIG_PATH
from g13gui.common import VERSION from g13gui.common import VERSION
@ -31,13 +32,11 @@ class UploadTask():
class SaveTask(): class SaveTask():
def __init__(self, prefsDict): def __init__(self, prefs):
self._prefsDict = prefsDict self._prefs = prefs
def run(self, outfp, infp, callback): def run(self, outfp, infp, callback):
with open(PROFILES_CONFIG_PATH, 'w') as f: PreferencesStore.storePrefs(self._prefs)
f.write(json.dumps(self._prefsDict, default=str))
f.flush()
G13D_IN_FIFO = "/run/g13d/in" G13D_IN_FIFO = "/run/g13d/in"

View File

@ -1,22 +1,20 @@
#!/usr/bin/python #!/usr/bin/python
import queue
import gi import gi
import json
import queue
import g13gui.model as model import g13gui.model as model
import g13gui.ui as ui import g13gui.ui as ui
from g13gui.g13d import G13DWorker from g13gui.g13d import G13DWorker
from g13gui.common import PROFILES_CONFIG_PATH
gi.require_version('Gtk', '3.0') gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, GObject from gi.repository import Gtk, GObject
VERSION = '0.1.0'
if __name__ == '__main__': if __name__ == '__main__':
prefs = model.Preferences() prefs = model.PreferencesStore.getPrefs()
queue = queue.Queue() queue = queue.Queue()
win = ui.MainWindow(queue, prefs) win = ui.MainWindow(queue, prefs)

View File

@ -1,2 +1,3 @@
from g13gui.model.bindingprofile import BindingProfile from g13gui.model.bindingprofile import BindingProfile
from g13gui.model.prefs import Preferences from g13gui.model.prefs import Preferences
from g13gui.model.prefsstore import PreferencesStore

View File

@ -0,0 +1,22 @@
import json
import g13gui.model as model
from g13gui.common import PROFILES_CONFIG_PATH
class PreferencesStore(object):
def getPrefs():
try:
with open(PROFILES_CONFIG_PATH, 'r') as f:
data = f.read()
prefsDict = json.loads(data)
return model.Preferences(prefsDict)
except:
return model.Preferences()
def storePrefs(prefs):
prefsDict = prefs.saveToDict()
with open(PROFILES_CONFIG_PATH, 'w') as f:
f.write(json.dumps(prefsDict, default=str))
f.flush()