Loading ui/config_proj.py +22 −2 Original line number Diff line number Diff line Loading @@ -41,13 +41,13 @@ class ProjImgTrans: def __init__(self, directory: str = None): self.type = 'imgtrans' self.directory: str = None self.pages: Dict[List[TextBlock]] = {} self.pages: Dict[str, List[TextBlock]] = {} self._pagename2idx = {} self._idx2pagename = {} self._fuzzy_inpainted_list = None self.not_found_pages: Dict[List[TextBlock]] = {} self.not_found_pages: Dict[str, List[TextBlock]] = {} self.new_pages: List[str] = [] self.proj_path: str = None Loading Loading @@ -384,6 +384,26 @@ class ProjImgTrans: if delete_tmp_folder: shutil.rmtree(cuts_dir) def dump_txt_path(self, dump_target, suffix): save_path = osp.join(self.directory, self.proj_name() + f'_{dump_target}{suffix}') return save_path def dump_txt(self, dump_target: str, suffix='.txt'): save_path = self.dump_txt_path(dump_target, suffix=suffix) text_all = [] assert dump_target in {'source', 'translation'} assert suffix in {'.txt', '.md'} for page_name, blk_list in self.pages.items(): text_in_page = ['### ' + page_name] for ii, blk in enumerate(blk_list): if dump_target == 'translation': text = blk.translation.strip() elif dump_target == 'source': text = blk.get_text().strip() text_in_page.append(f'{ii + 1}. {text}') text_all.append('\n\n'.join(text_in_page)) with open(save_path, 'w', encoding='utf8') as f: f.write('\n\n\n'.join(text_all)) def load_doc(self, doc_path, delete_tmp_folder=True, fin_page_signal=None): tmp_bubble_folder = osp.join(self.directory, 'img_folder') Loading ui/mainwindow.py +13 −0 Original line number Diff line number Diff line Loading @@ -135,6 +135,10 @@ class MainWindow(mainwindow_cls): self.leftBar.save_proj.connect(self.save_proj) self.leftBar.export_doc.connect(self.on_export_doc) self.leftBar.import_doc.connect(self.on_import_doc) self.leftBar.export_src_txt.connect(lambda : self.on_export_txt(dump_target='source')) self.leftBar.export_trans_txt.connect(lambda : self.on_export_txt(dump_target='translation')) self.leftBar.export_src_md.connect(lambda : self.on_export_txt(dump_target='source', suffix='.md')) self.leftBar.export_trans_md.connect(lambda : self.on_export_txt(dump_target='translation', suffix='.md')) self.pageList = PageListView() self.pageList.reveal_file.connect(self.on_reveal_file) Loading Loading @@ -1166,6 +1170,15 @@ class MainWindow(mainwindow_cls): def on_import_doc(self): self.import_doc_thread.importDoc(self.imgtrans_proj) def on_export_txt(self, dump_target, suffix='.txt'): try: self.imgtrans_proj.dump_txt(dump_target=dump_target, suffix=suffix) msg = QMessageBox() msg.setText(self.tr('Text file exported to ') + self.imgtrans_proj.dump_txt_path(dump_target, suffix)) msg.exec_() except Exception as e: create_error_dialog(e, self.tr('failed to export as TEXT file')) def on_reveal_file(self): current_img_path = self.imgtrans_proj.current_img_path() if sys.platform == 'win32': Loading ui/mainwindowbars.py +18 −8 Original line number Diff line number Diff line Loading @@ -107,9 +107,6 @@ class LeftBar(Widget): open_json_proj = Signal(str) save_proj = Signal() save_config = Signal() run_imgtrans = Signal() export_doc = Signal() import_doc = Signal() def __init__(self, mainwindow, *args, **kwargs) -> None: super().__init__(mainwindow, *args, **kwargs) self.mainwindow: QMainWindow = mainwindow Loading Loading @@ -143,9 +140,19 @@ class LeftBar(Widget): actionSaveProj.setShortcut(QKeySequence.StandardKey.Save) actionExportAsDoc = QAction(self.tr("Export as Doc"), self) actionExportAsDoc.triggered.connect(self.export_doc) self.export_doc = actionExportAsDoc.triggered actionImportFromDoc = QAction(self.tr("Import from Doc"), self) actionImportFromDoc.triggered.connect(self.import_doc) self.import_doc = actionImportFromDoc.triggered actionExportSrcTxt = QAction(self.tr("Export soure text as TXT"), self) self.export_src_txt = actionExportSrcTxt.triggered actionExportTranslationTxt = QAction(self.tr("Export translation as TXT"), self) self.export_trans_txt = actionExportTranslationTxt.triggered actionExportSrcMD = QAction(self.tr("Export soure text as markdown"), self) self.export_src_md = actionExportSrcMD.triggered actionExportTranslationMD = QAction(self.tr("Export translation as markdown"), self) self.export_trans_md = actionExportTranslationMD.triggered self.recentMenu = QMenu(self.tr("Open Recent"), self) Loading @@ -156,7 +163,11 @@ class LeftBar(Widget): openMenu.addActions([ actionSaveProj, actionExportAsDoc, actionImportFromDoc actionImportFromDoc, actionExportSrcTxt, actionExportTranslationTxt, actionExportSrcMD, actionExportTranslationMD, ]) self.openBtn = OpenBtn() self.openBtn.setFixedSize(LEFTBTN_WIDTH, LEFTBTN_WIDTH) Loading @@ -170,8 +181,7 @@ class LeftBar(Widget): self.runImgtransBtn = QPushButton() self.runImgtransBtn.setText('RUN') self.runImgtransBtn.setFixedSize(LEFTBTN_WIDTH, LEFTBTN_WIDTH) self.runImgtransBtn.clicked.connect(self.run_imgtrans) self.run_imgtrans = self.runImgtransBtn.clicked self.runImgtransBtn.setFixedSize(LEFTBTN_WIDTH, LEFTBTN_WIDTH) vlayout = QVBoxLayout(self) Loading Loading
ui/config_proj.py +22 −2 Original line number Diff line number Diff line Loading @@ -41,13 +41,13 @@ class ProjImgTrans: def __init__(self, directory: str = None): self.type = 'imgtrans' self.directory: str = None self.pages: Dict[List[TextBlock]] = {} self.pages: Dict[str, List[TextBlock]] = {} self._pagename2idx = {} self._idx2pagename = {} self._fuzzy_inpainted_list = None self.not_found_pages: Dict[List[TextBlock]] = {} self.not_found_pages: Dict[str, List[TextBlock]] = {} self.new_pages: List[str] = [] self.proj_path: str = None Loading Loading @@ -384,6 +384,26 @@ class ProjImgTrans: if delete_tmp_folder: shutil.rmtree(cuts_dir) def dump_txt_path(self, dump_target, suffix): save_path = osp.join(self.directory, self.proj_name() + f'_{dump_target}{suffix}') return save_path def dump_txt(self, dump_target: str, suffix='.txt'): save_path = self.dump_txt_path(dump_target, suffix=suffix) text_all = [] assert dump_target in {'source', 'translation'} assert suffix in {'.txt', '.md'} for page_name, blk_list in self.pages.items(): text_in_page = ['### ' + page_name] for ii, blk in enumerate(blk_list): if dump_target == 'translation': text = blk.translation.strip() elif dump_target == 'source': text = blk.get_text().strip() text_in_page.append(f'{ii + 1}. {text}') text_all.append('\n\n'.join(text_in_page)) with open(save_path, 'w', encoding='utf8') as f: f.write('\n\n\n'.join(text_all)) def load_doc(self, doc_path, delete_tmp_folder=True, fin_page_signal=None): tmp_bubble_folder = osp.join(self.directory, 'img_folder') Loading
ui/mainwindow.py +13 −0 Original line number Diff line number Diff line Loading @@ -135,6 +135,10 @@ class MainWindow(mainwindow_cls): self.leftBar.save_proj.connect(self.save_proj) self.leftBar.export_doc.connect(self.on_export_doc) self.leftBar.import_doc.connect(self.on_import_doc) self.leftBar.export_src_txt.connect(lambda : self.on_export_txt(dump_target='source')) self.leftBar.export_trans_txt.connect(lambda : self.on_export_txt(dump_target='translation')) self.leftBar.export_src_md.connect(lambda : self.on_export_txt(dump_target='source', suffix='.md')) self.leftBar.export_trans_md.connect(lambda : self.on_export_txt(dump_target='translation', suffix='.md')) self.pageList = PageListView() self.pageList.reveal_file.connect(self.on_reveal_file) Loading Loading @@ -1166,6 +1170,15 @@ class MainWindow(mainwindow_cls): def on_import_doc(self): self.import_doc_thread.importDoc(self.imgtrans_proj) def on_export_txt(self, dump_target, suffix='.txt'): try: self.imgtrans_proj.dump_txt(dump_target=dump_target, suffix=suffix) msg = QMessageBox() msg.setText(self.tr('Text file exported to ') + self.imgtrans_proj.dump_txt_path(dump_target, suffix)) msg.exec_() except Exception as e: create_error_dialog(e, self.tr('failed to export as TEXT file')) def on_reveal_file(self): current_img_path = self.imgtrans_proj.current_img_path() if sys.platform == 'win32': Loading
ui/mainwindowbars.py +18 −8 Original line number Diff line number Diff line Loading @@ -107,9 +107,6 @@ class LeftBar(Widget): open_json_proj = Signal(str) save_proj = Signal() save_config = Signal() run_imgtrans = Signal() export_doc = Signal() import_doc = Signal() def __init__(self, mainwindow, *args, **kwargs) -> None: super().__init__(mainwindow, *args, **kwargs) self.mainwindow: QMainWindow = mainwindow Loading Loading @@ -143,9 +140,19 @@ class LeftBar(Widget): actionSaveProj.setShortcut(QKeySequence.StandardKey.Save) actionExportAsDoc = QAction(self.tr("Export as Doc"), self) actionExportAsDoc.triggered.connect(self.export_doc) self.export_doc = actionExportAsDoc.triggered actionImportFromDoc = QAction(self.tr("Import from Doc"), self) actionImportFromDoc.triggered.connect(self.import_doc) self.import_doc = actionImportFromDoc.triggered actionExportSrcTxt = QAction(self.tr("Export soure text as TXT"), self) self.export_src_txt = actionExportSrcTxt.triggered actionExportTranslationTxt = QAction(self.tr("Export translation as TXT"), self) self.export_trans_txt = actionExportTranslationTxt.triggered actionExportSrcMD = QAction(self.tr("Export soure text as markdown"), self) self.export_src_md = actionExportSrcMD.triggered actionExportTranslationMD = QAction(self.tr("Export translation as markdown"), self) self.export_trans_md = actionExportTranslationMD.triggered self.recentMenu = QMenu(self.tr("Open Recent"), self) Loading @@ -156,7 +163,11 @@ class LeftBar(Widget): openMenu.addActions([ actionSaveProj, actionExportAsDoc, actionImportFromDoc actionImportFromDoc, actionExportSrcTxt, actionExportTranslationTxt, actionExportSrcMD, actionExportTranslationMD, ]) self.openBtn = OpenBtn() self.openBtn.setFixedSize(LEFTBTN_WIDTH, LEFTBTN_WIDTH) Loading @@ -170,8 +181,7 @@ class LeftBar(Widget): self.runImgtransBtn = QPushButton() self.runImgtransBtn.setText('RUN') self.runImgtransBtn.setFixedSize(LEFTBTN_WIDTH, LEFTBTN_WIDTH) self.runImgtransBtn.clicked.connect(self.run_imgtrans) self.run_imgtrans = self.runImgtransBtn.clicked self.runImgtransBtn.setFixedSize(LEFTBTN_WIDTH, LEFTBTN_WIDTH) vlayout = QVBoxLayout(self) Loading