X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=package%2Fsrc%2Fwifi_assistant%2Fsettings%2FNetworkSettings.py;fp=package%2Fsrc%2Fwifi_assistant%2Fsettings%2FNetworkSettings.py;h=0000000000000000000000000000000000000000;hb=635da74643ed775f97d1dfe602e9150fddf5840b;hp=0eacaeb55895f1e981b980da8938c95485f92d9c;hpb=0da30082ee98d6f033d1fe001d6cea5d9592b4a7;p=wifi-assistant diff --git a/package/src/wifi_assistant/settings/NetworkSettings.py b/package/src/wifi_assistant/settings/NetworkSettings.py deleted file mode 100644 index 0eacaeb..0000000 --- a/package/src/wifi_assistant/settings/NetworkSettings.py +++ /dev/null @@ -1,133 +0,0 @@ -import gnome.gconf as gconf -from NetworkSetting import NetworkSetting -import gtk, gobject - - -class NetworkSettings(object): - ''' - Reads and Writes NetworkSettings from/to GConf. - ''' - - __DEFAULT_SETTINGS = 'default_settings' - - def __init__(self, gconf_client, root_path): - self._gc = gconf_client - self._root_path = root_path - - - def delete(self, launch_setting): - key = self._assembleRootKeyForSsid(launch_setting.getNetworkName()) - self._recursive_unset(key) - - - def getDefaultSettings(self): - settings = self.get(self.__DEFAULT_SETTINGS) - if settings is None: - settings = NetworkSetting() - settings.setNetworkName(self.__DEFAULT_SETTINGS) - settings.setLaunchingOfBrowserEnabled(True) - settings.setBrowserOptions({'url':'http://wifi-assistant.garage.maemo.org/'}) - self.save(settings) - return settings - - - def getListStore(self): - """Returns a ListStore with one Row per Network Setting""" - - store = gtk.ListStore(str, gobject.TYPE_BOOLEAN) - settings = self._getAllNetworkSettings() - for setting in settings: - store.append([setting.getNetworkName(), setting.getLaunchingOfBrowserEnabled()]) - return store - - - def get(self, ssid): - key = self._assembleRootKeyForSsid(ssid) - if self._gc.dir_exists(key): - return NetworkSetting(self._loadValuesFromGConf(key)) - print "WARNING: No settings to return for network name", ssid - return None - - - def save(self, launch_setting): - self._saveValuesToGConf(launch_setting) - - - def _assembleRootKeyForSsid(self, ssid): - safe = self._replaceForbiddenCharacters(ssid) - return self._root_path + '/' + safe - - - def _getAllNetworkSettings(self): - dirs = self._gc.all_dirs(self._root_path) - settings = [] - key_offset = len(self._root_path) + 1 - for dir in dirs: - key = dir[key_offset:] - if self.__DEFAULT_SETTINGS != key: - settings.append(self.get(key)) - return settings - - - def _loadValuesFromGConf(self, path): - """Loads all values under a given path in gconf recursively into a dict""" - - values = {} - path_length = len(path) + 1 # remove trailing / too - - dirs = self._gc.all_dirs(path) - for sub_dir_path in dirs: - key = sub_dir_path[path_length:] - values[key] = self._loadValuesFromGConf(sub_dir_path) - - entries = self._gc.all_entries(path) - for entry in entries: - full_key = entry.get_key() - key = full_key[path_length:] - gvalue = entry.get_value() - if gvalue.type == gconf.VALUE_BOOL: - values[key] = gvalue.get_bool() - elif gvalue.type == gconf.VALUE_STRING: - values[key] = gvalue.get_string() - else: - print 'ga' - - return values - - - def _recursive_unset(self, dir): - # there's no recursive_unset available in gconf so we'll have to do it ourselves - all_entries = self._gc.all_entries(dir) - for entry in all_entries: - self._gc.unset(entry.get_key()) - for sub_dir in self._gc.all_dirs(dir): - self._recursive_unset(sub_dir) - self._gc.suggest_sync() - - - def _replaceForbiddenCharacters(self, str): - allowed = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_' - result = '' - for c in str: - if c in allowed: - result = result + c - else: - result = result + '__' - return result - - - def _saveValuesToGConf(self, launch_setting): - """Saves all values "recursively" from NetworkSetting""" - - network_name = launch_setting.getNetworkName() - key = self._assembleRootKeyForSsid(network_name) - browser = launch_setting.getNameOfBrowserToLaunch() - launch = launch_setting.getLaunchingOfBrowserEnabled() - options = launch_setting.getBrowserOptions() - - self._gc.set_string(key + "/name", network_name) - self._gc.set_string(key + '/browser', browser) - self._gc.set_bool(key + '/launch', launch) - for option_key in options: - self._gc.set_string(key + "/options/" + option_key, options[option_key]) - \ No newline at end of file