⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configuration.py

📁 CoralFTP是一款用Python语言编写的工作在GTK2环境下的FTP客户端软件
💻 PY
📖 第 1 页 / 共 2 页
字号:
            elif setting[1] == FontButton:                if value == None: value = ''                widget = xml.get_widget(setting[2])                widget.set_property('font-name', value)            else:                logging.debug('key=%s' % key)    returndef widgets_to_gconf(config_prefix, config_names, config, xml):    """Save settings into gconf database."""    for group, settings in config_names.items():        for keyname, setting in settings.items():            key = '%s/%s/%s' % (config_prefix, group, keyname)            if setting[0] == VALUE_STRING:                old_value = config.get_string(key)            elif setting[0] == VALUE_INT:                old_value = config.get_int(key)            elif setting[0] == VALUE_BOOL:                old_value = config.get_bool(key)            else:                raise ValueError            if setting[1] == Entry:                widget = xml.get_widget(setting[2])                new_value = widget.get_text()                if setting[0] == VALUE_STRING and old_value != new_value:                    config.set_string(key, new_value)                elif setting[0] == VALUE_INT and old_value != string.atoi(new_value):                    config.set_int(key, string.atoi(new_value))            elif setting[1] == ComboBoxEntry:                widget = xml.get_widget(setting[2])                model = widget.get_model()                iter = widget.get_active_iter()                new_value = model.get_path(iter)                if setting[0] == VALUE_STRING and old_value != new_value:                    config.set_string(key, new_value.__str__())                else:                    raise Error()            elif setting[1] == CheckButton:                widget = xml.get_widget(setting[2])                new_value = widget.get_property('active')                if (old_value and not new_value) or (not old_value and new_value):                                        config.set_bool(key, new_value)            elif setting[1] == RadioButton:                new_value = 0                for widget_name in setting[2]:                    widget = xml.get_widget(widget_name)                    if widget.get_property('active'):                        break                    new_value = new_value + 1                if old_value != new_value:                    config.set_int(key, new_value)            elif setting[1] == ColorButton:                widget = xml.get_widget(setting[2])                color = widget.get_color()                new_value = '#%04x%04x%04x' % (color.red,                                               color.green,                                               color.blue)                if old_value != new_value:                    config.set_string(key, new_value)            elif setting[1] == FontButton:                widget = xml.get_widget(setting[2])                new_value = widget.get_property('font-name')                if old_value != new_value:                    config.set_string(key, new_value)            else:                logging.debug('key=%s' % key)    returndef setup_checkbuttons(gladexml, defines):    func = lambda widget, data: data.set_property('sensitive', widget.get_property('active'))    for item in defines:        widget = gladexml.get_widget(item[0])        for citem in item[1]:            cwidget = gladexml.get_widget(citem)            widget.connect('toggled', func, cwidget)class ConfigurationDialog(gobject.GObject):    __gsignals__ = {        'response' :        (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_INT,)),        }    CHECKBUTTON_DEFS = (        ('cb_enable_disk_based_logging', ('entry_status_log_filename',                                          'btn_status_log_filename_browse',                                          'cb_trim_status_log_file',                                          'spbtn_status_log_file_size')),        ('cb_trim_status_log_file', ('spbtn_status_log_file_size',)),        ('cb_send_keep_alive', ('cmb_keep_alive_command',                                'spbtn_send_keep_alive_interval')),        ('cb_stop_send_keep_alive', ('spbtn_stop_keep_alive_after',))        )    def __init__(self, coralftp, config=None):        self.__gobject_init__()                self.coralftp = coralftp        if config != None:            self.__config = config        else:            self.__config = coralftp.config                self.__tree = get_glade_xml('configure_dialog')        self.__tree.signal_autoconnect(self)        self.__window = self.__tree.get_widget('configure_dialog')        setup_checkbuttons(self.__tree, self.CHECKBUTTON_DEFS)        gconf_to_widgets(CONFIG_PREFIX, CONFIG_NAMES,                         self.__config, self.__tree)        return        def __del__(self):        self.__window.destroy()        return    def on_response(self, obj, resp, *args):        if resp in (RESPONSE_APPLY, RESPONSE_OK):            widgets_to_gconf(CONFIG_PREFIX, CONFIG_NAMES,                             self.__config, self.__tree)        if resp in (RESPONSE_OK, RESPONSE_CANCEL):            self.__window.set_modal(FALSE)            self.__window.hide()        self.emit('response', resp)        return    def run(self):        self.__window.show()        self.__window.set_modal(TRUE)    def on_btn_change_color_fonts_clicked(self, obj, *args):        def on_change_color_font_response(dlg, resp, *args):            if resp in (RESPONSE_OK, RESPONSE_CANCEL):                dlg.destroy()            return        dlg = SetColorsFontsDialog(self.__config)        dlg.connect('response', on_change_color_font_response)        dlg.run()        returngobject.type_register(ConfigurationDialog)class SetColorsFontsDialog(gobject.GObject):    __gsignals__ = {        'response' :        (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_INT,)),        }    CHECKBUTTON_DEFS = (        ('cb_file_listing', ('fbtn_file_listing',)),        ('cb_status', ('fbtn_status',)),        ('cb_queue', ('fbtn_queue',))        )    def __init__(self, config):        self.__gobject_init__()                self.__config = config        self.__xml = get_glade_xml('set_colors_fonts_dialog')        self.__xml.signal_autoconnect(self)        setup_checkbuttons(self.__xml, self.CHECKBUTTON_DEFS)        self.__window = self.__xml.get_widget('set_colors_fonts_dialog')        gconf_to_widgets(CONFIG_PREFIX, COLOR_FONT_CONFIG_NAMES,                         self.__config, self.__xml)        return    def on_response(self, obj, resp, *args):        if resp in (RESPONSE_APPLY, RESPONSE_OK):            widgets_to_gconf(CONFIG_PREFIX, COLOR_FONT_CONFIG_NAMES,                             self.__config, self.__xml)        if resp in (RESPONSE_OK, RESPONSE_CANCEL):            self.__window.set_modal(FALSE)            self.__window.hide()        self.emit('response', resp)        return    def run(self):        self.__window.show()        self.__window.set_modal(TRUE)        return        def destroy(self):        self.__window.destroy()        returngobject.type_register(SetColorsFontsDialog)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -