Loading .gitignore +1 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ ballontranslator/data/models ballontranslator/data/testpacks/eng_dontupload ballontranslator/data/testpacks/testpacks ballontranslator/data/*.png ballontranslator/dl/pagesources/gallery-dl ballontranslator/ui/pagesources/gallery-dl ballontranslator/gallery-dl release Loading ballontranslator/ui/configpanel.py +9 −2 Original line number Diff line number Diff line Loading @@ -97,7 +97,7 @@ class ConfigBlock(Widget): sublock.layout().addItem(QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)) self.addSublock(sublock) sublock.layout().setSpacing(20) return le return le, sublock def addTextLabel(self, text: str = None): label = ConfigTextLabel(text, CONFIG_FONTSIZE_HEADER) Loading Loading @@ -272,6 +272,7 @@ class ConfigTable(QTreeView): class ConfigPanel(Widget): save_config = Signal() update_source_download_status = Signal(str) def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) Loading Loading @@ -334,7 +335,7 @@ class ConfigPanel(Widget): self.open_on_startup_checker.stateChanged.connect(self.on_open_onstartup_changed) generalConfigPanel.addTextLabel(label_sources) self.src_link_textbox = generalConfigPanel.addLineEdit('Source url') self.src_link_textbox, self.src_link_sub_block = generalConfigPanel.addLineEdit('Source url') self.src_link_textbox.textChanged.connect(self.on_source_link_changed) generalConfigPanel.addTextLabel(label_lettering) Loading Loading @@ -447,6 +448,7 @@ class ConfigPanel(Widget): 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) def focusOnTranslator(self): idx0, idx1 = self.trans_sub_block.idx0, self.trans_sub_block.idx1 Loading @@ -458,6 +460,11 @@ class ConfigPanel(Widget): self.configTable.setCurrentItem(idx0, idx1) self.configTable.tableitem_pressed.emit(idx0, idx1) def focusOnSourceDownload(self): idx0, idx1 = self.src_link_sub_block.idx0, self.src_link_sub_block.idx1 self.configTable.setCurrentItem(idx0, idx1) self.configTable.tableitem_pressed.emit(idx0, idx1) def showEvent(self, e) -> None: self.inpaint_sub_block.layout().addWidget(self.inpaint_config_panel) return super().showEvent(e) Loading ballontranslator/ui/dl_manager.py +7 −5 Original line number Diff line number Diff line Loading @@ -451,6 +451,7 @@ class DLManager(QObject): imgtrans_proj: ProjImgTrans = None update_translator_status = Signal(str, str, str) update_source_download_status = Signal(str) update_inpainter_status = Signal(str) finish_translate_page = Signal(str) canvas_inpaint_finished = Signal(dict) Loading Loading @@ -530,6 +531,8 @@ class DLManager(QObject): ocr_panel.ocr_changed.connect(self.setOCR) self.ocr_postprocess = ocr_postprocess self.on_finish_setsourcedownload() self.setTextDetector() self.setOCR() if self.dl_config.enable_translate: Loading Loading @@ -614,11 +617,6 @@ class DLManager(QObject): self.progress_msgbox.show() self.imgtrans_thread.runBlktransPipeline(blk_list, tgt_img, mode) def runSourceDownload(self, menu): from dl.pagesources import SourceDownload source = SourceDownload(self.config, self.imgtrans_proj, menu) source.SyncSourceDownload() def on_finish_blktrans_stage(self, stage: str, progress: int): if stage == 'ocr': self.progress_msgbox.updateOCRProgress(progress) Loading Loading @@ -746,6 +744,10 @@ class DLManager(QObject): LOGGER.error('invalid translator') self.update_translator_status.emit(self.tr('Invalid'), '', '') def on_finish_setsourcedownload(self): if self.config.src_link_flag: self.update_source_download_status.emit(self.config.src_link_flag) def on_finish_translate_page(self, page_key: str): self.finish_translate_page.emit(page_key) Loading ballontranslator/ui/mainwindow.py +21 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ from .imgtrans_proj import ProjImgTrans from .canvas import Canvas from .configpanel import ConfigPanel from .dl_manager import DLManager from .pagesources import SourceDownload from .textedit_area import TextPanel, SourceTextEdit, SelectTextMiniMenu from .drawingpanel import DrawingPanel from .scenetext_manager import SceneTextManager Loading Loading @@ -229,6 +230,8 @@ class MainWindow(FramelessWindow): self.dl_manager = dl_manager = DLManager(config, self.imgtrans_proj) dl_manager.update_translator_status.connect(self.updateTranslatorStatus) dl_manager.update_source_download_status.connect(self.updateSourceDownloadStatus) self.configPanel.update_source_download_status.connect(self.updateSourceDownloadStatus) dl_manager.update_inpainter_status.connect(self.updateInpainterStatus) dl_manager.finish_translate_page.connect(self.finishTranslatePage) dl_manager.imgtrans_pipeline_finished.connect(self.on_imgtrans_pipeline_finished) Loading @@ -245,6 +248,7 @@ class MainWindow(FramelessWindow): self.bottomBar.ocrcheck_statechanged.connect(dl_manager.setOCRMode) self.bottomBar.transcheck_statechanged.connect(dl_manager.setTransMode) self.bottomBar.inpaint_btn_clicked.connect(self.inpaintBtnClicked) self.bottomBar.source_download_btn_clicked.connect(self.SourceDownloadBtnClicked) self.bottomBar.translatorStatusbtn.clicked.connect(self.translatorStatusBtnPressed) self.bottomBar.transTranspageBtn.run_target.connect(self.on_transpagebtn_pressed) Loading @@ -261,6 +265,9 @@ class MainWindow(FramelessWindow): self.configPanel.setupConfig() self.configPanel.save_config.connect(self.save_config) self.source_download = SourceDownload(config, self.imgtrans_proj) self.source_download.open_downloaded_proj.connect(self.openDir) textblock_mode = config.imgtrans_textblock if config.imgtrans_textedit: if textblock_mode: Loading Loading @@ -749,6 +756,10 @@ class MainWindow(FramelessWindow): self.leftBar.configChecker.setChecked(True) self.configPanel.focusOnInpaint() def SourceDownloadBtnClicked(self): self.leftBar.configChecker.setChecked(True) self.configPanel.focusOnSourceDownload() def updateTranslatorStatus(self, translator: str, source: str, target: str): if translator == '': self.bottomBar.translatorStatusbtn.hide() Loading @@ -758,6 +769,15 @@ class MainWindow(FramelessWindow): self.bottomBar.translatorStatusbtn.show() self.bottomBar.transTranspageBtn.show() def updateSourceDownloadStatus(self, url: str): if url == '': self.bottomBar.sourceStatusBtn.hide() self.bottomBar.sourceStatusBtn.hide() else: self.bottomBar.sourceStatusBtn.updateStatus(url) self.bottomBar.sourceStatusBtn.show() self.bottomBar.sourceStatusBtn.show() def updateInpainterStatus(self, inpainter: str): self.bottomBar.inpainterStatBtn.updateStatus(inpainter) Loading Loading @@ -911,7 +931,7 @@ class MainWindow(FramelessWindow): self.dl_manager.runImgtransPipeline() def on_run_sync_source(self): self.dl_manager.runSourceDownload(self) self.source_download.SyncSourceDownload() def on_transpanel_changed(self): self.canvas.editor_index = self.rightComicTransStackPanel.currentIndex() Loading ballontranslator/ui/mainwindowbars.py +12 −1 Original line number Diff line number Diff line Loading @@ -87,6 +87,10 @@ class InpainterStatusButton(StatusButton): def updateStatus(self, inpainter: str): self.setText(self.tr('Inpainter: ') + inpainter) class SourceDownloadStatusButton(StatusButton): def updateStatus(self, source_url: str): self.setText(self.tr('Source url: ') + source_url) class StateChecker(QCheckBox): checked = Signal(str) Loading Loading @@ -499,6 +503,7 @@ class BottomBar(Widget): ocrcheck_statechanged = Signal(bool) transcheck_statechanged = Signal(bool) inpaint_btn_clicked = Signal() source_download_btn_clicked = Signal() def __init__(self, mainwindow: QMainWindow, *args, **kwargs) -> None: super().__init__(mainwindow, *args, **kwargs) Loading @@ -522,6 +527,8 @@ class BottomBar(Widget): self.tr('stop translation')) self.inpainterStatBtn = InpainterStatusButton() self.inpainterStatBtn.clicked.connect(self.inpaintBtnClicked) self.sourceStatusBtn = SourceDownloadStatusButton() self.sourceStatusBtn.clicked.connect(self.SourceDownloadBtnClicked) self.transTranspageBtn.hide() self.hlayout = QHBoxLayout(self) self.paintChecker = QCheckBox() Loading Loading @@ -550,6 +557,7 @@ class BottomBar(Widget): self.hlayout.addWidget(self.translatorStatusbtn) self.hlayout.addWidget(self.transTranspageBtn) self.hlayout.addWidget(self.inpainterStatBtn) self.hlayout.addWidget(self.sourceStatusBtn) self.hlayout.addSpacerItem(QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)) self.hlayout.addWidget(self.textlayerSlider) self.hlayout.addWidget(self.originalSlider) Loading Loading @@ -580,3 +588,6 @@ class BottomBar(Widget): def inpaintBtnClicked(self): self.inpaint_btn_clicked.emit() def SourceDownloadBtnClicked(self): self.source_download_btn_clicked.emit() No newline at end of file Loading
.gitignore +1 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ ballontranslator/data/models ballontranslator/data/testpacks/eng_dontupload ballontranslator/data/testpacks/testpacks ballontranslator/data/*.png ballontranslator/dl/pagesources/gallery-dl ballontranslator/ui/pagesources/gallery-dl ballontranslator/gallery-dl release Loading
ballontranslator/ui/configpanel.py +9 −2 Original line number Diff line number Diff line Loading @@ -97,7 +97,7 @@ class ConfigBlock(Widget): sublock.layout().addItem(QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)) self.addSublock(sublock) sublock.layout().setSpacing(20) return le return le, sublock def addTextLabel(self, text: str = None): label = ConfigTextLabel(text, CONFIG_FONTSIZE_HEADER) Loading Loading @@ -272,6 +272,7 @@ class ConfigTable(QTreeView): class ConfigPanel(Widget): save_config = Signal() update_source_download_status = Signal(str) def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) Loading Loading @@ -334,7 +335,7 @@ class ConfigPanel(Widget): self.open_on_startup_checker.stateChanged.connect(self.on_open_onstartup_changed) generalConfigPanel.addTextLabel(label_sources) self.src_link_textbox = generalConfigPanel.addLineEdit('Source url') self.src_link_textbox, self.src_link_sub_block = generalConfigPanel.addLineEdit('Source url') self.src_link_textbox.textChanged.connect(self.on_source_link_changed) generalConfigPanel.addTextLabel(label_lettering) Loading Loading @@ -447,6 +448,7 @@ class ConfigPanel(Widget): 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) def focusOnTranslator(self): idx0, idx1 = self.trans_sub_block.idx0, self.trans_sub_block.idx1 Loading @@ -458,6 +460,11 @@ class ConfigPanel(Widget): self.configTable.setCurrentItem(idx0, idx1) self.configTable.tableitem_pressed.emit(idx0, idx1) def focusOnSourceDownload(self): idx0, idx1 = self.src_link_sub_block.idx0, self.src_link_sub_block.idx1 self.configTable.setCurrentItem(idx0, idx1) self.configTable.tableitem_pressed.emit(idx0, idx1) def showEvent(self, e) -> None: self.inpaint_sub_block.layout().addWidget(self.inpaint_config_panel) return super().showEvent(e) Loading
ballontranslator/ui/dl_manager.py +7 −5 Original line number Diff line number Diff line Loading @@ -451,6 +451,7 @@ class DLManager(QObject): imgtrans_proj: ProjImgTrans = None update_translator_status = Signal(str, str, str) update_source_download_status = Signal(str) update_inpainter_status = Signal(str) finish_translate_page = Signal(str) canvas_inpaint_finished = Signal(dict) Loading Loading @@ -530,6 +531,8 @@ class DLManager(QObject): ocr_panel.ocr_changed.connect(self.setOCR) self.ocr_postprocess = ocr_postprocess self.on_finish_setsourcedownload() self.setTextDetector() self.setOCR() if self.dl_config.enable_translate: Loading Loading @@ -614,11 +617,6 @@ class DLManager(QObject): self.progress_msgbox.show() self.imgtrans_thread.runBlktransPipeline(blk_list, tgt_img, mode) def runSourceDownload(self, menu): from dl.pagesources import SourceDownload source = SourceDownload(self.config, self.imgtrans_proj, menu) source.SyncSourceDownload() def on_finish_blktrans_stage(self, stage: str, progress: int): if stage == 'ocr': self.progress_msgbox.updateOCRProgress(progress) Loading Loading @@ -746,6 +744,10 @@ class DLManager(QObject): LOGGER.error('invalid translator') self.update_translator_status.emit(self.tr('Invalid'), '', '') def on_finish_setsourcedownload(self): if self.config.src_link_flag: self.update_source_download_status.emit(self.config.src_link_flag) def on_finish_translate_page(self, page_key: str): self.finish_translate_page.emit(page_key) Loading
ballontranslator/ui/mainwindow.py +21 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ from .imgtrans_proj import ProjImgTrans from .canvas import Canvas from .configpanel import ConfigPanel from .dl_manager import DLManager from .pagesources import SourceDownload from .textedit_area import TextPanel, SourceTextEdit, SelectTextMiniMenu from .drawingpanel import DrawingPanel from .scenetext_manager import SceneTextManager Loading Loading @@ -229,6 +230,8 @@ class MainWindow(FramelessWindow): self.dl_manager = dl_manager = DLManager(config, self.imgtrans_proj) dl_manager.update_translator_status.connect(self.updateTranslatorStatus) dl_manager.update_source_download_status.connect(self.updateSourceDownloadStatus) self.configPanel.update_source_download_status.connect(self.updateSourceDownloadStatus) dl_manager.update_inpainter_status.connect(self.updateInpainterStatus) dl_manager.finish_translate_page.connect(self.finishTranslatePage) dl_manager.imgtrans_pipeline_finished.connect(self.on_imgtrans_pipeline_finished) Loading @@ -245,6 +248,7 @@ class MainWindow(FramelessWindow): self.bottomBar.ocrcheck_statechanged.connect(dl_manager.setOCRMode) self.bottomBar.transcheck_statechanged.connect(dl_manager.setTransMode) self.bottomBar.inpaint_btn_clicked.connect(self.inpaintBtnClicked) self.bottomBar.source_download_btn_clicked.connect(self.SourceDownloadBtnClicked) self.bottomBar.translatorStatusbtn.clicked.connect(self.translatorStatusBtnPressed) self.bottomBar.transTranspageBtn.run_target.connect(self.on_transpagebtn_pressed) Loading @@ -261,6 +265,9 @@ class MainWindow(FramelessWindow): self.configPanel.setupConfig() self.configPanel.save_config.connect(self.save_config) self.source_download = SourceDownload(config, self.imgtrans_proj) self.source_download.open_downloaded_proj.connect(self.openDir) textblock_mode = config.imgtrans_textblock if config.imgtrans_textedit: if textblock_mode: Loading Loading @@ -749,6 +756,10 @@ class MainWindow(FramelessWindow): self.leftBar.configChecker.setChecked(True) self.configPanel.focusOnInpaint() def SourceDownloadBtnClicked(self): self.leftBar.configChecker.setChecked(True) self.configPanel.focusOnSourceDownload() def updateTranslatorStatus(self, translator: str, source: str, target: str): if translator == '': self.bottomBar.translatorStatusbtn.hide() Loading @@ -758,6 +769,15 @@ class MainWindow(FramelessWindow): self.bottomBar.translatorStatusbtn.show() self.bottomBar.transTranspageBtn.show() def updateSourceDownloadStatus(self, url: str): if url == '': self.bottomBar.sourceStatusBtn.hide() self.bottomBar.sourceStatusBtn.hide() else: self.bottomBar.sourceStatusBtn.updateStatus(url) self.bottomBar.sourceStatusBtn.show() self.bottomBar.sourceStatusBtn.show() def updateInpainterStatus(self, inpainter: str): self.bottomBar.inpainterStatBtn.updateStatus(inpainter) Loading Loading @@ -911,7 +931,7 @@ class MainWindow(FramelessWindow): self.dl_manager.runImgtransPipeline() def on_run_sync_source(self): self.dl_manager.runSourceDownload(self) self.source_download.SyncSourceDownload() def on_transpanel_changed(self): self.canvas.editor_index = self.rightComicTransStackPanel.currentIndex() Loading
ballontranslator/ui/mainwindowbars.py +12 −1 Original line number Diff line number Diff line Loading @@ -87,6 +87,10 @@ class InpainterStatusButton(StatusButton): def updateStatus(self, inpainter: str): self.setText(self.tr('Inpainter: ') + inpainter) class SourceDownloadStatusButton(StatusButton): def updateStatus(self, source_url: str): self.setText(self.tr('Source url: ') + source_url) class StateChecker(QCheckBox): checked = Signal(str) Loading Loading @@ -499,6 +503,7 @@ class BottomBar(Widget): ocrcheck_statechanged = Signal(bool) transcheck_statechanged = Signal(bool) inpaint_btn_clicked = Signal() source_download_btn_clicked = Signal() def __init__(self, mainwindow: QMainWindow, *args, **kwargs) -> None: super().__init__(mainwindow, *args, **kwargs) Loading @@ -522,6 +527,8 @@ class BottomBar(Widget): self.tr('stop translation')) self.inpainterStatBtn = InpainterStatusButton() self.inpainterStatBtn.clicked.connect(self.inpaintBtnClicked) self.sourceStatusBtn = SourceDownloadStatusButton() self.sourceStatusBtn.clicked.connect(self.SourceDownloadBtnClicked) self.transTranspageBtn.hide() self.hlayout = QHBoxLayout(self) self.paintChecker = QCheckBox() Loading Loading @@ -550,6 +557,7 @@ class BottomBar(Widget): self.hlayout.addWidget(self.translatorStatusbtn) self.hlayout.addWidget(self.transTranspageBtn) self.hlayout.addWidget(self.inpainterStatBtn) self.hlayout.addWidget(self.sourceStatusBtn) self.hlayout.addSpacerItem(QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)) self.hlayout.addWidget(self.textlayerSlider) self.hlayout.addWidget(self.originalSlider) Loading Loading @@ -580,3 +588,6 @@ class BottomBar(Widget): def inpaintBtnClicked(self): self.inpaint_btn_clicked.emit() def SourceDownloadBtnClicked(self): self.source_download_btn_clicked.emit() No newline at end of file