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 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"

View File

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

View File

@ -1,2 +1,3 @@
from g13gui.model.bindingprofile import BindingProfile
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()