Loading config/stylesheet.css +11 −7 Original line number Diff line number Diff line Loading @@ -54,13 +54,13 @@ ConfigSubBlock::hover { SourceTextEdit { font-size: 17px; background-color: @emptyContentBackgroundColor; border-radius: 7px; border-radius: 5px; border-style: none; } TransTextEdit { font-size: 17px; border-radius: 7px; border-radius: 5px; background-color: @transtexteditBackgroundColor; } Loading Loading @@ -597,17 +597,17 @@ QScrollBar:vertical { /* background: transparent; 背景透明 */ width: 10px; /*宽度*/ margin: 0px 0px 0px 0px; /**/ padding-top: 12px; /*距离上面12px*/ padding-bottom: 12px; /*距离底部12px*/ padding-top: 0px; /*距离上面12px*/ padding-bottom: 0px; /*距离底部12px*/ background: @scrollBarBackground } /*横向滚动条*/ QScrollBar:horizontal { background: @scrollBarBackground; height: 10px; /*高度*/ height: 7px; /*高度*/ margin: 0px 0px 0px 0px; padding-left: 12px; /*距离左边12px*/ padding-right: 12px; /*距离右边12px*/ padding-left: 0px; /*距离左边12px*/ padding-right: 0px; /*距离右边12px*/ } /*当鼠标放到纵向或者横向滚动条上面时*/ Loading Loading @@ -717,6 +717,10 @@ QLabel#angleLabel { background-color: rgba(30, 147, 229, 20%); } .CheckableLabel::hover { background-color: rgba(30, 147, 229, 20%); } DrawToolCheckBox::indicator { height: 34px; width: 34px; Loading launch.py +3 −1 Original line number Diff line number Diff line Loading @@ -147,6 +147,7 @@ def main(): from qtpy.QtGui import QGuiApplication, QIcon, QFont from ui import constants as C from ui import config as program_config C.DEFAULT_DISPLAY_LANG = QLocale.system().name() if qtpy.API_NAME[-1] == '6': C.FLAG_QT6 = True Loading @@ -163,7 +164,7 @@ def main(): load_modules() app = QApplication(sys.argv) from ui.misc import ProgramConfig from ui.config import ProgramConfig try: config = ProgramConfig.load(C.CONFIG_PATH) Loading @@ -171,6 +172,7 @@ def main(): LOGGER.exception(e) LOGGER.warning("Failed to load config file, using default config") config = ProgramConfig() program_config.pcfg = config lang = config.display_lang langp = osp.join(C.TRANSLATE_DIR, lang + '.qm') Loading ui/canvas.py +4 −4 Original line number Diff line number Diff line Loading @@ -121,10 +121,10 @@ class CustomGV(QGraphicsView): self.hide_canvas.emit() return super().hideEvent(event) def enterEvent(self, event: QEvent) -> None: self.setFocus() return super().enterEvent(event) # def enterEvent(self, event: QEvent) -> None: # # not sure why i add it # self.setFocus() # return super().enterEvent(event) class Canvas(QGraphicsScene): Loading ui/config.py 0 → 100644 +120 −0 Original line number Diff line number Diff line import json from . import constants as C from .misc import FontFormat from utils.structures import Tuple, Union, List, Dict, Config, field, nested_dataclass @nested_dataclass class ModuleConfig(Config): textdetector: str = 'ctd' ocr: str = "mit48px_ctc" inpainter: str = 'lama_mpe' translator: str = "google" enable_ocr: bool = True enable_translate: bool = True enable_inpaint: bool = True textdetector_params: Dict = field(default_factory=lambda: dict()) ocr_params: Dict = field(default_factory=lambda: dict()) translator_params: Dict = field(default_factory=lambda: dict()) inpainter_params: Dict = field(default_factory=lambda: dict()) translate_source: str = '日本語' translate_target: str = '简体中文' check_need_inpaint: bool = True def get_params(self, module_key: str) -> dict: return self[module_key + '_params'] @nested_dataclass class DrawPanelConfig(Config): pentool_color: List = field(default_factory=lambda: [0, 0, 0]) pentool_width: float = 30. pentool_shape: int = 0 inpainter_width: float = 30. inpainter_shape: int = 0 current_tool: int = 0 rectool_auto: bool = False rectool_method: int = 0 recttool_dilate_ksize: int = 0 @nested_dataclass class ProgramConfig(Config): module: ModuleConfig = field(default_factory=lambda: ModuleConfig()) drawpanel: DrawPanelConfig = field(default_factory=lambda: DrawPanelConfig()) global_fontformat: FontFormat = field(default_factory=lambda: FontFormat()) recent_proj_list: List = field(default_factory=lambda: []) imgtrans_paintmode: bool = False imgtrans_textedit: bool = True imgtrans_textblock: bool = True mask_transparency: float = 0. original_transparency: float = 0. open_recent_on_startup: bool = True let_fntsize_flag: int = 0 let_fntstroke_flag: int = 0 let_fntcolor_flag: int = 0 let_fnt_scolor_flag: int = 0 let_fnteffect_flag: int = 1 let_alignment_flag: int = 0 let_autolayout_flag: bool = True let_uppercase_flag: bool = True font_presets: dict = field(default_factory=lambda: dict()) fsearch_case: bool = False fsearch_whole_word: bool = False fsearch_regex: bool = False fsearch_range: int = 0 gsearch_case: bool = False gsearch_whole_word: bool = False gsearch_regex: bool = False gsearch_range: int = 0 darkmode: bool = False src_link_flag: str = '' textselect_mini_menu: bool = True fold_textarea: bool = False show_source_text: bool = True show_trans_text: bool = True saladict_shortcut: str = "Alt+S" search_url: str = "https://www.google.com/search?q=" ocr_sublist: dict = field(default_factory=lambda: []) mt_sublist: dict = field(default_factory=lambda: []) display_lang: str = C.DEFAULT_DISPLAY_LANG @staticmethod def load(cfg_path: str): with open(cfg_path, 'r', encoding='utf8') as f: config_dict = json.loads(f.read()) # for backward compatibility if 'dl' in config_dict: dl = config_dict.pop('dl') if not 'module' in config_dict: if 'textdetector_setup_params' in dl: textdetector_params = dl.pop('textdetector_setup_params') dl['textdetector_params'] = textdetector_params if 'inpainter_setup_params' in dl: inpainter_params = dl.pop('inpainter_setup_params') dl['inpainter_params'] = inpainter_params if 'ocr_setup_params' in dl: ocr_params = dl.pop('ocr_setup_params') dl['ocr_params'] = ocr_params if 'translator_setup_params' in dl: translator_params = dl.pop('translator_setup_params') dl['translator_params'] = translator_params config_dict['module'] = dl if 'module' in config_dict: module_cfg = config_dict['module'] trans_params = module_cfg['translator_params'] repl_pairs = {'baidu': 'Baidu', 'caiyun': 'Caiyun', 'chatgpt': 'ChatGPT', 'Deepl': 'DeepL', 'papago': 'Papago'} for k, i in repl_pairs.items(): if k in trans_params: trans_params[i] = trans_params.pop(k) if module_cfg['translator'] in repl_pairs: module_cfg['translator'] = repl_pairs[module_cfg['translator']] return ProgramConfig(**config_dict) pcfg: ProgramConfig = None No newline at end of file ui/configpanel.py +29 −35 Original line number Diff line number Diff line Loading @@ -6,7 +6,6 @@ from qtpy.QtGui import QStandardItem, QStandardItemModel, QMouseEvent, QFont, QC from . import constants as C # nuitka seems to require import QtCore explicitly if C.FLAG_QT6: from PyQt6 import QtCore Loading @@ -14,7 +13,7 @@ else: from PyQt5 import QtCore from .stylewidgets import Widget, ConfigComboBox from .misc import ProgramConfig from .config import pcfg from .constants import CONFIG_FONTSIZE_CONTENT, CONFIG_FONTSIZE_HEADER, CONFIG_FONTSIZE_TABLE, CONFIG_COMBOBOX_SHORT, CONFIG_COMBOBOX_LONG, CONFIG_COMBOBOX_MIDEAN from .dlconfig_parse_widgets import InpaintConfigPanel, TextDetectConfigPanel, TranslatorConfigPanel, OCRConfigPanel Loading Loading @@ -271,11 +270,9 @@ class ConfigPanel(Widget): save_config = Signal() update_source_download_status = Signal(str) def __init__(self, config: ProgramConfig, *args, **kwargs) -> None: def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) self.config = config self.configTable = ConfigTable() self.configTable.tableitem_pressed.connect(self.onTableItemPressed) self.configContent = ConfigContent() Loading Loading @@ -400,52 +397,50 @@ class ConfigPanel(Widget): def onTableItemPressed(self, idx0, idx1): self.configContent.setActiveLabel(idx0, idx1) # cb: ConfigBlock = self.configContent.config_block_list[idx0] # self.configContent.ensureWidgetVisible(self.activel) def on_open_onstartup_changed(self): self.config.open_recent_on_startup = self.open_on_startup_checker.isChecked() pcfg.open_recent_on_startup = self.open_on_startup_checker.isChecked() def on_fntsize_flag_changed(self): self.config.let_fntsize_flag = self.let_fntsize_combox.currentIndex() pcfg.let_fntsize_flag = self.let_fntsize_combox.currentIndex() def on_fntstroke_flag_changed(self): self.config.let_fntstroke_flag = self.let_fntstroke_combox.currentIndex() pcfg.let_fntstroke_flag = self.let_fntstroke_combox.currentIndex() def on_autolayout_changed(self): self.config.let_autolayout_flag = self.let_autolayout_checker.isChecked() pcfg.let_autolayout_flag = self.let_autolayout_checker.isChecked() def on_uppercase_changed(self): self.config.let_uppercase_flag = self.let_uppercase_checker.isChecked() pcfg.let_uppercase_flag = self.let_uppercase_checker.isChecked() def on_selectext_minimenu_changed(self): self.config.textselect_mini_menu = self.selectext_minimenu_checker.isChecked() pcfg.textselect_mini_menu = self.selectext_minimenu_checker.isChecked() def on_saladict_shortcut_changed(self): kstr = self.saladict_shortcut.keySequence().toString() if kstr: self.config.saladict_shortcut = self.saladict_shortcut.keySequence().toString() pcfg.saladict_shortcut = self.saladict_shortcut.keySequence().toString() def on_searchurl_changed(self): url = self.searchurl_combobox.currentText() self.config.search_url = url pcfg.search_url = url def on_fontcolor_flag_changed(self): self.config.let_fntcolor_flag = self.let_fntcolor_combox.currentIndex() pcfg.let_fntcolor_flag = self.let_fntcolor_combox.currentIndex() def on_font_scolor_flag_changed(self): self.config.let_fnt_scolor_flag = self.let_fnt_scolor_combox.currentIndex() pcfg.let_fnt_scolor_flag = self.let_fnt_scolor_combox.currentIndex() def on_alignment_flag_changed(self): self.config.let_alignment_flag = self.let_alignment_combox.currentIndex() pcfg.let_alignment_flag = self.let_alignment_combox.currentIndex() def on_effect_flag_changed(self): self.config.let_fnteffect_flag = self.let_effect_combox.currentIndex() pcfg.let_fnteffect_flag = self.let_effect_combox.currentIndex() def on_source_link_changed(self): self.config.src_link_flag = self.src_link_textbox.text() self.update_source_download_status.emit(self.config.src_link_flag) pcfg.src_link_flag = self.src_link_textbox.text() self.update_source_download_status.emit(pcfg.src_link_flag) def focusOnTranslator(self): idx0, idx1 = self.trans_sub_block.idx0, self.trans_sub_block.idx1 Loading Loading @@ -474,21 +469,20 @@ class ConfigPanel(Widget): def setupConfig(self): self.blockSignals(True) config = self.config if config.open_recent_on_startup: if pcfg.open_recent_on_startup: self.open_on_startup_checker.setChecked(True) self.let_effect_combox.setCurrentIndex(config.let_fnteffect_flag) self.let_fntsize_combox.setCurrentIndex(config.let_fntsize_flag) self.let_fntstroke_combox.setCurrentIndex(config.let_fntstroke_flag) self.let_fntcolor_combox.setCurrentIndex(config.let_fntcolor_flag) self.let_fnt_scolor_combox.setCurrentIndex(config.let_fnt_scolor_flag) self.let_alignment_combox.setCurrentIndex(config.let_alignment_flag) self.let_autolayout_checker.setChecked(config.let_autolayout_flag) self.selectext_minimenu_checker.setChecked(config.textselect_mini_menu) self.let_uppercase_checker.setChecked(config.let_uppercase_flag) self.saladict_shortcut.setKeySequence(config.saladict_shortcut) self.searchurl_combobox.setCurrentText(config.search_url) self.src_link_textbox.setText(config.src_link_flag) self.let_effect_combox.setCurrentIndex(pcfg.let_fnteffect_flag) self.let_fntsize_combox.setCurrentIndex(pcfg.let_fntsize_flag) self.let_fntstroke_combox.setCurrentIndex(pcfg.let_fntstroke_flag) self.let_fntcolor_combox.setCurrentIndex(pcfg.let_fntcolor_flag) self.let_fnt_scolor_combox.setCurrentIndex(pcfg.let_fnt_scolor_flag) self.let_alignment_combox.setCurrentIndex(pcfg.let_alignment_flag) self.let_autolayout_checker.setChecked(pcfg.let_autolayout_flag) self.selectext_minimenu_checker.setChecked(pcfg.textselect_mini_menu) self.let_uppercase_checker.setChecked(pcfg.let_uppercase_flag) self.saladict_shortcut.setKeySequence(pcfg.saladict_shortcut) self.searchurl_combobox.setCurrentText(pcfg.search_url) self.src_link_textbox.setText(pcfg.src_link_flag) self.blockSignals(False) No newline at end of file Loading
config/stylesheet.css +11 −7 Original line number Diff line number Diff line Loading @@ -54,13 +54,13 @@ ConfigSubBlock::hover { SourceTextEdit { font-size: 17px; background-color: @emptyContentBackgroundColor; border-radius: 7px; border-radius: 5px; border-style: none; } TransTextEdit { font-size: 17px; border-radius: 7px; border-radius: 5px; background-color: @transtexteditBackgroundColor; } Loading Loading @@ -597,17 +597,17 @@ QScrollBar:vertical { /* background: transparent; 背景透明 */ width: 10px; /*宽度*/ margin: 0px 0px 0px 0px; /**/ padding-top: 12px; /*距离上面12px*/ padding-bottom: 12px; /*距离底部12px*/ padding-top: 0px; /*距离上面12px*/ padding-bottom: 0px; /*距离底部12px*/ background: @scrollBarBackground } /*横向滚动条*/ QScrollBar:horizontal { background: @scrollBarBackground; height: 10px; /*高度*/ height: 7px; /*高度*/ margin: 0px 0px 0px 0px; padding-left: 12px; /*距离左边12px*/ padding-right: 12px; /*距离右边12px*/ padding-left: 0px; /*距离左边12px*/ padding-right: 0px; /*距离右边12px*/ } /*当鼠标放到纵向或者横向滚动条上面时*/ Loading Loading @@ -717,6 +717,10 @@ QLabel#angleLabel { background-color: rgba(30, 147, 229, 20%); } .CheckableLabel::hover { background-color: rgba(30, 147, 229, 20%); } DrawToolCheckBox::indicator { height: 34px; width: 34px; Loading
launch.py +3 −1 Original line number Diff line number Diff line Loading @@ -147,6 +147,7 @@ def main(): from qtpy.QtGui import QGuiApplication, QIcon, QFont from ui import constants as C from ui import config as program_config C.DEFAULT_DISPLAY_LANG = QLocale.system().name() if qtpy.API_NAME[-1] == '6': C.FLAG_QT6 = True Loading @@ -163,7 +164,7 @@ def main(): load_modules() app = QApplication(sys.argv) from ui.misc import ProgramConfig from ui.config import ProgramConfig try: config = ProgramConfig.load(C.CONFIG_PATH) Loading @@ -171,6 +172,7 @@ def main(): LOGGER.exception(e) LOGGER.warning("Failed to load config file, using default config") config = ProgramConfig() program_config.pcfg = config lang = config.display_lang langp = osp.join(C.TRANSLATE_DIR, lang + '.qm') Loading
ui/canvas.py +4 −4 Original line number Diff line number Diff line Loading @@ -121,10 +121,10 @@ class CustomGV(QGraphicsView): self.hide_canvas.emit() return super().hideEvent(event) def enterEvent(self, event: QEvent) -> None: self.setFocus() return super().enterEvent(event) # def enterEvent(self, event: QEvent) -> None: # # not sure why i add it # self.setFocus() # return super().enterEvent(event) class Canvas(QGraphicsScene): Loading
ui/config.py 0 → 100644 +120 −0 Original line number Diff line number Diff line import json from . import constants as C from .misc import FontFormat from utils.structures import Tuple, Union, List, Dict, Config, field, nested_dataclass @nested_dataclass class ModuleConfig(Config): textdetector: str = 'ctd' ocr: str = "mit48px_ctc" inpainter: str = 'lama_mpe' translator: str = "google" enable_ocr: bool = True enable_translate: bool = True enable_inpaint: bool = True textdetector_params: Dict = field(default_factory=lambda: dict()) ocr_params: Dict = field(default_factory=lambda: dict()) translator_params: Dict = field(default_factory=lambda: dict()) inpainter_params: Dict = field(default_factory=lambda: dict()) translate_source: str = '日本語' translate_target: str = '简体中文' check_need_inpaint: bool = True def get_params(self, module_key: str) -> dict: return self[module_key + '_params'] @nested_dataclass class DrawPanelConfig(Config): pentool_color: List = field(default_factory=lambda: [0, 0, 0]) pentool_width: float = 30. pentool_shape: int = 0 inpainter_width: float = 30. inpainter_shape: int = 0 current_tool: int = 0 rectool_auto: bool = False rectool_method: int = 0 recttool_dilate_ksize: int = 0 @nested_dataclass class ProgramConfig(Config): module: ModuleConfig = field(default_factory=lambda: ModuleConfig()) drawpanel: DrawPanelConfig = field(default_factory=lambda: DrawPanelConfig()) global_fontformat: FontFormat = field(default_factory=lambda: FontFormat()) recent_proj_list: List = field(default_factory=lambda: []) imgtrans_paintmode: bool = False imgtrans_textedit: bool = True imgtrans_textblock: bool = True mask_transparency: float = 0. original_transparency: float = 0. open_recent_on_startup: bool = True let_fntsize_flag: int = 0 let_fntstroke_flag: int = 0 let_fntcolor_flag: int = 0 let_fnt_scolor_flag: int = 0 let_fnteffect_flag: int = 1 let_alignment_flag: int = 0 let_autolayout_flag: bool = True let_uppercase_flag: bool = True font_presets: dict = field(default_factory=lambda: dict()) fsearch_case: bool = False fsearch_whole_word: bool = False fsearch_regex: bool = False fsearch_range: int = 0 gsearch_case: bool = False gsearch_whole_word: bool = False gsearch_regex: bool = False gsearch_range: int = 0 darkmode: bool = False src_link_flag: str = '' textselect_mini_menu: bool = True fold_textarea: bool = False show_source_text: bool = True show_trans_text: bool = True saladict_shortcut: str = "Alt+S" search_url: str = "https://www.google.com/search?q=" ocr_sublist: dict = field(default_factory=lambda: []) mt_sublist: dict = field(default_factory=lambda: []) display_lang: str = C.DEFAULT_DISPLAY_LANG @staticmethod def load(cfg_path: str): with open(cfg_path, 'r', encoding='utf8') as f: config_dict = json.loads(f.read()) # for backward compatibility if 'dl' in config_dict: dl = config_dict.pop('dl') if not 'module' in config_dict: if 'textdetector_setup_params' in dl: textdetector_params = dl.pop('textdetector_setup_params') dl['textdetector_params'] = textdetector_params if 'inpainter_setup_params' in dl: inpainter_params = dl.pop('inpainter_setup_params') dl['inpainter_params'] = inpainter_params if 'ocr_setup_params' in dl: ocr_params = dl.pop('ocr_setup_params') dl['ocr_params'] = ocr_params if 'translator_setup_params' in dl: translator_params = dl.pop('translator_setup_params') dl['translator_params'] = translator_params config_dict['module'] = dl if 'module' in config_dict: module_cfg = config_dict['module'] trans_params = module_cfg['translator_params'] repl_pairs = {'baidu': 'Baidu', 'caiyun': 'Caiyun', 'chatgpt': 'ChatGPT', 'Deepl': 'DeepL', 'papago': 'Papago'} for k, i in repl_pairs.items(): if k in trans_params: trans_params[i] = trans_params.pop(k) if module_cfg['translator'] in repl_pairs: module_cfg['translator'] = repl_pairs[module_cfg['translator']] return ProgramConfig(**config_dict) pcfg: ProgramConfig = None No newline at end of file
ui/configpanel.py +29 −35 Original line number Diff line number Diff line Loading @@ -6,7 +6,6 @@ from qtpy.QtGui import QStandardItem, QStandardItemModel, QMouseEvent, QFont, QC from . import constants as C # nuitka seems to require import QtCore explicitly if C.FLAG_QT6: from PyQt6 import QtCore Loading @@ -14,7 +13,7 @@ else: from PyQt5 import QtCore from .stylewidgets import Widget, ConfigComboBox from .misc import ProgramConfig from .config import pcfg from .constants import CONFIG_FONTSIZE_CONTENT, CONFIG_FONTSIZE_HEADER, CONFIG_FONTSIZE_TABLE, CONFIG_COMBOBOX_SHORT, CONFIG_COMBOBOX_LONG, CONFIG_COMBOBOX_MIDEAN from .dlconfig_parse_widgets import InpaintConfigPanel, TextDetectConfigPanel, TranslatorConfigPanel, OCRConfigPanel Loading Loading @@ -271,11 +270,9 @@ class ConfigPanel(Widget): save_config = Signal() update_source_download_status = Signal(str) def __init__(self, config: ProgramConfig, *args, **kwargs) -> None: def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) self.config = config self.configTable = ConfigTable() self.configTable.tableitem_pressed.connect(self.onTableItemPressed) self.configContent = ConfigContent() Loading Loading @@ -400,52 +397,50 @@ class ConfigPanel(Widget): def onTableItemPressed(self, idx0, idx1): self.configContent.setActiveLabel(idx0, idx1) # cb: ConfigBlock = self.configContent.config_block_list[idx0] # self.configContent.ensureWidgetVisible(self.activel) def on_open_onstartup_changed(self): self.config.open_recent_on_startup = self.open_on_startup_checker.isChecked() pcfg.open_recent_on_startup = self.open_on_startup_checker.isChecked() def on_fntsize_flag_changed(self): self.config.let_fntsize_flag = self.let_fntsize_combox.currentIndex() pcfg.let_fntsize_flag = self.let_fntsize_combox.currentIndex() def on_fntstroke_flag_changed(self): self.config.let_fntstroke_flag = self.let_fntstroke_combox.currentIndex() pcfg.let_fntstroke_flag = self.let_fntstroke_combox.currentIndex() def on_autolayout_changed(self): self.config.let_autolayout_flag = self.let_autolayout_checker.isChecked() pcfg.let_autolayout_flag = self.let_autolayout_checker.isChecked() def on_uppercase_changed(self): self.config.let_uppercase_flag = self.let_uppercase_checker.isChecked() pcfg.let_uppercase_flag = self.let_uppercase_checker.isChecked() def on_selectext_minimenu_changed(self): self.config.textselect_mini_menu = self.selectext_minimenu_checker.isChecked() pcfg.textselect_mini_menu = self.selectext_minimenu_checker.isChecked() def on_saladict_shortcut_changed(self): kstr = self.saladict_shortcut.keySequence().toString() if kstr: self.config.saladict_shortcut = self.saladict_shortcut.keySequence().toString() pcfg.saladict_shortcut = self.saladict_shortcut.keySequence().toString() def on_searchurl_changed(self): url = self.searchurl_combobox.currentText() self.config.search_url = url pcfg.search_url = url def on_fontcolor_flag_changed(self): self.config.let_fntcolor_flag = self.let_fntcolor_combox.currentIndex() pcfg.let_fntcolor_flag = self.let_fntcolor_combox.currentIndex() def on_font_scolor_flag_changed(self): self.config.let_fnt_scolor_flag = self.let_fnt_scolor_combox.currentIndex() pcfg.let_fnt_scolor_flag = self.let_fnt_scolor_combox.currentIndex() def on_alignment_flag_changed(self): self.config.let_alignment_flag = self.let_alignment_combox.currentIndex() pcfg.let_alignment_flag = self.let_alignment_combox.currentIndex() def on_effect_flag_changed(self): self.config.let_fnteffect_flag = self.let_effect_combox.currentIndex() pcfg.let_fnteffect_flag = self.let_effect_combox.currentIndex() def on_source_link_changed(self): self.config.src_link_flag = self.src_link_textbox.text() self.update_source_download_status.emit(self.config.src_link_flag) pcfg.src_link_flag = self.src_link_textbox.text() self.update_source_download_status.emit(pcfg.src_link_flag) def focusOnTranslator(self): idx0, idx1 = self.trans_sub_block.idx0, self.trans_sub_block.idx1 Loading Loading @@ -474,21 +469,20 @@ class ConfigPanel(Widget): def setupConfig(self): self.blockSignals(True) config = self.config if config.open_recent_on_startup: if pcfg.open_recent_on_startup: self.open_on_startup_checker.setChecked(True) self.let_effect_combox.setCurrentIndex(config.let_fnteffect_flag) self.let_fntsize_combox.setCurrentIndex(config.let_fntsize_flag) self.let_fntstroke_combox.setCurrentIndex(config.let_fntstroke_flag) self.let_fntcolor_combox.setCurrentIndex(config.let_fntcolor_flag) self.let_fnt_scolor_combox.setCurrentIndex(config.let_fnt_scolor_flag) self.let_alignment_combox.setCurrentIndex(config.let_alignment_flag) self.let_autolayout_checker.setChecked(config.let_autolayout_flag) self.selectext_minimenu_checker.setChecked(config.textselect_mini_menu) self.let_uppercase_checker.setChecked(config.let_uppercase_flag) self.saladict_shortcut.setKeySequence(config.saladict_shortcut) self.searchurl_combobox.setCurrentText(config.search_url) self.src_link_textbox.setText(config.src_link_flag) self.let_effect_combox.setCurrentIndex(pcfg.let_fnteffect_flag) self.let_fntsize_combox.setCurrentIndex(pcfg.let_fntsize_flag) self.let_fntstroke_combox.setCurrentIndex(pcfg.let_fntstroke_flag) self.let_fntcolor_combox.setCurrentIndex(pcfg.let_fntcolor_flag) self.let_fnt_scolor_combox.setCurrentIndex(pcfg.let_fnt_scolor_flag) self.let_alignment_combox.setCurrentIndex(pcfg.let_alignment_flag) self.let_autolayout_checker.setChecked(pcfg.let_autolayout_flag) self.selectext_minimenu_checker.setChecked(pcfg.textselect_mini_menu) self.let_uppercase_checker.setChecked(pcfg.let_uppercase_flag) self.saladict_shortcut.setKeySequence(pcfg.saladict_shortcut) self.searchurl_combobox.setCurrentText(pcfg.search_url) self.src_link_textbox.setText(pcfg.src_link_flag) self.blockSignals(False) No newline at end of file