Loading ballontranslator/dl/inpaint/__init__.py +0 −1 Original line number Diff line number Diff line Loading @@ -30,7 +30,6 @@ class InpainterBase(ModuleParamParser): raise NotImplementedError def inpaint(self, img: np.ndarray, mask: np.ndarray, textblock_list: List[TextBlock] = None) -> np.ndarray: if not self.inpaint_by_block or textblock_list is None: return self._inpaint(img, mask) else: Loading ballontranslator/ui/configpanel.py +10 −3 Original line number Diff line number Diff line Loading @@ -86,7 +86,7 @@ class ConfigBlock(Widget): def addCombobox(self, sel: List[str], name: str, discription: str = None): combox = ConfigComboBox() combox.addItems(sel) sublock = ConfigSubBlock(combox, name, discription) sublock = ConfigSubBlock(combox, name, discription, vertical_layout=False) self.addSublock(sublock) def addBlock(self, widget: Union[QWidget, QLayout], name: str = None, discription: str = None) -> ConfigSubBlock: Loading Loading @@ -253,15 +253,17 @@ class ConfigPanel(Widget): label_inpaint = self.tr('Inpaint') label_translator = self.tr('Translator') label_startup = self.tr('Startup') label_lettering = self.tr('Lettering') dltableitem.appendRows([ TableItem(label_text_det, CONFIG_FONTSIZE_TABLE), TableItem(label_text_ocr, CONFIG_FONTSIZE_TABLE), TableItem(label_inpaint, CONFIG_FONTSIZE_TABLE), TableItem(label_translator, CONFIG_FONTSIZE_TABLE) TableItem(label_translator, CONFIG_FONTSIZE_TABLE), ]) generalTableItem.appendRows([ TableItem(label_startup, CONFIG_FONTSIZE_TABLE) TableItem(label_startup, CONFIG_FONTSIZE_TABLE), TableItem(label_lettering, CONFIG_FONTSIZE_TABLE) ]) dlConfigPanel.addTextLabel(label_text_det) Loading @@ -284,6 +286,11 @@ class ConfigPanel(Widget): self.open_on_startup_checker = generalConfigPanel.addCheckBox(self.tr('Reopen last project on startup')) self.open_on_startup_checker.stateChanged.connect(self.on_open_onstartup_changed) generalConfigPanel.addTextLabel(self.tr('Lettering')) generalConfigPanel.addCombobox([self.tr('decide by program'), self.tr('use global setting')], self.tr('font size')) splitter = QSplitter(Qt.Horizontal) splitter.addWidget(self.configTable) splitter.addWidget(self.configContent) Loading ballontranslator/ui/dl_manager.py +9 −11 Original line number Diff line number Diff line Loading @@ -21,7 +21,7 @@ from .misc import ProjImgTrans, DLModuleConfig class ModuleThread(QThread): exception_occurred = pyqtSignal(str, str) exception_occurred = pyqtSignal(str, str, str) finish_set_module = pyqtSignal() def __init__(self, dl_config: DLModuleConfig, module_key: str, MODULE_REGISTER: Registry, *args, **kwargs) -> None: Loading Loading @@ -50,7 +50,7 @@ class ModuleThread(QThread): self.module = old_module msg = self.tr('Failed to set ') + module_name self.exception_occurred.emit(msg, str(e) + '\n' + f'exc: {traceback.format_exc()}') self.exception_occurred.emit(msg, str(e), traceback.format_exc()) self.finish_set_module.emit() def pipeline_finished(self): Loading Loading @@ -105,8 +105,7 @@ class InpaintThread(ModuleThread): } self.finish_inpaint.emit(inpaint_dict) except Exception as e: # self.exception_occurred.emit(self.tr('Inpainting Failed.'), repr(e)) self.exception_occurred.emit(self.tr('Inpainting Failed.'), str(e) + '\n' + f'exc: {traceback.format_exc()}') self.exception_occurred.emit(self.tr('Inpainting Failed.'), str(e), traceback.format_exc()) class TextDetectThread(ModuleThread): Loading Loading @@ -170,11 +169,11 @@ class TranslateThread(ModuleThread): msg += self.tr('support list: ') + '\n' msg += e.message self.translator = old_translator self.exception_occurred.emit(msg, '') self.exception_occurred.emit(msg, '', traceback.format_exc()) except Exception as e: self.translator = old_translator msg = self.tr('Failed to set translator ') + translator self.exception_occurred.emit(msg, repr(e)) self.exception_occurred.emit(msg, repr(e), traceback.format_exc()) self.module = self.translator self.finish_set_module.emit() Loading @@ -190,12 +189,12 @@ class TranslateThread(ModuleThread): if raise_exception: raise e else: self.exception_occurred.emit(e + self.tr(' is required for '), '') self.exception_occurred.emit(e + self.tr(' is required for '), '', traceback.format_exc()) except Exception as e: if raise_exception: raise e else: self.exception_occurred.emit(self.tr('Translation Failed.'), repr(e)) self.exception_occurred.emit(self.tr('Translation Failed.'), repr(e), traceback.format_exc()) if emit_finished: self.finish_translate_page.emit(page_key) Loading Loading @@ -229,7 +228,7 @@ class TranslateThread(ModuleThread): msg = msg + '\n' + str(e) + self.tr(' is required for ' + self.translator.name) self.blockSignals(False) self.exception_occurred.emit(msg, repr(e)) self.exception_occurred.emit(msg, repr(e), traceback.format_exc()) self.imgtrans_proj = None self.finished_counter = 0 self.pipeline_pagekey_queue = [] Loading Loading @@ -718,10 +717,9 @@ class DLManager(QObject): param_key: str, param_content: str): module.updateParam(param_key, param_content) def handleRunTimeException(self, msg: str, detail: str = None): def handleRunTimeException(self, msg: str, detail: str = None, verbose: str = ''): if detail is not None: msg += ': ' + detail verbose = traceback.format_exc() LOGGER.error(msg + '\n' + verbose) err = QMessageBox() err.setText(msg) Loading ballontranslator/ui/fontformatpanel.py +4 −2 Original line number Diff line number Diff line import functools from typing import List, Tuple, Union from PyQt5.QtWidgets import QHBoxLayout, QLabel, QTextEdit, QScrollArea, QGraphicsDropShadowEffect, QVBoxLayout, QFrame, QFontComboBox, QColorDialog, QComboBox, QApplication, QPushButton, QRadioButton, QCheckBox from PyQt5.QtCore import pyqtSignal, Qt, QSize, QEvent, QObject from PyQt5.QtWidgets import QHBoxLayout, QVBoxLayout, QFrame, QFontComboBox, QComboBox, QApplication, QPushButton, QRadioButton, QCheckBox from PyQt5.QtCore import pyqtSignal, Qt from PyQt5.QtGui import QColor, QTextCharFormat, QIntValidator, QMouseEvent, QFont, QTextCursor, QTextFormat from .stylewidgets import Widget, ColorPicker, PaintQSlider from .misc import FontFormat, set_html_color from .textitem import TextBlkItem, TextBlock # restore text cursor status after formatting def restore_textcursor(formatting_func): Loading ballontranslator/ui/mainwindow.py +2 −0 Original line number Diff line number Diff line Loading @@ -237,6 +237,8 @@ class MainWindow(QMainWindow): config_dict = self.config.to_dict() with open(CONFIG_PATH, 'w', encoding='utf8') as f: f.write(json.dumps(config_dict, ensure_ascii=False, indent=4, separators=(',', ':'))) if not self.imgtrans_proj.is_empty: self.imgtrans_proj.save() return super().closeEvent(event) def onHideCanvas(self): Loading Loading
ballontranslator/dl/inpaint/__init__.py +0 −1 Original line number Diff line number Diff line Loading @@ -30,7 +30,6 @@ class InpainterBase(ModuleParamParser): raise NotImplementedError def inpaint(self, img: np.ndarray, mask: np.ndarray, textblock_list: List[TextBlock] = None) -> np.ndarray: if not self.inpaint_by_block or textblock_list is None: return self._inpaint(img, mask) else: Loading
ballontranslator/ui/configpanel.py +10 −3 Original line number Diff line number Diff line Loading @@ -86,7 +86,7 @@ class ConfigBlock(Widget): def addCombobox(self, sel: List[str], name: str, discription: str = None): combox = ConfigComboBox() combox.addItems(sel) sublock = ConfigSubBlock(combox, name, discription) sublock = ConfigSubBlock(combox, name, discription, vertical_layout=False) self.addSublock(sublock) def addBlock(self, widget: Union[QWidget, QLayout], name: str = None, discription: str = None) -> ConfigSubBlock: Loading Loading @@ -253,15 +253,17 @@ class ConfigPanel(Widget): label_inpaint = self.tr('Inpaint') label_translator = self.tr('Translator') label_startup = self.tr('Startup') label_lettering = self.tr('Lettering') dltableitem.appendRows([ TableItem(label_text_det, CONFIG_FONTSIZE_TABLE), TableItem(label_text_ocr, CONFIG_FONTSIZE_TABLE), TableItem(label_inpaint, CONFIG_FONTSIZE_TABLE), TableItem(label_translator, CONFIG_FONTSIZE_TABLE) TableItem(label_translator, CONFIG_FONTSIZE_TABLE), ]) generalTableItem.appendRows([ TableItem(label_startup, CONFIG_FONTSIZE_TABLE) TableItem(label_startup, CONFIG_FONTSIZE_TABLE), TableItem(label_lettering, CONFIG_FONTSIZE_TABLE) ]) dlConfigPanel.addTextLabel(label_text_det) Loading @@ -284,6 +286,11 @@ class ConfigPanel(Widget): self.open_on_startup_checker = generalConfigPanel.addCheckBox(self.tr('Reopen last project on startup')) self.open_on_startup_checker.stateChanged.connect(self.on_open_onstartup_changed) generalConfigPanel.addTextLabel(self.tr('Lettering')) generalConfigPanel.addCombobox([self.tr('decide by program'), self.tr('use global setting')], self.tr('font size')) splitter = QSplitter(Qt.Horizontal) splitter.addWidget(self.configTable) splitter.addWidget(self.configContent) Loading
ballontranslator/ui/dl_manager.py +9 −11 Original line number Diff line number Diff line Loading @@ -21,7 +21,7 @@ from .misc import ProjImgTrans, DLModuleConfig class ModuleThread(QThread): exception_occurred = pyqtSignal(str, str) exception_occurred = pyqtSignal(str, str, str) finish_set_module = pyqtSignal() def __init__(self, dl_config: DLModuleConfig, module_key: str, MODULE_REGISTER: Registry, *args, **kwargs) -> None: Loading Loading @@ -50,7 +50,7 @@ class ModuleThread(QThread): self.module = old_module msg = self.tr('Failed to set ') + module_name self.exception_occurred.emit(msg, str(e) + '\n' + f'exc: {traceback.format_exc()}') self.exception_occurred.emit(msg, str(e), traceback.format_exc()) self.finish_set_module.emit() def pipeline_finished(self): Loading Loading @@ -105,8 +105,7 @@ class InpaintThread(ModuleThread): } self.finish_inpaint.emit(inpaint_dict) except Exception as e: # self.exception_occurred.emit(self.tr('Inpainting Failed.'), repr(e)) self.exception_occurred.emit(self.tr('Inpainting Failed.'), str(e) + '\n' + f'exc: {traceback.format_exc()}') self.exception_occurred.emit(self.tr('Inpainting Failed.'), str(e), traceback.format_exc()) class TextDetectThread(ModuleThread): Loading Loading @@ -170,11 +169,11 @@ class TranslateThread(ModuleThread): msg += self.tr('support list: ') + '\n' msg += e.message self.translator = old_translator self.exception_occurred.emit(msg, '') self.exception_occurred.emit(msg, '', traceback.format_exc()) except Exception as e: self.translator = old_translator msg = self.tr('Failed to set translator ') + translator self.exception_occurred.emit(msg, repr(e)) self.exception_occurred.emit(msg, repr(e), traceback.format_exc()) self.module = self.translator self.finish_set_module.emit() Loading @@ -190,12 +189,12 @@ class TranslateThread(ModuleThread): if raise_exception: raise e else: self.exception_occurred.emit(e + self.tr(' is required for '), '') self.exception_occurred.emit(e + self.tr(' is required for '), '', traceback.format_exc()) except Exception as e: if raise_exception: raise e else: self.exception_occurred.emit(self.tr('Translation Failed.'), repr(e)) self.exception_occurred.emit(self.tr('Translation Failed.'), repr(e), traceback.format_exc()) if emit_finished: self.finish_translate_page.emit(page_key) Loading Loading @@ -229,7 +228,7 @@ class TranslateThread(ModuleThread): msg = msg + '\n' + str(e) + self.tr(' is required for ' + self.translator.name) self.blockSignals(False) self.exception_occurred.emit(msg, repr(e)) self.exception_occurred.emit(msg, repr(e), traceback.format_exc()) self.imgtrans_proj = None self.finished_counter = 0 self.pipeline_pagekey_queue = [] Loading Loading @@ -718,10 +717,9 @@ class DLManager(QObject): param_key: str, param_content: str): module.updateParam(param_key, param_content) def handleRunTimeException(self, msg: str, detail: str = None): def handleRunTimeException(self, msg: str, detail: str = None, verbose: str = ''): if detail is not None: msg += ': ' + detail verbose = traceback.format_exc() LOGGER.error(msg + '\n' + verbose) err = QMessageBox() err.setText(msg) Loading
ballontranslator/ui/fontformatpanel.py +4 −2 Original line number Diff line number Diff line import functools from typing import List, Tuple, Union from PyQt5.QtWidgets import QHBoxLayout, QLabel, QTextEdit, QScrollArea, QGraphicsDropShadowEffect, QVBoxLayout, QFrame, QFontComboBox, QColorDialog, QComboBox, QApplication, QPushButton, QRadioButton, QCheckBox from PyQt5.QtCore import pyqtSignal, Qt, QSize, QEvent, QObject from PyQt5.QtWidgets import QHBoxLayout, QVBoxLayout, QFrame, QFontComboBox, QComboBox, QApplication, QPushButton, QRadioButton, QCheckBox from PyQt5.QtCore import pyqtSignal, Qt from PyQt5.QtGui import QColor, QTextCharFormat, QIntValidator, QMouseEvent, QFont, QTextCursor, QTextFormat from .stylewidgets import Widget, ColorPicker, PaintQSlider from .misc import FontFormat, set_html_color from .textitem import TextBlkItem, TextBlock # restore text cursor status after formatting def restore_textcursor(formatting_func): Loading
ballontranslator/ui/mainwindow.py +2 −0 Original line number Diff line number Diff line Loading @@ -237,6 +237,8 @@ class MainWindow(QMainWindow): config_dict = self.config.to_dict() with open(CONFIG_PATH, 'w', encoding='utf8') as f: f.write(json.dumps(config_dict, ensure_ascii=False, indent=4, separators=(',', ':'))) if not self.imgtrans_proj.is_empty: self.imgtrans_proj.save() return super().closeEvent(event) def onHideCanvas(self): Loading