Commit 039a3d04 authored by dmMaze's avatar dmMaze
Browse files

fix #308

parent 08d8665c
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -737,6 +737,7 @@ class Canvas(QGraphicsScene):
            ocr_act = menu.addAction(self.tr("OCR"))
            ocr_translate_act = menu.addAction(self.tr("OCR and translate"))
            ocr_translate_inpaint_act = menu.addAction(self.tr("OCR, translate and inpaint"))
            inpaint_act = menu.addAction(self.tr("inpaint"))

            rst = menu.exec(pos)
            
@@ -766,6 +767,8 @@ class Canvas(QGraphicsScene):
                self.run_blktrans.emit(1)
            elif rst == ocr_translate_inpaint_act:
                self.run_blktrans.emit(2)
            elif rst == inpaint_act:
                self.run_blktrans.emit(3)

    @property
    def have_selected_blkitem(self):
+40 −20
Original line number Diff line number Diff line
@@ -73,15 +73,25 @@ class InpaintUndoCommand(QUndoCommand):
        self.canvas.updateLayers()


class EmptyCommand(QUndoCommand):
    def __init__(self, parent=None):
        super().__init__(parent=parent)
    

class RunBlkTransCommand(QUndoCommand):
    def __init__(self, canvas: Canvas, blkitems: List[TextBlkItem], transpairw_list: List[TransPairWidget],  mode: int):
        super().__init__()

        self.empty_command = None
        if mode > 1:
            self.empty_command = EmptyCommand()
            canvas.draw_undo_stack.push(self.empty_command)

        self.op_counter = -1
        self.blkitems = blkitems
        self.transpairw_list = transpairw_list

        if mode < 3:
            for blkitem, transpairw in zip(self.blkitems, self.transpairw_list):
                if mode != 0:
                    trs = blkitem.blk.translation
@@ -123,6 +133,10 @@ class RunBlkTransCommand(QUndoCommand):
                    self.num_inpainted += 1

    def redo(self) -> None:

        if self.empty_command is not None:
            self.empty_command.redo()

        if self.mode > 1 and self.num_inpainted > 0:
            img_array = self.canvas.imgtrans_proj.inpainted_array
            mask_array = self.canvas.imgtrans_proj.mask_array
@@ -139,6 +153,7 @@ class RunBlkTransCommand(QUndoCommand):
            self.op_counter += 1
            return

        if self.mode < 3:
            for blkitem, transpairw in zip(self.blkitems, self.transpairw_list):
                if self.mode != 0:
                    transpairw.e_trans.redo()
@@ -147,6 +162,10 @@ class RunBlkTransCommand(QUndoCommand):
                    transpairw.e_source.redo()

    def undo(self) -> None:

        if self.empty_command is not None:
            self.empty_command.undo()

        if self.mode > 1 and self.num_inpainted > 0:
            img_array = self.canvas.imgtrans_proj.inpainted_array
            mask_array = self.canvas.imgtrans_proj.mask_array
@@ -159,6 +178,7 @@ class RunBlkTransCommand(QUndoCommand):
                mask_view[:] = undo_mask
            self.canvas.updateLayers()

        if self.mode < 3:
            for blkitem, transpairw in zip(self.blkitems, self.transpairw_list):
                if self.mode != 0:
                    transpairw.e_trans.undo()
+5 −5
Original line number Diff line number Diff line
@@ -305,10 +305,10 @@ class ImgtransThread(QThread):
        self.start()

    def _blktrans_pipeline(self, blk_list: List[TextBlock], tgt_img: np.ndarray, mode: int, blk_ids: List[int]):
        if mode >= 0:
        if mode >= 0 and mode < 3:
            self.ocr_thread.module.run_ocr(tgt_img, blk_list)
            self.finish_blktrans.emit(mode, blk_ids)
        if mode != 0:
        if mode != 0 and mode < 3:
            self.translate_thread.module.translate_textblk_lst(blk_list)
            self.finish_blktrans.emit(mode, blk_ids)
        if mode > 1:
@@ -669,11 +669,11 @@ class ModuleManager(QObject):
    def runBlktransPipeline(self, blk_list: List[TextBlock], tgt_img: np.ndarray, mode: int, blk_ids: List[int]):
        self.terminateRunningThread()
        self.progress_msgbox.hide_all_bars()
        if mode >= 0:
        if mode >= 0 and mode < 3:
            self.progress_msgbox.ocr_bar.show()
        if mode == 2:
        if mode >= 2:
            self.progress_msgbox.inpaint_bar.show()
        if mode != 0:
        if mode != 0 and mode < 3:
            self.progress_msgbox.translate_bar.show()
        self.progress_msgbox.zero_progress()
        self.progress_msgbox.show()
+1 −1
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@ class CreateItemCommand(QUndoCommand):

class EmptyCommand(QUndoCommand):
    def __init__(self, parent=None):
        pass
        super().__init__(parent=parent)


class DeleteBlkItemsCommand(QUndoCommand):