mirror of
https://github.com/jtgans/g13gui.git
synced 2025-06-20 00:14:09 -04:00
parent
a1a953bc36
commit
e326097f7b
@ -32,6 +32,7 @@ class AppletManager(dbus.service.Object, Subject):
|
||||
|
||||
# [name] -> (sender, proxy)
|
||||
self._applets = {}
|
||||
self._datastore = {}
|
||||
|
||||
self._switcher = Switcher(self)
|
||||
self._lastApplet = self._switcher
|
||||
@ -88,10 +89,15 @@ class AppletManager(dbus.service.Object, Subject):
|
||||
def _removeActiveApplet(self):
|
||||
senders = {proxy: name for (name, (_, proxy)) in self._applets.items()}
|
||||
print('senders is %s' % (repr(senders)))
|
||||
|
||||
try:
|
||||
name = senders[self._activeApplet]
|
||||
del self._applets[name]
|
||||
|
||||
self.addChange(ChangeType.REMOVE, 'applet', name)
|
||||
except KeyError as err:
|
||||
print('Desync occurred: senders does not contain %s!',
|
||||
(self._activeApplet))
|
||||
|
||||
self._activeApplet = self._switcher
|
||||
self._lastApplet = self._switcher
|
||||
self.activeApplet = 'Switcher'
|
||||
@ -196,3 +202,22 @@ class AppletManager(dbus.service.Object, Subject):
|
||||
return False
|
||||
|
||||
GLib.idle_add(self._prefs.setSelectedProfile, profileName)
|
||||
|
||||
@dbus.service.method(dbus_interface=INTERFACE_NAME,
|
||||
in_signature='ss',
|
||||
sender_keyword='sender')
|
||||
def SetKey(self, keyName, data, sender):
|
||||
if sender not in [s[0] for s in self._applets.values()]:
|
||||
print('Sender %s is not in the registered list of applets.' % (sender))
|
||||
return
|
||||
self._datastore[keyName] = data
|
||||
|
||||
@dbus.service.method(dbus_interface=INTERFACE_NAME,
|
||||
in_signature='s', out_signature='s',
|
||||
sender_keyword='sender')
|
||||
def GetKey(self, keyName, sender):
|
||||
if sender not in [s[0] for s in self._applets.values()]:
|
||||
print('Sender %s is not in the registered list of applets.' % (sender))
|
||||
return ''
|
||||
return self._datastore.get(keyName, '')
|
||||
|
||||
|
@ -2,6 +2,7 @@ import gi
|
||||
import time
|
||||
import enum
|
||||
import psutil
|
||||
import json
|
||||
|
||||
from g13gui.applet.applet import Applet
|
||||
from g13gui.applet.applet import BUTTONS
|
||||
@ -23,6 +24,7 @@ class ClockMode(enum.Enum):
|
||||
|
||||
class ClockApplet(Applet):
|
||||
NAME = 'Clock'
|
||||
DATASTORE_KEY = 'com.theonelab.g13gui.applets.clock'
|
||||
|
||||
def __init__(self):
|
||||
Applet.__init__(self, ClockApplet.NAME)
|
||||
@ -108,6 +110,34 @@ class ClockApplet(Applet):
|
||||
elif key == 'L3':
|
||||
self._ramGraphToggle.toggle()
|
||||
self._ramGraph.visible = self._ramGraphToggle.isOn
|
||||
GLib.idle_add(self._storeSettings)
|
||||
|
||||
def onRegistered(self):
|
||||
GLib.idle_add(self._loadSettings)
|
||||
|
||||
def _storeSettings(self):
|
||||
settings = json.dumps([
|
||||
self._clockMode.value,
|
||||
self._loadGraph.visible,
|
||||
self._ramGraph.visible
|
||||
])
|
||||
print(f'Storing settings [{settings}]')
|
||||
self.manager.SetKey(ClockApplet.DATASTORE_KEY, settings)
|
||||
|
||||
def _loadSettings(self):
|
||||
settings = self.manager.GetKey(ClockApplet.DATASTORE_KEY)
|
||||
print(f'Loaded settings are [{settings}]')
|
||||
if settings:
|
||||
(clockMode,
|
||||
loadGraphVisible,
|
||||
ramGraphVisible) = json.loads(settings)
|
||||
self._clockMode = ClockMode(clockMode)
|
||||
self._loadGraph.visible = loadGraphVisible
|
||||
self._loadGraphToggle.isOn = loadGraphVisible
|
||||
self._ramGraph.visible = ramGraphVisible
|
||||
self._ramGraphToggle.isOn = ramGraphVisible
|
||||
self._onModeSwitch()
|
||||
self._update()
|
||||
|
||||
|
||||
def main():
|
||||
|
Loading…
Reference in New Issue
Block a user