1
from StateSaver import DefaultStateSaver
2
from ConfigDialog import ConfigDialog
3
from main import ICON, VERSION
4
from utils.datatypes import *
11
class DaemonConfigger(ConfigDialog):
13
Configuration Dialog for the daemon.
17
("title", {"label": _("Editor to view/edit the desklet source code")}),
18
("uri", {"label": _("Your favorite editor"),
20
("title", {"label": _("Screen Resolution (DPI)")}),
21
("dpi", {"label": "<small>" +
22
_("Adjust the value above so that the bar will be "
23
"exactly <b>5 cm</b> or <b>1.97\"</b> wide") +
25
"bind": "dpi", "value": 96}),
26
("title", {"label": _("Behavior")}),
27
("boolean", {"label": _("Show _tray icon (takes effect after restart)"),
29
("boolean", {"label": _("Show _notification while loading a desklet"),
30
"bind": "loadsplash"}),
31
("keybinding", {"label": _("Key for toggling Float mode:"),
37
def __init__(self, path=""):
39
self.__backend = DefaultStateSaver()
41
ConfigDialog.__init__(self, path)
43
self.set_property("title", _("Configuration"))
44
self.set_banner(ICON, "<big>gDesklets Configuration</big>\n"
45
"Version %s" % (VERSION,))
47
self._set_setter(self.__setter)
48
self._set_getter(self.__getter)
49
self._set_caller(self.__caller)
51
self.build(self.__ITEMS)
54
self.__read_cmd_line()
58
def __setter(self, key, value, datatype):
61
settings.editor = value
66
elif (key == "float_key"):
67
settings.float_key = value
69
elif (key == "loadsplash"):
70
settings.show_load_splash = value
72
elif (key == "trayicon"):
73
settings.show_tray_icon = value
75
self.__backend.set_key(key, value)
78
def __getter(self, key):
81
return settings.editor
86
elif (key == "float_key"):
87
return settings.float_key
89
elif (key == "loadsplash"):
90
return settings.show_load_splash
92
elif (key == "trayicon"):
93
return settings.show_tray_icon
96
return "gDesklets killed a kitten!"
99
def __caller(self, *args): pass
102
def __load_config(self):
104
settings.editor = self.__backend.get_key("editor", settings.editor)
105
settings.dpi = self.__backend.get_key("dpi", settings.dpi)
106
settings.float_key = self.__backend.get_key("float_key",
108
settings.show_load_splash = self.__backend.get_key("loadsplash",
109
settings.show_load_splash)
110
settings.show_tray_icon = self.__backend.get_key("trayicon",
111
settings.show_tray_icon)
113
def __read_cmd_line(self):
115
OPTIONS = ("sm-client-id=", "sm-config-prefix=", "sm-disable",
119
# Parses the given list of command line arguments. This is usually
124
opts, rest = getopt.getopt(sys.argv[1:], "nop:v", OPTIONS)
125
except getopt.GetoptError:
129
if (o == "--no-tray-icon"):
130
settings.show_tray_icon = False
131
elif (o in ("--sm-client-id", "--sm-config-prefix",