2 from gnome import gconf
7 def __init__(self, gconf_root_dir='/apps/maemo/wifi-assistant'):
8 self._gc = gconf.client_get_default()
9 self._gconfRootDir = gconf_root_dir
10 self._gconfLaunchDirectory = gconf_root_dir + '/launch'
11 self._gconfPopupKey = gconf_root_dir + '/daemon'
12 self._gconfUrlToOpen = gconf_root_dir + '/url-to-open'
15 # ---- public API __________________________________________________________
17 def getLaunchSetting(self, ssid):
18 """Returns True or False to indicate that the user wants a browser
19 launched or not, otherwise None (the ssid is not recognized)"""
21 value = self._gc.get_without_default(self._get_launch_key(ssid))
24 return value.get_bool()
27 def getLaunchSettings(self):
28 """Returns a ListStore with one Row per SSID"""
30 store = gtk.ListStore(str, gobject.TYPE_BOOLEAN)
31 entries = self._gc.all_entries(self._gconfLaunchDirectory)
32 directoryPathLength = len(self._gconfLaunchDirectory) + 1
34 ssidName = entry.get_key()[directoryPathLength:]
35 launchBrowser = entry.get_value().get_bool()
36 store.append([ssidName, launchBrowser])
41 def setLaunchSetting(self, ssid, mode):
42 """Saves the setting for the specified ssid. mode is True or False"""
44 self._gc.set_bool(self._get_launch_key(ssid), mode)
47 def deleteLaunchSetting(self, ssid):
48 """Removes a setting for the specified ssid."""
50 self._gc.unset(self._get_launch_key(ssid))
53 def addUsePopupListener(self, callback):
54 """Registers a listener/callback to changes on Use Daemon setting"""
56 if len(self._listeners) == 0:
57 self._gc.add_dir(self._gconfRootDir, gconf.CLIENT_PRELOAD_NONE)
58 ref_id = self._gc.notify_add(self._gconfPopupKey, callback)
59 self._listeners[callback] = ref_id
62 def removeUsePopupListener(self, callback):
63 """Unregisters the listener/callback"""
65 if (self._listeners.has_key(callback)):
66 ref_id = self._listeners.pop(callback)
67 self._gc.notify_remove(ref_id)
69 if len(self._listeners) == 0:
70 self._gc.remove_dir(self._gconfRootDir)
73 def getUsePopup(self):
74 """Tells whether to use the daemon or not."""
76 return self._gc.get_bool(self._gconfPopupKey) is True
79 def setUsePopup(self, mode):
80 """mode is either True or False."""
82 self._gc.set_bool(self._gconfPopupKey, mode)
85 def getUrlToOpen(self):
86 """Returns the URL to open when launching a browser"""
88 return self._gc.get_string(self._gconfUrlToOpen) or 'http://wifi-assistant.garage.maemo.org/ping/'
91 def setUrlToOpen(self, url):
92 """Sets the URL to open when launching a browser"""
94 self._gc.set_string(self._gconfUrlToOpen, url)
97 # ---- private _____________________________________________________________
99 def _get_launch_key(self, ssid):
100 return self._gconfLaunchDirectory + '/' + ssid
103 if __name__ == "__main__":
104 print Settings().getLaunchSetting('limbergwendt2')