def populate_page(self): self._menu = g15theme.Menu("menu") g15plugin.G15RefreshingPlugin.populate_page(self) enabled_sensors = [] for c in self.sensor_sources: for s in c.get_sensors(): sense_key = "%s/sensors/%s" % ( self.gconf_key, gconf.escape_key(s.name, len(s.name))) if g15gconf.get_bool_or_default(self.gconf_client, "%s/enabled" % (sense_key), True): enabled_sensors.append(s) # If there are no sensors enabled, display the 'none' variant # which shows a message if len(enabled_sensors) == 0: self.page.theme.set_variant("none") else: self.page.theme.set_variant(None) def menu_selected(): self.page.theme.set_variant( VARIANT_NAMES[self._menu.selected.sensor.sense_type]) self._menu.on_selected = menu_selected self.page.add_child(self._menu) self.page.theme.svg_processor = self._process_svg self.page.add_child( g15theme.MenuScrollbar("viewScrollbar", self._menu)) i = 0 for s in enabled_sensors: if s.sense_type in TYPE_NAMES: sense_key = "%s/sensors/%s" % ( self.gconf_key, gconf.escape_key(s.name, len(s.name))) sense_label = g15gconf.get_string_or_default( self.gconf_client, "%s/label" % (sense_key), s.name) menu_item = SensorMenuItem("menuitem-%d" % i, s, sense_label) self.sensor_dict[s.name] = menu_item self._menu.add_child(menu_item) # If this is the first child, change the theme variant if self._menu.get_child_count() == 1: self.page.theme.set_variant( VARIANT_NAMES[menu_item.sensor.sense_type]) i += 1
def _getComboGConfKey(self, component, description): ''' A convinience method to expand the full gconf path for a specific key combo. @param component: The component of the hotkey. @type component: string @param description: The description of the hotkey action @type description: string @return: A full gconf key name @rtype: string ''' combo_gconf_key = '%s/%s/%s/key_combo' % \ (GCONF_HOTKEYS, gconf.escape_key(component, len(component)), gconf.escape_key(description, len(description))) return combo_gconf_key
def sensor_toggled(self, widget, row_index): row_index = int(row_index) now_active = not widget.get_active() self.sensor_model.set_value(self.sensor_model.get_iter(row_index), 1, now_active) sensor_name = self.sensor_model[row_index][0] self._gconf_client.set_bool( "%s/sensors/%s/enabled" % (self._gconf_key, gconf.escape_key(sensor_name, len(sensor_name))), now_active)
def reload_model(self): self.sensor_model.clear() ss = get_sensor_sources() for source in ss: sa = source.get_sensors() for sensor in sa: sense_key = "%s/sensors/%s" % (self._gconf_key, gconf.escape_key(sensor.name, len(sensor.name))) if sensor.sense_type in TYPE_NAMES: self.sensor_model.append([ sensor.name, g15gconf.get_bool_or_default(self._gconf_client, "%s/enabled" % (sense_key), True), g15gconf.get_string_or_default(self._gconf_client, "%s/label" % (sense_key), sensor.name), TYPE_NAMES[sensor.sense_type] ]) source.stop()
def label_edited(self, widget, row_index, value): row_index = int(row_index) if value != "": if self.sensor_model[row_index][2] != value: self.sensor_model.set_value( self.sensor_model.get_iter(row_index), 2, value) sensor_name = self.sensor_model[row_index][0] self._gconf_client.set_string( "%s/sensors/%s/label" % (self._gconf_key, gconf.escape_key(sensor_name, len(sensor_name))), value)
def populate_page(self): self._menu = g15theme.Menu("menu") g15plugin.G15RefreshingPlugin.populate_page(self) enabled_sensors = [] for c in self.sensor_sources: for s in c.get_sensors(): sense_key = "%s/sensors/%s" % (self.gconf_key, gconf.escape_key(s.name, len(s.name))) if g15gconf.get_bool_or_default(self.gconf_client, "%s/enabled" % (sense_key), True): enabled_sensors.append(s) # If there are no sensors enabled, display the 'none' variant # which shows a message if len(enabled_sensors) == 0: self.page.theme.set_variant("none") else: self.page.theme.set_variant(None) def menu_selected(): self.page.theme.set_variant(VARIANT_NAMES[self._menu.selected.sensor.sense_type]) self._menu.on_selected = menu_selected self.page.add_child(self._menu) self.page.theme.svg_processor = self._process_svg self.page.add_child(g15theme.MenuScrollbar("viewScrollbar", self._menu)) i = 0 for s in enabled_sensors: if s.sense_type in TYPE_NAMES: sense_key = "%s/sensors/%s" % (self.gconf_key, gconf.escape_key(s.name, len(s.name))) sense_label = g15gconf.get_string_or_default(self.gconf_client, "%s/label" % (sense_key), s.name) menu_item = SensorMenuItem("menuitem-%d" % i, s, sense_label) self.sensor_dict[s.name] = menu_item self._menu.add_child(menu_item) # If this is the first child, change the theme variant if self._menu.get_child_count() == 1: self.page.theme.set_variant(VARIANT_NAMES[menu_item.sensor.sense_type]) i += 1
def _onResize(self, widget, allocation): ''' Callback for window resizing. Used for persisting view sizes across sessions. @param widget: Window widget. @type widget: gtk.Widget @param allocation: The new allocation. @type allocation: gtk.gdk.Rectangle ''' view_name = self.plugin_view.view_name key_prefix = '%s/%s' % \ (GCONF_PLUGINVIEWS, gconf.escape_key(view_name, len(view_name))) cl = gconf.client_get_default() cl.set_int(key_prefix+'/width', self.allocation.width) cl.set_int(key_prefix+'/height', self.allocation.height)
def reconcile_vm_entries(self, uri, current_vms): """ Remove any old VM preference entries for the passed URI """ uri = gconf.escape_key(uri, len(uri)) key = self.conf_dir + "/connection_prefs/%s/vms" % uri kill_vms = [] gconf_vms = map(lambda inp: inp.split("/")[-1], self.conf.all_dirs(key)) for uuid in gconf_vms: if len(uuid) == 36 and not uuid in current_vms: kill_vms.append(uuid) for uuid in kill_vms: self.conf.recursive_unset(key + "/%s" % uuid, 0) if kill_vms: # Suggest gconf syncs, so that the unset dirs are fully removed self.conf.suggest_sync()
def __init__(self, view_name): ''' Initialize a new plugin view window. @param view_name: The name of the view. @type view_name: string ''' gtk.Window.__init__(self) self.plugin_view = PluginView(view_name) self.add(self.plugin_view) cl = gconf.client_get_default() escaped_view_name = '/%s' % gconf.escape_key(view_name, len(view_name)) width = cl.get_int(GCONF_PLUGINVIEWS+escaped_view_name+'/width') or 480 height = cl.get_int(GCONF_PLUGINVIEWS+escaped_view_name+'/height') or 480 self.set_default_size(width, height) self.connect('key_press_event', self._onKeyPress) self.plugin_view.connect_after('page_removed', self._onPluginRemoved) self.set_title(view_name) self.set_position(gtk.WIN_POS_MOUSE) self.show_all() self.connect('size-allocate', self._onResize)
def _pervm_helper(self, uri, uuid, pref_func, func_type, value=None): suffix = ("connection_prefs/%s/vms/%s" % (gconf.escape_key(uri, len(uri)), uuid)) return self._perobj_helper(suffix, pref_func, func_type, value)
def _perconn_helper(self, uri, pref_func, func_type, value=None): suffix = "connection_prefs/%s" % gconf.escape_key(uri, len(uri)) return self._perobj_helper(suffix, pref_func, func_type, value)
def sensor_toggled(self, widget, row_index): row_index = int(row_index) now_active = not widget.get_active() self.sensor_model.set_value(self.sensor_model.get_iter(row_index), 1, now_active) sensor_name = self.sensor_model[row_index][0] self._gconf_client.set_bool("%s/sensors/%s/enabled" % (self._gconf_key, gconf.escape_key(sensor_name, len(sensor_name))), now_active)
def label_edited(self, widget, row_index, value): row_index = int(row_index) if value != "": if self.sensor_model[row_index][2] != value: self.sensor_model.set_value(self.sensor_model.get_iter(row_index), 2, value) sensor_name = self.sensor_model[row_index][0] self._gconf_client.set_string("%s/sensors/%s/label" % (self._gconf_key, gconf.escape_key(sensor_name, len(sensor_name))), value)
def __setitem__(self, key, value): gconf_key = '%s/%s/layout' % \ (GCONF_PLUGINVIEWS, gconf.escape_key(key, len(key))) self.gconf_client.set_list(gconf_key, gconf.VALUE_STRING, value)
# Check the file is executable try: os.chmod( linux_location, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH) except Exception, e: pass # Register the URL Handlers try: import gconf for prefix in [ 'tp', 'tps', 'tphttp', 'tphttps', 'tp+http', 'tp+https' ]: prefix = gconf.escape_key(prefix, len(prefix)) gconf.client_get_default().set_string( '/desktop/gnome/url-handlers/%s/command' % prefix, linux_location) gconf.client_get_default().set_bool( '/desktop/gnome/url-handlers/%s/enabled' % prefix, True) except ImportError, e: print e reason = "It is recommended that under gnome you have the Python Gconf module installed so I can register URL handlers." if system == "debian-based": recommended.append(("python-gconf", reason)) else: recommended.append(("Recent version of pyGTK", reason))
def _gconf_path(id): return "/system/osso/connectivity/IAP/" + gconf.escape_key(id, -1)