diff --git a/g13gui/g13gui/g13d.py b/g13gui/g13gui/g13d.py index 01483a2..37aa90e 100644 --- a/g13gui/g13gui/g13d.py +++ b/g13gui/g13gui/g13d.py @@ -9,6 +9,7 @@ import traceback import xdg.BaseDirectory as basedir import json +from g13gui.model import PreferencesStore from g13gui.common import PROFILES_CONFIG_PATH from g13gui.common import VERSION @@ -31,13 +32,11 @@ class UploadTask(): class SaveTask(): - def __init__(self, prefsDict): - self._prefsDict = prefsDict + def __init__(self, prefs): + self._prefs = prefs def run(self, outfp, infp, callback): - with open(PROFILES_CONFIG_PATH, 'w') as f: - f.write(json.dumps(self._prefsDict, default=str)) - f.flush() + PreferencesStore.storePrefs(self._prefs) G13D_IN_FIFO = "/run/g13d/in" diff --git a/g13gui/g13gui/main.py b/g13gui/g13gui/main.py index 483e26c..29a55bd 100644 --- a/g13gui/g13gui/main.py +++ b/g13gui/g13gui/main.py @@ -1,22 +1,20 @@ #!/usr/bin/python -import queue import gi +import json +import queue import g13gui.model as model import g13gui.ui as ui - from g13gui.g13d import G13DWorker +from g13gui.common import PROFILES_CONFIG_PATH gi.require_version('Gtk', '3.0') from gi.repository import Gtk, GObject -VERSION = '0.1.0' - - if __name__ == '__main__': - prefs = model.Preferences() + prefs = model.PreferencesStore.getPrefs() queue = queue.Queue() win = ui.MainWindow(queue, prefs) diff --git a/g13gui/g13gui/model/__init__.py b/g13gui/g13gui/model/__init__.py index ae7d54e..33f9963 100644 --- a/g13gui/g13gui/model/__init__.py +++ b/g13gui/g13gui/model/__init__.py @@ -1,2 +1,3 @@ from g13gui.model.bindingprofile import BindingProfile from g13gui.model.prefs import Preferences +from g13gui.model.prefsstore import PreferencesStore diff --git a/g13gui/g13gui/model/prefsstore.py b/g13gui/g13gui/model/prefsstore.py new file mode 100644 index 0000000..51e0f0b --- /dev/null +++ b/g13gui/g13gui/model/prefsstore.py @@ -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()