1
# -*- coding: UTF-8 -*-
3
# +-------------------------------------------------------------------------------------+
5
# +-------------------------------------------------------------------------------------+
6
# | Copyright (c) 2005,2006 Adolfo González Blázquez <code@infinicode.org> |
8
# | This program is free software; you can redistribute it and/or |
9
# | modify it under the terms of the GNU General Public License |
10
# | as published by the Free Software Foundation; either version 2 |
11
# | of the License, or (at your option) any later version. |
13
# | This program is distributed in the hope that it will be useful, |
14
# | but WITHOUT ANY WARRANTY; without even the implied warranty of |
15
# | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16
# | GNU General Public License for more details. |
18
# | You should have received a copy of the GNU General Public License |
19
# | along with this program; if not, write to the Free Software |
20
# | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
21
# +-------------------------------------------------------------------------------------+
25
class ComputertempGConf:
27
def __init__(self, app):
30
self.applet = app.applet
32
self.gconf_path = "/apps/computertemp"
33
self.gconf_client = gconf.client_get_default()
35
self.gconf_applet = self.applet.get_preferences_key()
37
self.gconf_key_sensor = self.gconf_applet + '/sensor'
38
self.gconf_key_thermalzone = self.gconf_applet + '/thermal_zone'
39
self.gconf_key_visualization_mode = self.gconf_applet + '/visualization_mode'
40
self.gconf_key_visualization_units = self.gconf_applet + '/visualization_units'
41
self.gconf_key_timeout = self.gconf_applet + '/timeout'
42
self.gconf_key_timeout_log = self.gconf_applet + '/timeout_log'
43
self.gconf_key_min_temp = self.gconf_applet + '/min_temp'
44
self.gconf_key_max_temp = self.gconf_applet + '/max_temp'
45
self.gconf_key_logging = self.gconf_applet + '/logging'
46
self.gconf_key_autologname = self.gconf_applet + '/autologname'
47
self.gconf_key_log_filename = self.gconf_applet + '/log_filename'
48
self.gconf_key_log_info = self.gconf_applet + '/log_info'
49
self.gconf_key_alarm_enabled = self.gconf_applet + '/alarm_enabled'
50
self.gconf_key_alarm_limit = self.gconf_applet + '/alarm_limit'
51
self.gconf_key_alarm_when = self.gconf_applet + '/alarm_when'
52
self.gconf_key_alarm_command = self.gconf_applet + '/alarm_command'
53
self.gconf_key_alarm_repeat = self.gconf_applet + '/alarm_repeat'
54
self.gconf_key_debug = self.gconf_applet + '/debug'
56
self.applet.add_preferences("/schemas" + self.gconf_path)
57
self.gconf_client.add_dir(self.gconf_applet, gconf.CLIENT_PRELOAD_NONE)
59
self.gconf_client.notify_add(self.gconf_key_sensor, self.preferences_sensor_changed)
60
self.gconf_client.notify_add(self.gconf_key_thermalzone, self.preferences_thermalzone_changed)
61
self.gconf_client.notify_add(self.gconf_key_visualization_mode, self.preferences_visualization_mode_changed)
62
self.gconf_client.notify_add(self.gconf_key_visualization_units, self.preferences_visualization_units_changed)
63
self.gconf_client.notify_add(self.gconf_key_timeout, self.preferences_timeout_changed)
64
self.gconf_client.notify_add(self.gconf_key_timeout_log, self.preferences_timeout_log_changed)
65
self.gconf_client.notify_add(self.gconf_key_min_temp, self.preferences_min_temp_changed)
66
self.gconf_client.notify_add(self.gconf_key_max_temp, self.preferences_max_temp_changed)
67
self.gconf_client.notify_add(self.gconf_key_logging, self.preferences_logging_changed)
68
self.gconf_client.notify_add(self.gconf_key_autologname, self.preferences_autologname_changed)
69
self.gconf_client.notify_add(self.gconf_key_log_filename, self.preferences_log_filename_changed)
70
self.gconf_client.notify_add(self.gconf_key_log_info, self.preferences_log_info_changed)
71
self.gconf_client.notify_add(self.gconf_key_alarm_enabled, self.preferences_alarm_enabled_changed)
72
self.gconf_client.notify_add(self.gconf_key_alarm_limit, self.preferences_alarm_limit_changed)
73
self.gconf_client.notify_add(self.gconf_key_alarm_when, self.preferences_alarm_when_changed)
74
self.gconf_client.notify_add(self.gconf_key_alarm_command, self.preferences_alarm_command_changed)
75
self.gconf_client.notify_add(self.gconf_key_alarm_repeat, self.preferences_alarm_repeat_changed)
76
self.gconf_client.notify_add(self.gconf_key_debug, self.preferences_debug_changed)
79
# Get preferences using GConf
82
temp = self.gconf_client.get_int(self.gconf_key_sensor)
83
if temp != None: self.app.sensor = temp
85
temp = self.gconf_client.get_int(self.gconf_key_thermalzone)
86
if temp != None: self.app.thermalzone = temp
88
temp = self.gconf_client.get_int(self.gconf_key_visualization_mode)
89
if temp != None: self.app.visualization_mode = temp
91
temp = self.gconf_client.get_int(self.gconf_key_visualization_units)
92
if temp != None: self.app.visualization_units = temp
94
temp = self.gconf_client.get_int(self.gconf_key_timeout) * 1000
95
if temp != None and temp > 0: self.app.timeout = temp
97
temp = self.gconf_client.get_int(self.gconf_key_timeout_log) * 1000
98
if temp != None and temp > 0: self.app.timeout_log = temp
100
temp = self.gconf_client.get_int(self.gconf_key_min_temp)
101
if temp != None: self.app.min_temp = temp
103
temp = self.gconf_client.get_int(self.gconf_key_max_temp)
104
if temp != None: self.app.max_temp = temp
106
temp = self.gconf_client.get_bool(self.gconf_key_logging)
107
if temp != None: self.app.logging = temp
109
temp = self.gconf_client.get_bool(self.gconf_key_autologname)
110
if temp != None: self.app.autologname = temp
112
temp = self.gconf_client.get_string(self.gconf_key_log_filename)
113
if temp != None: self.app.log_filename = temp
115
temp = self.gconf_client.get_string(self.gconf_key_log_info)
116
if temp != None: self.app.log_info = temp
118
temp = self.gconf_client.get_bool(self.gconf_key_alarm_enabled)
119
if temp != None: self.app.alarm_enabled = temp
121
temp = self.gconf_client.get_int(self.gconf_key_alarm_limit)
122
if temp != None: self.app.alarm_limit = temp
124
temp = self.gconf_client.get_int(self.gconf_key_alarm_when)
125
if temp != None: self.app.alarm_when = temp
127
temp = self.gconf_client.get_string(self.gconf_key_alarm_command)
128
if temp != None: self.app.alarm_command = temp
130
temp = self.gconf_client.get_bool(self.gconf_key_alarm_repeat)
131
if temp != None: self.app.alarm_repeat = temp
133
temp = self.gconf_client.get_bool(self.gconf_key_debug)
134
if temp != None: self.app.debug = temp
137
# Save every preference to GConf
138
def save_prefs_all(self):
140
self.save_prefs_sensor()
141
self.save_prefs_thermalzone()
142
self.save_prefs_visualization_mode()
143
self.save_prefs_visualization_units()
144
self.save_prefs_timeout()
145
self.save_prefs_timeout_log()
146
self.save_prefs_min_temp()
147
self.save_prefs_max_temp()
148
self.save_prefs_logging()
149
self.save_prefs_autologname()
150
self.save_prefs_log_filename()
151
self.save_prefs_log_info()
152
self.save_prefs_alarm_enabled()
153
self.save_prefs_alarm_limit()
154
self.save_prefs_alarm_when()
155
self.save_prefs_alarm_command()
156
self.save_prefs_alarm_repeat()
157
self.save_prefs_debug()
160
def save_prefs_sensor(self):
161
self.gconf_client.set_int(self.gconf_key_sensor, self.app.sensor)
163
def save_prefs_thermalzone(self):
164
self.gconf_client.set_int(self.gconf_key_thermalzone, self.app.thermalzone)
166
def save_prefs_visualization_mode(self):
167
self.gconf_client.set_int(self.gconf_key_visualization_mode, self.app.visualization_mode)
169
def save_prefs_visualization_units(self):
170
self.gconf_client.set_int(self.gconf_key_visualization_units, self.app.visualization_units)
172
def save_prefs_timeout(self):
173
self.gconf_client.set_int(self.gconf_key_timeout, self.app.timeout/1000)
175
def save_prefs_timeout_log(self):
176
self.gconf_client.set_int(self.gconf_key_timeout_log, self.app.timeout_log/1000)
178
def save_prefs_min_temp(self):
179
self.gconf_client.set_int(self.gconf_key_min_temp, self.app.min_temp)
181
def save_prefs_max_temp(self):
182
self.gconf_client.set_int(self.gconf_key_max_temp, self.app.max_temp)
184
def save_prefs_logging(self):
185
self.gconf_client.set_bool(self.gconf_key_logging, self.app.logging)
187
def save_prefs_autologname(self):
188
self.gconf_client.set_bool(self.gconf_key_autologname, self.app.autologname)
190
def save_prefs_log_filename(self):
191
self.gconf_client.set_string(self.gconf_key_log_filename, self.app.log_filename)
193
def save_prefs_log_info(self):
194
self.gconf_client.set_string(self.gconf_key_log_info, self.app.log_info)
196
def save_prefs_alarm_enabled(self):
197
self.gconf_client.set_bool(self.gconf_key_alarm_enabled, self.app.alarm_enabled)
199
def save_prefs_alarm_limit(self):
200
self.gconf_client.set_int(self.gconf_key_alarm_limit, self.app.alarm_limit)
202
def save_prefs_alarm_when(self):
203
self.gconf_client.set_int(self.gconf_key_alarm_when, self.app.alarm_when)
205
def save_prefs_alarm_command(self):
206
self.gconf_client.set_string(self.gconf_key_alarm_command, self.app.alarm_command)
208
def save_prefs_alarm_repeat(self):
209
self.gconf_client.set_bool(self.gconf_key_alarm_repeat, self.app.alarm_repeat)
211
def save_prefs_debug(self):
212
self.gconf_client.set_bool(self.gconf_key_debug, self.app.debug)
214
# Monitoring changes using gconf editor
215
def preferences_sensor_changed(self, client, connection_id, entry, args):
216
if entry.get_value() != None and entry.get_value().type == gconf.VALUE_INT:
217
self.app.sensor = entry.get_value().get_int()
218
self.app.update_icon()
219
self.app.update_text()
220
self.app.update_tooltip()
222
# Monitoring changes using gconf editor
223
def preferences_thermalzone_changed(self, client, connection_id, entry, args):
224
if entry.get_value() != None and entry.get_value().type == gconf.VALUE_INT:
225
self.app.thermalzone = entry.get_value().get_int()
226
self.app.update_icon()
227
self.app.update_text()
228
self.app.update_tooltip()
230
def preferences_visualization_mode_changed(self, client, connection_id, entry, args):
231
if entry.get_value() != None and entry.get_value().type == gconf.VALUE_INT:
232
self.app.visualization_mode = entry.get_value().get_int()
233
self.app.update_icon()
234
self.app.update_text()
235
self.app.update_tooltip()
237
def preferences_visualization_units_changed(self, client, connection_id, entry, args):
238
if entry.get_value() != None and entry.get_value().type == gconf.VALUE_INT:
239
self.app.visualization_units = entry.get_value().get_int()
240
self.app.update_icon()
241
self.app.update_text()
242
self.app.update_tooltip()
244
def preferences_timeout_changed(self, client, connection_id, entry, args):
245
if entry.get_value() != None and entry.get_value().type == gconf.VALUE_INT:
246
self.app.timeout = entry.get_value().get_int() * 1000
247
self.app.timeout_count = 0
249
def preferences_timeout_log_changed(self, client, connection_id, entry, args):
250
if entry.get_value() != None and entry.get_value().type == gconf.VALUE_INT:
251
self.app.timeout_log = entry.get_value().get_int() * 1000
253
def preferences_min_temp_changed(self, client, connection_id, entry, args):
254
if entry.get_value() != None and entry.get_value().type == gconf.VALUE_INT:
255
temp = entry.get_value().get_int()
256
if temp >= self.app.max_temp:
257
self.app.min_temp = self.app.max_temp - 1
258
self.gconf_client.set_int(self.gconf_key_min_temp, self.app.max_temp - 1)
260
self.app.min_temp = temp
261
self.app.prefs.spinmin.set_value(self.app.min_temp)
262
self.app.update_icon()
263
self.app.update_text()
264
self.app.update_tooltip()
266
def preferences_max_temp_changed(self, client, connection_id, entry, args):
267
if entry.get_value() != None and entry.get_value().type == gconf.VALUE_INT:
268
temp = entry.get_value().get_int()
269
if temp <= self.app.min_temp:
270
self.app.max_temp = self.app.min_temp + 1
271
self.gconf_client.set_int(self.gconf_key_max_temp, self.app.min_temp + 1)
273
self.app.max_temp = temp
274
self.app.prefs.spinmax.set_value(self.app.max_temp)
275
self.app.update_icon()
276
self.app.update_text()
277
self.app.update_tooltip()
279
def preferences_logging_changed(self, client, connection_id, entry, args):
280
if entry.get_value() != None and entry.get_value().type == gconf.VALUE_BOOL:
281
self.app.logging = entry.get_value().get_bool()
283
def preferences_autologname_changed(self, client, connection_id, entry, args):
284
if entry.get_value() != None and entry.get_value().type == gconf.VALUE_BOOL:
285
self.app.autologname = entry.get_value().get_bool()
286
self.app.timeout_log_count = 0
288
def preferences_log_filename_changed(self, client, connection_id, entry, args):
289
if entry.get_value() != None and entry.get_value().type == gconf.VALUE_STRING:
290
self.app.log_filename = entry.get_value().get_string()
291
self.app.prefs.logentry.set_text(self.app.log_filename)
292
self.app.timeout_log_count = 0
294
def preferences_log_info_changed(self, client, connection_id, entry, args):
295
if entry.get_value() != None and entry.get_value().type == gconf.VALUE_STRING:
296
self.app.log_info = entry.get_value().get_string()
297
self.app.prefs.logformat_entry.set_text(self.app.log_info)
298
self.app.timeout_log_count = 0
300
def preferences_alarm_enabled_changed(self, client, connection_id, entry, args):
301
if entry.get_value() != None and entry.get_value().type == gconf.VALUE_BOOL:
302
self.app.alarm_enabled = entry.get_value().get_bool()
303
self.app.reset_alarm()
305
def preferences_alarm_limit_changed(self, client, connection_id, entry, args):
306
if entry.get_value() != None and entry.get_value().type == gconf.VALUE_INT:
307
self.app.alarm_limit = entry.get_value().get_int()
308
self.app.reset_alarm()
310
def preferences_alarm_when_changed(self, client, connection_id, entry, args):
311
if entry.get_value() != None and entry.get_value().type == gconf.VALUE_INT:
312
self.app.alarm_when = entry.get_value().get_int()
313
self.app.reset_alarm()
315
def preferences_alarm_command_changed(self, client, connection_id, entry, args):
316
if entry.get_value() != None and entry.get_value().type == gconf.VALUE_STRING:
317
self.app.alarm_command = entry.get_value().get_string()
318
self.app.prefs.alarm_command_entry.set_text(self.app.alarm_command)
319
self.app.reset_alarm()
321
def preferences_alarm_repeat_changed(self, client, connection_id, entry, args):
322
if entry.get_value() != None and entry.get_value().type == gconf.VALUE_BOOL:
323
self.app.alarm_repeat = entry.get_value().get_bool()
324
self.app.reset_alarm()
326
def preferences_debug_changed(self, client, connection_id, entry, args):
327
if entry.get_value() != None and entry.get_value().type == gconf.VALUE_BOOL:
328
self.app.debug = entry.get_value().get_bool()
329
self.app.update_tooltip()
332
# Returns applet name for GConf
333
def get_applet_name(self):
334
name = self.gconf_applet.split('/')
b'\\ No newline at end of file'