Loading ui/canvas.py +3 −0 Original line number Diff line number Diff line Loading @@ -189,6 +189,7 @@ class Canvas(QGraphicsScene): drop_open_folder = Signal(str) context_menu_requested = Signal(QPoint, bool) incanvas_selection_changed = Signal() def __init__(self, parent=None): super().__init__(parent) Loading Loading @@ -421,6 +422,8 @@ class Canvas(QGraphicsScene): blk_item = self.txtblkShapeControl.blk_item if blk_item is not None and blk_item.isEditing(): blk_item.endEdit() if self.hasFocus(): self.incanvas_selection_changed.emit() def keyPressEvent(self, event: QKeyEvent) -> None: key = event.key() Loading ui/scenetext_manager.py +18 −6 Original line number Diff line number Diff line Loading @@ -307,10 +307,11 @@ class SceneTextManager(QObject): self.canvas.format_textblks.connect(self.onFormatTextblks) self.canvas.layout_textblks.connect(self.onAutoLayoutTextblks) self.canvas.reset_angle.connect(self.onResetAngle) self.canvas.incanvas_selection_changed.connect(self.on_incanvas_selection_changed) self.txtblkShapeControl = canvas.txtblkShapeControl self.textpanel = textpanel self.textEditList = textpanel.textEditList self.textEditList.focus_out.connect(self.on_textedit_focusout) self.textEditList.focus_out.connect(self.on_textedit_list_focusout) self.textEditList.textpanel_contextmenu_requested.connect(canvas.on_create_contextmenu) self.textEditList.selection_changed.connect(self.on_transwidget_selection_changed) self.textEditList.rearrange_blks.connect(self.on_rearrange_blks) Loading Loading @@ -384,6 +385,7 @@ class SceneTextManager(QObject): self.pairwidget_list.append(pair_widget) self.textEditList.addPairWidget(pair_widget) pair_widget.e_source.setPlainText(blk_item.blk.get_text()) pair_widget.e_source.focus_in.connect(self.onTransWidgetHoverEnter) pair_widget.e_source.ensure_scene_visible.connect(self.on_ensure_textitem_svisible) pair_widget.e_source.push_undo_stack.connect(self.on_push_edit_stack) pair_widget.e_source.redo_signal.connect(self.on_textedit_redo) Loading Loading @@ -488,10 +490,12 @@ class SceneTextManager(QObject): self.hovering_transwidget.setHoverEffect(False) self.hovering_transwidget = edit if edit is not None: pw = self.pairwidget_list[edit.idx] h = pw.height() if C.USE_PYSIDE6: self.textEditList.ensureWidgetVisible(edit, ymargin=edit.geometry().height()) self.textEditList.ensureWidgetVisible(pw, ymargin=h) else: self.textEditList.ensureWidgetVisible(edit, yMargin=edit.geometry().height()) self.textEditList.ensureWidgetVisible(pw, yMargin=h) edit.setHoverEffect(True) def onLeftbuttonPressed(self, blk_id: int): Loading Loading @@ -628,6 +632,13 @@ class SceneTextManager(QObject): if len(selected_blks) > 0: self.canvas.push_undo_command(ResetAngleCommand(selected_blks, self.txtblkShapeControl)) def on_incanvas_selection_changed(self): if self.canvas.textEditMode(): self.textEditList.clearDrag() self.textEditList.clearAllSelected(emit_signal=False) textitems = self.canvas.selected_text_items() self.textEditList.set_selected_list([t.idx for t in textitems]) def layout_textblk(self, blkitem: TextBlkItem, text: str = None, mask: np.ndarray = None, bounding_rect: List = None, region_rect: List = None): old_br = blkitem.absBoundingRect() img = self.imgtrans_proj.img_array Loading Loading @@ -932,15 +943,16 @@ class SceneTextManager(QObject): for idx in selset: self.textblk_item_list[idx].setSelected(True) def on_textedit_focusout(self): def on_textedit_list_focusout(self): fw = self.app.focusWidget() if fw == self.canvas.gv or isinstance(fw, (SourceTextEdit, TransTextEdit)): focusing_edit = isinstance(fw, (SourceTextEdit, TransTextEdit)) if fw == self.canvas.gv or focusing_edit: self.textEditList.clearDrag() if focusing_edit: self.textEditList.clearAllSelected() def on_rearrange_blks(self, mv_map: Tuple[np.ndarray]): self.canvas.push_undo_command(RearrangeBlksCommand(mv_map, self)) pass def on_apply_effect(self): format = self.formatpanel.active_format Loading ui/stylewidgets.py +1 −1 Original line number Diff line number Diff line Loading @@ -295,7 +295,7 @@ class PaintQSlider(QSlider): painter.setPen(QColor(*C.SLIDERHANDLE_COLOR,255)) font = painter.font() font.setPointSize(8) font.setPointSizeF(10) fm = QFontMetrics(font) painter.setFont(font) Loading ui/textedit_area.py +20 −5 Original line number Diff line number Diff line Loading @@ -324,16 +324,17 @@ class TransPairWidget(Widget): vlayout.addWidget(self.e_source) vlayout.addWidget(self.e_trans) vlayout.addWidget(SeparatorWidget(self)) vlayout.setSpacing(5) spacing = 7 vlayout.setSpacing(spacing) self.setCursor(Qt.CursorShape.PointingHandCursor) self.setContentsMargins(0, 0, 0, 0) vlayout.setContentsMargins(0, 5, 5, 5) vlayout.setContentsMargins(0, spacing, spacing, spacing) hlayout = QHBoxLayout(self) hlayout.addWidget(self.idx_label) hlayout.addLayout(vlayout) hlayout.setContentsMargins(0, 0, 0, 0) hlayout.setSpacing(5) hlayout.setSpacing(spacing) self.setAcceptDrops(True) Loading Loading @@ -582,13 +583,27 @@ class TextEditListScrollArea(QScrollArea): self.sel_anchor_widget = self.checked_list[0] if check_changed: self.selection_changed.emit() if pwc.checked: pwc.e_trans.focus_in.emit(pwc.idx) def set_selected_list(self, selection_indices: List): self.clearAllSelected(emit_signal=False) self.clearDrag() for idx in selection_indices: pw = self.pairwidget_list[idx] pw._set_checked_state(True) self.checked_list.append(pw) if idx == 0: self.sel_anchor_widget = pw def clearAllSelected(self): def clearAllSelected(self, emit_signal=True): self.sel_anchor_widget = None if len(self.checked_list) > 0: for w in self.checked_list: w._set_checked_state(False) self.checked_list.clear() if emit_signal: self.selection_changed.emit() def removeWidget(self, widget: TransPairWidget, remove_checked: bool = True): Loading Loading
ui/canvas.py +3 −0 Original line number Diff line number Diff line Loading @@ -189,6 +189,7 @@ class Canvas(QGraphicsScene): drop_open_folder = Signal(str) context_menu_requested = Signal(QPoint, bool) incanvas_selection_changed = Signal() def __init__(self, parent=None): super().__init__(parent) Loading Loading @@ -421,6 +422,8 @@ class Canvas(QGraphicsScene): blk_item = self.txtblkShapeControl.blk_item if blk_item is not None and blk_item.isEditing(): blk_item.endEdit() if self.hasFocus(): self.incanvas_selection_changed.emit() def keyPressEvent(self, event: QKeyEvent) -> None: key = event.key() Loading
ui/scenetext_manager.py +18 −6 Original line number Diff line number Diff line Loading @@ -307,10 +307,11 @@ class SceneTextManager(QObject): self.canvas.format_textblks.connect(self.onFormatTextblks) self.canvas.layout_textblks.connect(self.onAutoLayoutTextblks) self.canvas.reset_angle.connect(self.onResetAngle) self.canvas.incanvas_selection_changed.connect(self.on_incanvas_selection_changed) self.txtblkShapeControl = canvas.txtblkShapeControl self.textpanel = textpanel self.textEditList = textpanel.textEditList self.textEditList.focus_out.connect(self.on_textedit_focusout) self.textEditList.focus_out.connect(self.on_textedit_list_focusout) self.textEditList.textpanel_contextmenu_requested.connect(canvas.on_create_contextmenu) self.textEditList.selection_changed.connect(self.on_transwidget_selection_changed) self.textEditList.rearrange_blks.connect(self.on_rearrange_blks) Loading Loading @@ -384,6 +385,7 @@ class SceneTextManager(QObject): self.pairwidget_list.append(pair_widget) self.textEditList.addPairWidget(pair_widget) pair_widget.e_source.setPlainText(blk_item.blk.get_text()) pair_widget.e_source.focus_in.connect(self.onTransWidgetHoverEnter) pair_widget.e_source.ensure_scene_visible.connect(self.on_ensure_textitem_svisible) pair_widget.e_source.push_undo_stack.connect(self.on_push_edit_stack) pair_widget.e_source.redo_signal.connect(self.on_textedit_redo) Loading Loading @@ -488,10 +490,12 @@ class SceneTextManager(QObject): self.hovering_transwidget.setHoverEffect(False) self.hovering_transwidget = edit if edit is not None: pw = self.pairwidget_list[edit.idx] h = pw.height() if C.USE_PYSIDE6: self.textEditList.ensureWidgetVisible(edit, ymargin=edit.geometry().height()) self.textEditList.ensureWidgetVisible(pw, ymargin=h) else: self.textEditList.ensureWidgetVisible(edit, yMargin=edit.geometry().height()) self.textEditList.ensureWidgetVisible(pw, yMargin=h) edit.setHoverEffect(True) def onLeftbuttonPressed(self, blk_id: int): Loading Loading @@ -628,6 +632,13 @@ class SceneTextManager(QObject): if len(selected_blks) > 0: self.canvas.push_undo_command(ResetAngleCommand(selected_blks, self.txtblkShapeControl)) def on_incanvas_selection_changed(self): if self.canvas.textEditMode(): self.textEditList.clearDrag() self.textEditList.clearAllSelected(emit_signal=False) textitems = self.canvas.selected_text_items() self.textEditList.set_selected_list([t.idx for t in textitems]) def layout_textblk(self, blkitem: TextBlkItem, text: str = None, mask: np.ndarray = None, bounding_rect: List = None, region_rect: List = None): old_br = blkitem.absBoundingRect() img = self.imgtrans_proj.img_array Loading Loading @@ -932,15 +943,16 @@ class SceneTextManager(QObject): for idx in selset: self.textblk_item_list[idx].setSelected(True) def on_textedit_focusout(self): def on_textedit_list_focusout(self): fw = self.app.focusWidget() if fw == self.canvas.gv or isinstance(fw, (SourceTextEdit, TransTextEdit)): focusing_edit = isinstance(fw, (SourceTextEdit, TransTextEdit)) if fw == self.canvas.gv or focusing_edit: self.textEditList.clearDrag() if focusing_edit: self.textEditList.clearAllSelected() def on_rearrange_blks(self, mv_map: Tuple[np.ndarray]): self.canvas.push_undo_command(RearrangeBlksCommand(mv_map, self)) pass def on_apply_effect(self): format = self.formatpanel.active_format Loading
ui/stylewidgets.py +1 −1 Original line number Diff line number Diff line Loading @@ -295,7 +295,7 @@ class PaintQSlider(QSlider): painter.setPen(QColor(*C.SLIDERHANDLE_COLOR,255)) font = painter.font() font.setPointSize(8) font.setPointSizeF(10) fm = QFontMetrics(font) painter.setFont(font) Loading
ui/textedit_area.py +20 −5 Original line number Diff line number Diff line Loading @@ -324,16 +324,17 @@ class TransPairWidget(Widget): vlayout.addWidget(self.e_source) vlayout.addWidget(self.e_trans) vlayout.addWidget(SeparatorWidget(self)) vlayout.setSpacing(5) spacing = 7 vlayout.setSpacing(spacing) self.setCursor(Qt.CursorShape.PointingHandCursor) self.setContentsMargins(0, 0, 0, 0) vlayout.setContentsMargins(0, 5, 5, 5) vlayout.setContentsMargins(0, spacing, spacing, spacing) hlayout = QHBoxLayout(self) hlayout.addWidget(self.idx_label) hlayout.addLayout(vlayout) hlayout.setContentsMargins(0, 0, 0, 0) hlayout.setSpacing(5) hlayout.setSpacing(spacing) self.setAcceptDrops(True) Loading Loading @@ -582,13 +583,27 @@ class TextEditListScrollArea(QScrollArea): self.sel_anchor_widget = self.checked_list[0] if check_changed: self.selection_changed.emit() if pwc.checked: pwc.e_trans.focus_in.emit(pwc.idx) def set_selected_list(self, selection_indices: List): self.clearAllSelected(emit_signal=False) self.clearDrag() for idx in selection_indices: pw = self.pairwidget_list[idx] pw._set_checked_state(True) self.checked_list.append(pw) if idx == 0: self.sel_anchor_widget = pw def clearAllSelected(self): def clearAllSelected(self, emit_signal=True): self.sel_anchor_widget = None if len(self.checked_list) > 0: for w in self.checked_list: w._set_checked_state(False) self.checked_list.clear() if emit_signal: self.selection_changed.emit() def removeWidget(self, widget: TransPairWidget, remove_checked: bool = True): Loading