Loading ui/drawingpanel.py +25 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ from .canvas import Canvas from .misc import ndarray2pixmap from utils.config import DrawPanelConfig, pcfg from utils.shared import CONFIG_COMBOBOX_SHORT, CONFIG_COMBOBOX_HEIGHT from utils.logger import logger as LOGGER from .drawing_commands import InpaintUndoCommand, StrokeItemUndoCommand INPAINT_BRUSH_COLOR = QColor(127, 0, 127, 127) Loading Loading @@ -304,7 +305,7 @@ class DrawingPanel(Widget): self.rectTool = DrawToolCheckBox() self.rectTool.setObjectName("DrawRectTool") self.rectTool.checked.connect(self.on_use_rect_tool) self.rectTool.checked.connect(self.on_use_recttool) self.rectTool.stateChanged.connect(self.on_rectchecker_changed) self.rectPanel = RectPanel(inpainter_panel) self.rectPanel.inpaint_btn_clicked.connect(self.on_rect_inpaintbtn_clicked) Loading Loading @@ -354,6 +355,28 @@ class DrawingPanel(Widget): layout.addLayout(masklayout) layout.setAlignment(Qt.AlignmentFlag.AlignTop) def setCurrentToolByName(self, tool_name: str): try: set_method = f'on_use_{tool_name}tool' set_method = getattr(self, set_method) set_method() if self.currentTool is not None: self.currentTool.setChecked(True) except: LOGGER.error(f'{set_method} not found in drawing panel') def shortcutSetCurrentToolByName(self, tool_name: str): if self.isVisible(): self.setCurrentToolByName(tool_name) def setShortcutTip(self, tool_name: str, shortcut: str): try: tool = f'{tool_name}Tool' tool: QStackedWidget = getattr(self, tool) tool.setToolTip(f'{shortcut}') except: LOGGER.error(f'{tool} not found in drawing panel') def initDLModule(self, module_manager: ModuleManager): self.module_manager = module_manager module_manager.canvas_inpaint_finished.connect(self.on_inpaint_finished) Loading Loading @@ -420,7 +443,7 @@ class DrawingPanel(Widget): self.canvas.gv.setDragMode(QGraphicsView.DragMode.NoDrag) self.setPenCursor() def on_use_rect_tool(self) -> None: def on_use_recttool(self) -> None: if self.currentTool is not None and self.currentTool != self.rectTool: self.currentTool.setChecked(False) self.currentTool = self.rectTool Loading ui/mainwindow.py +7 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ import os, re, traceback, sys from typing import List from pathlib import Path import subprocess from functools import partial from qtpy.QtWidgets import QFileDialog, QMenu, QHBoxLayout, QVBoxLayout, QApplication, QStackedWidget, QSplitter, QListWidget, QShortcut, QListWidgetItem, QMessageBox, QTextEdit, QPlainTextEdit from qtpy.QtCore import Qt, QPoint, QSize, QEvent, Signal Loading Loading @@ -498,6 +499,12 @@ class MainWindow(FramelessWindow): shortcutDelete = QShortcut(QKeySequence.StandardKey.Delete, self) shortcutDelete.activated.connect(self.shortcutDelete) drawpanel_shortcuts = {'hand': 'H', 'rect': 'R', 'inpaint': 'J', 'pen': 'B'} for tool_name, shortcut_key in drawpanel_shortcuts.items(): shortcut = QShortcut(QKeySequence(shortcut_key), self) shortcut.activated.connect(partial(self.drawingPanel.shortcutSetCurrentToolByName, tool_name)) self.drawingPanel.setShortcutTip(tool_name, shortcut_key) def shortcutNext(self): if self.centralStackWidget.currentIndex() == 0: index = self.pageList.currentIndex() Loading Loading
ui/drawingpanel.py +25 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ from .canvas import Canvas from .misc import ndarray2pixmap from utils.config import DrawPanelConfig, pcfg from utils.shared import CONFIG_COMBOBOX_SHORT, CONFIG_COMBOBOX_HEIGHT from utils.logger import logger as LOGGER from .drawing_commands import InpaintUndoCommand, StrokeItemUndoCommand INPAINT_BRUSH_COLOR = QColor(127, 0, 127, 127) Loading Loading @@ -304,7 +305,7 @@ class DrawingPanel(Widget): self.rectTool = DrawToolCheckBox() self.rectTool.setObjectName("DrawRectTool") self.rectTool.checked.connect(self.on_use_rect_tool) self.rectTool.checked.connect(self.on_use_recttool) self.rectTool.stateChanged.connect(self.on_rectchecker_changed) self.rectPanel = RectPanel(inpainter_panel) self.rectPanel.inpaint_btn_clicked.connect(self.on_rect_inpaintbtn_clicked) Loading Loading @@ -354,6 +355,28 @@ class DrawingPanel(Widget): layout.addLayout(masklayout) layout.setAlignment(Qt.AlignmentFlag.AlignTop) def setCurrentToolByName(self, tool_name: str): try: set_method = f'on_use_{tool_name}tool' set_method = getattr(self, set_method) set_method() if self.currentTool is not None: self.currentTool.setChecked(True) except: LOGGER.error(f'{set_method} not found in drawing panel') def shortcutSetCurrentToolByName(self, tool_name: str): if self.isVisible(): self.setCurrentToolByName(tool_name) def setShortcutTip(self, tool_name: str, shortcut: str): try: tool = f'{tool_name}Tool' tool: QStackedWidget = getattr(self, tool) tool.setToolTip(f'{shortcut}') except: LOGGER.error(f'{tool} not found in drawing panel') def initDLModule(self, module_manager: ModuleManager): self.module_manager = module_manager module_manager.canvas_inpaint_finished.connect(self.on_inpaint_finished) Loading Loading @@ -420,7 +443,7 @@ class DrawingPanel(Widget): self.canvas.gv.setDragMode(QGraphicsView.DragMode.NoDrag) self.setPenCursor() def on_use_rect_tool(self) -> None: def on_use_recttool(self) -> None: if self.currentTool is not None and self.currentTool != self.rectTool: self.currentTool.setChecked(False) self.currentTool = self.rectTool Loading
ui/mainwindow.py +7 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ import os, re, traceback, sys from typing import List from pathlib import Path import subprocess from functools import partial from qtpy.QtWidgets import QFileDialog, QMenu, QHBoxLayout, QVBoxLayout, QApplication, QStackedWidget, QSplitter, QListWidget, QShortcut, QListWidgetItem, QMessageBox, QTextEdit, QPlainTextEdit from qtpy.QtCore import Qt, QPoint, QSize, QEvent, Signal Loading Loading @@ -498,6 +499,12 @@ class MainWindow(FramelessWindow): shortcutDelete = QShortcut(QKeySequence.StandardKey.Delete, self) shortcutDelete.activated.connect(self.shortcutDelete) drawpanel_shortcuts = {'hand': 'H', 'rect': 'R', 'inpaint': 'J', 'pen': 'B'} for tool_name, shortcut_key in drawpanel_shortcuts.items(): shortcut = QShortcut(QKeySequence(shortcut_key), self) shortcut.activated.connect(partial(self.drawingPanel.shortcutSetCurrentToolByName, tool_name)) self.drawingPanel.setShortcutTip(tool_name, shortcut_key) def shortcutNext(self): if self.centralStackWidget.currentIndex() == 0: index = self.pageList.currentIndex() Loading