示例#1
0
    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
示例#2
0
 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))
示例#3
0
 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