def __init_general(self): """Initialize the general notebook page""" self.__dialog.set_title(_("IBus Table %s Preferences") %re.sub(r'^table:', '', self.__engine_name)) # https://tronche.com/gui/x/icccm/sec-4.html#WM_CLASS # gnome-shell seems to use the first argument of set_wmclass() # to find the .desktop file. If the .desktop file can be # found, the name shown by gnome-shell in the top bar comes # from that .desktop file and the icon to show is also read # from that .desktop file. If the .desktop file cannot be # found, the second argument of set_wmclass() is shown by # gnome-shell in the top bar. self.__dialog.set_wmclass('ibus-setup-table', 'IBus Table Setup') self.__user_values = {} for key in OPTION_DEFAULTS: if self.__gsettings.get_user_value(key) != None: self.__user_values[key] = it_util.variant_to_value( self.__gsettings.get_user_value(key)) sys.stderr.write( 'self.__user_values[%s]=%s\n' %(key, self.__user_values[key])) if key in SCALE_WIDGETS: self._init_hscale(key) elif key in ENTRY_WIDGETS: self._init_entry(key) else: self._init_combobox(key) self._init_button('restoredefaults') return
def get_default_options_from_gsettings(self): ''' Get the default options from the Gsettings schema file. ''' for key in OPTION_DEFAULTS: OPTION_DEFAULTS[key] = it_util.variant_to_value( self.__gsettings.get_value(key))
def on_gsettings_value_changed(self, _settings, key): """ Called when a value in the settings has been changed. """ value = it_util.variant_to_value(self.__gsettings.get_value(key)) sys.stderr.write('Settings changed: key=%s value=%s\n' %(key, value)) if key in SCALE_WIDGETS: __hscale = self.__builder.get_object("hscale%s" % key) __hscale.set_value(value) elif key in ENTRY_WIDGETS: __entry = self.__builder.get_object("entry%s" % key) __entry.set_text(value) else: __combobox = self.__builder.get_object("combobox%s" % key) if isinstance(value, bool): value = 1 if value else 0 elif isinstance(value, str): model = __combobox.get_model() for i, row in enumerate(model): if row[0] == value: value = i break __combobox.set_active(value) self.__user_values[key] = value