mirror of
https://github.com/jtgans/g13gui.git
synced 2025-06-20 08:23:50 -04:00
parent
a1a953bc36
commit
e326097f7b
@ -32,6 +32,7 @@ class AppletManager(dbus.service.Object, Subject):
|
|||||||
|
|
||||||
# [name] -> (sender, proxy)
|
# [name] -> (sender, proxy)
|
||||||
self._applets = {}
|
self._applets = {}
|
||||||
|
self._datastore = {}
|
||||||
|
|
||||||
self._switcher = Switcher(self)
|
self._switcher = Switcher(self)
|
||||||
self._lastApplet = self._switcher
|
self._lastApplet = self._switcher
|
||||||
@ -88,10 +89,15 @@ class AppletManager(dbus.service.Object, Subject):
|
|||||||
def _removeActiveApplet(self):
|
def _removeActiveApplet(self):
|
||||||
senders = {proxy: name for (name, (_, proxy)) in self._applets.items()}
|
senders = {proxy: name for (name, (_, proxy)) in self._applets.items()}
|
||||||
print('senders is %s' % (repr(senders)))
|
print('senders is %s' % (repr(senders)))
|
||||||
name = senders[self._activeApplet]
|
|
||||||
del self._applets[name]
|
|
||||||
|
|
||||||
self.addChange(ChangeType.REMOVE, 'applet', name)
|
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._activeApplet = self._switcher
|
||||||
self._lastApplet = self._switcher
|
self._lastApplet = self._switcher
|
||||||
self.activeApplet = 'Switcher'
|
self.activeApplet = 'Switcher'
|
||||||
@ -196,3 +202,22 @@ class AppletManager(dbus.service.Object, Subject):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
GLib.idle_add(self._prefs.setSelectedProfile, profileName)
|
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 time
|
||||||
import enum
|
import enum
|
||||||
import psutil
|
import psutil
|
||||||
|
import json
|
||||||
|
|
||||||
from g13gui.applet.applet import Applet
|
from g13gui.applet.applet import Applet
|
||||||
from g13gui.applet.applet import BUTTONS
|
from g13gui.applet.applet import BUTTONS
|
||||||
@ -23,6 +24,7 @@ class ClockMode(enum.Enum):
|
|||||||
|
|
||||||
class ClockApplet(Applet):
|
class ClockApplet(Applet):
|
||||||
NAME = 'Clock'
|
NAME = 'Clock'
|
||||||
|
DATASTORE_KEY = 'com.theonelab.g13gui.applets.clock'
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
Applet.__init__(self, ClockApplet.NAME)
|
Applet.__init__(self, ClockApplet.NAME)
|
||||||
@ -108,6 +110,34 @@ class ClockApplet(Applet):
|
|||||||
elif key == 'L3':
|
elif key == 'L3':
|
||||||
self._ramGraphToggle.toggle()
|
self._ramGraphToggle.toggle()
|
||||||
self._ramGraph.visible = self._ramGraphToggle.isOn
|
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():
|
def main():
|
||||||
|
Loading…
Reference in New Issue
Block a user