Loading config/stylesheet.css +19 −3 Original line number Diff line number Diff line Loading @@ -757,6 +757,10 @@ DrawToolCheckBox::indicator { padding: 10px; } DrawToolCheckBox::indicator:checked { background-color: rgba(30, 147, 229, 80); } DrawToolCheckBox#DrawHandTool::indicator { image: url(icons/drawingtools_hand.svg); Loading @@ -767,7 +771,7 @@ DrawToolCheckBox#DrawHandTool::indicator:hover { } DrawToolCheckBox#DrawHandTool::indicator:checked { background-color: rgba(30, 147, 229, 80); image: url(icons/drawingtools_hand.svg); } Loading @@ -780,7 +784,6 @@ DrawToolCheckBox#DrawInpaintTool::indicator:hover { } DrawToolCheckBox#DrawInpaintTool::indicator:checked { background-color: rgba(30, 147, 229, 80); image: url(icons/drawingtools_inpaint.svg); } Loading @@ -793,7 +796,20 @@ DrawToolCheckBox#DrawPenTool::indicator:hover { } DrawToolCheckBox#DrawPenTool::indicator:checked { background-color: rgba(30, 147, 229, 80); image: url(icons/drawingtools_pen.svg); } DrawToolCheckBox#DrawRectTool::indicator { image: url(icons/bottombar_textblock_activate.svg); } DrawToolCheckBox#DrawRectTool::indicator:hover { image: url(icons/bottombar_textblock.svg); } DrawToolCheckBox#DrawRectTool::indicator:checked { image: url(icons/bottombar_textblock_activate.svg); } ui/constants.py +2 −0 Original line number Diff line number Diff line Loading @@ -35,3 +35,5 @@ DRAG_DIR_HOR = 0 DRAG_DIR_VER = 1 DRAG_DIR_FDIAG = 2 DRAG_DIR_BDIAG = 3 DRAWPANEL_WIDTH = 500 ui/drawingpanel.py +12 −7 Original line number Diff line number Diff line Loading @@ -33,7 +33,6 @@ class DrawToolCheckBox(QCheckBox): if self.isChecked(): self.checked.emit() class ToolNameLabel(QLabel): def __init__(self, fix_width=None, *args, **kwargs) -> None: super().__init__(*args, **kwargs) Loading @@ -50,8 +49,6 @@ class ToolNameLabel(QLabel): self.setFont(font) class InpaintPanel(Widget): thicknessChanged = pyqtSignal(int) Loading Loading @@ -83,11 +80,14 @@ class InpaintPanel(Widget): self.thicknessChanged.emit(self.thicknessSlider.value()) def showEvent(self, e) -> None: self.inpainter_panel.needInpaintChecker.setVisible(False) self.vlayout.addWidget(self.inpainter_panel) return super().showEvent(e) super().showEvent(e) def hideEvent(self, e) -> None: self.vlayout.removeWidget(self.inpainter_panel) self.inpainter_panel.needInpaintChecker.setVisible(True) return super().hideEvent(e) Loading Loading @@ -174,6 +174,10 @@ class DrawingPanel(Widget): self.inpaintConfigPanel = InpaintPanel(inpainter_panel) self.inpaintConfigPanel.thicknessChanged.connect(self.setInpaintToolWidth) self.rectTool = DrawToolCheckBox() self.rectTool.setObjectName("DrawRectTool") self.rectTool.checked.connect(self.on_use_rectremoval_tool) self.penTool = DrawToolCheckBox() self.penTool.setObjectName("DrawPenTool") self.penTool.checked.connect(self.on_use_pentool) Loading @@ -186,6 +190,7 @@ class DrawingPanel(Widget): toolboxlayout.addWidget(self.handTool) toolboxlayout.addWidget(self.inpaintTool) toolboxlayout.addWidget(self.penTool) toolboxlayout.addWidget(self.rectTool) self.canvas.painting_pen = self.pentool_pen = \ QPen(Qt.GlobalColor.black, 1, Qt.PenStyle.SolidLine, Qt.PenCapStyle.RoundCap, Qt.PenJoinStyle.RoundJoin) Loading Loading @@ -219,7 +224,6 @@ class DrawingPanel(Widget): dl_manager.canvas_inpaint_finished.connect(self.on_inpaint_finished) dl_manager.inpaint_thread.exception_occurred.connect(self.on_inpaint_failed) def setInpaintToolWidth(self, width): self.inpaint_pen.setWidth(width) if self.isVisible(): Loading Loading @@ -272,6 +276,9 @@ class DrawingPanel(Widget): self.setPenCursor() self.canvas.painting = True def on_use_rectremoval_tool(self) -> None: print('use rect removal tool') def get_config(self) -> DrawPanelConfig: config = DrawPanelConfig() pc = self.pentool_pen.color() Loading Loading @@ -401,8 +408,6 @@ class DrawingPanel(Widget): self.inpaint_stroke.addStroke(inpaint_stroke.stroke) self.canvas.removeItem(inpaint_stroke) def runInpaint(self): if self.inpaint_stroke is None: Loading ui/imgtranspanel.py +4 −2 Original line number Diff line number Diff line from PyQt5.QtWidgets import QHBoxLayout, QLabel, QTextEdit, QScrollArea, QGraphicsDropShadowEffect, QVBoxLayout, QFrame, QFontComboBox, QColorDialog, QComboBox, QApplication, QPushButton, QRadioButton, QCheckBox from PyQt5.QtWidgets import QSizePolicy, QLabel, QTextEdit, QScrollArea, QGraphicsDropShadowEffect, QVBoxLayout, QFrame, QFontComboBox, QColorDialog, QComboBox, QApplication, QPushButton, QRadioButton, QCheckBox from PyQt5.QtCore import pyqtSignal, Qt, QSize, QEvent, QObject from PyQt5.QtGui import QColor, QFocusEvent, QIntValidator, QMouseEvent, QFont, QTextCursor from .stylewidgets import Widget, SeparatorWidget, PaintQSlider Loading Loading @@ -104,6 +104,7 @@ class TextEditListScrollArea(QScrollArea): self.setWidgetResizable(True) self.vlayout = vlayout def addPairWidget(self, pairwidget): self.vlayout.addWidget(pairwidget) Loading @@ -126,3 +127,4 @@ class TextPanel(Widget): layout.setContentsMargins(10, 0, 10, 0) layout.setSpacing(20) layout.setAlignment(Qt.AlignCenter) ui/mainwindow.py +17 −50 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ import json from PyQt5.QtWidgets import QMainWindow, QHBoxLayout, QVBoxLayout, QApplication, QStackedWidget, QWidget, QSizePolicy, QComboBox, QListView, QToolBar, QMenu, QSpacerItem, QPushButton, QAction, QCheckBox, QToolButton, QSplitter, QListWidget, QShortcut, QListWidgetItem from PyQt5.QtCore import Qt, pyqtSignal, QPoint, QSize, QThread from PyQt5.QtGui import QGuiApplication, QIcon, QCloseEvent, QKeySequence, QImage, QPainter, QFont from PyQt5.QtGui import QGuiApplication, QIcon, QCloseEvent, QKeySequence, QImage, QPainter, QMouseEvent from .misc import ProjImgTrans from .canvas import Canvas Loading @@ -16,10 +16,9 @@ from .scenetext_manager import SceneTextManager from .mainwindowbars import TitleBar, LeftBar, RightBar, BottomBar from .io_thread import ImgSaveThread from .stylewidgets import FrameLessMessageBox from .constants import STYLESHEET_PATH, CONFIG_PATH, DPI, LDPI, LANG_SUPPORT_VERTICAL from .constants import STYLESHEET_PATH, CONFIG_PATH, DPI, LDPI, LANG_SUPPORT_VERTICAL, DRAWPANEL_WIDTH from . import constants class PageListView(QListWidget): def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) Loading @@ -27,22 +26,6 @@ class PageListView(QListWidget): self.setIconSize(QSize(70, 70)) class StackWidget(QStackedWidget): def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) self.currentChanged.connect(self.onCurrentChanged) self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) def addWidget(self, w: QWidget) -> int: super().addWidget(w) self.adjustSize() def onCurrentChanged(self, index: int) -> None: self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.adjustSize() class MainWindow(QMainWindow): proj_directory = None Loading Loading @@ -73,14 +56,16 @@ class MainWindow(QMainWindow): if osp.exists(proj_dir): self.openDir(proj_dir) # qt's layout management just can't do it right self.comicTransSplitter.setStretchFactor(2, 0.3) self.bottomBar.texteditChecker.click() self.bottomBar.paintChecker.click() if self.config.imgtrans_textedit: self.bottomBar.texteditChecker.click() if self.config.imgtrans_textblock: self.bottomBar.textblockChecker.click() elif not self.config.imgtrans_paintmode: self.bottomBar.paintChecker.click() self.comicTransSplitter.setStretchFactor(2, 0.5) self.comicTransSplitter.setStretchFactor(1, 10) w = QGuiApplication.primaryScreen().geometry().width() rw = self.rightComicTransStackPanel.sizeHint().width() pw = int((w - rw) / 4) gvw = pw * 3 self.comicTransSplitter.setSizes([pw, gvw, rw]) def setupUi(self): screen_size = QApplication.desktop().screenGeometry().size() Loading Loading @@ -111,7 +96,6 @@ class MainWindow(QMainWindow): mainHLayout = QHBoxLayout() mainHLayout.addWidget(self.leftBar) # mainHLayout.addWidget(self.pageList) mainHLayout.addWidget(self.centralStackWidget) mainHLayout.addWidget(self.rightBar) mainHLayout.setContentsMargins(0, 0, 0, 0) Loading @@ -132,7 +116,7 @@ class MainWindow(QMainWindow): self.st_manager = SceneTextManager(self.app, self.canvas, self.textPanel) # comic trans pannel self.rightComicTransStackPanel = StackWidget(self) self.rightComicTransStackPanel = QStackedWidget(self) self.rightComicTransStackPanel.addWidget(self.drawingPanel) self.rightComicTransStackPanel.addWidget(self.textPanel) Loading @@ -140,8 +124,6 @@ class MainWindow(QMainWindow): self.comicTransSplitter.addWidget(self.pageList) self.comicTransSplitter.addWidget(self.canvas.gv) self.comicTransSplitter.addWidget(self.rightComicTransStackPanel) # self.comicTransSplitter.setStretchFactor(1, 10) # self.comicTransSplitter.setStretchFactor(2, 1) self.centralStackWidget.addWidget(self.comicTransSplitter) self.centralStackWidget.addWidget(self.configPanel) Loading Loading @@ -174,22 +156,7 @@ class MainWindow(QMainWindow): self.leftBar.imgTransChecker.setChecked(True) self.st_manager.formatpanel.global_format = self.config.global_fontformat self.st_manager.formatpanel.set_active_format(self.config.global_fontformat) if self.config.imgtrans_paintmode: self.bottomBar.paintChecker.setChecked(True) self.rightComicTransStackPanel.setCurrentIndex(0) self.rightComicTransStackPanel.onCurrentChanged(0) self.canvas.setPaintMode(True) self.st_manager.setTextEditMode(False) elif self.config.imgtrans_textedit: self.bottomBar.texteditChecker.setChecked(True) self.bottomBar.originalSlider.setHidden(True) self.rightComicTransStackPanel.setCurrentIndex(1) self.canvas.setPaintMode(False) self.st_manager.setTextEditMode(True) if self.config.imgtrans_textblock: self.bottomBar.textblockChecker.setChecked(True) self.setTextBlockMode() else: self.bottomBar.originalSlider.setHidden(True) self.rightComicTransStackPanel.setHidden(True) self.st_manager.setTextEditMode(False) Loading Loading
config/stylesheet.css +19 −3 Original line number Diff line number Diff line Loading @@ -757,6 +757,10 @@ DrawToolCheckBox::indicator { padding: 10px; } DrawToolCheckBox::indicator:checked { background-color: rgba(30, 147, 229, 80); } DrawToolCheckBox#DrawHandTool::indicator { image: url(icons/drawingtools_hand.svg); Loading @@ -767,7 +771,7 @@ DrawToolCheckBox#DrawHandTool::indicator:hover { } DrawToolCheckBox#DrawHandTool::indicator:checked { background-color: rgba(30, 147, 229, 80); image: url(icons/drawingtools_hand.svg); } Loading @@ -780,7 +784,6 @@ DrawToolCheckBox#DrawInpaintTool::indicator:hover { } DrawToolCheckBox#DrawInpaintTool::indicator:checked { background-color: rgba(30, 147, 229, 80); image: url(icons/drawingtools_inpaint.svg); } Loading @@ -793,7 +796,20 @@ DrawToolCheckBox#DrawPenTool::indicator:hover { } DrawToolCheckBox#DrawPenTool::indicator:checked { background-color: rgba(30, 147, 229, 80); image: url(icons/drawingtools_pen.svg); } DrawToolCheckBox#DrawRectTool::indicator { image: url(icons/bottombar_textblock_activate.svg); } DrawToolCheckBox#DrawRectTool::indicator:hover { image: url(icons/bottombar_textblock.svg); } DrawToolCheckBox#DrawRectTool::indicator:checked { image: url(icons/bottombar_textblock_activate.svg); }
ui/constants.py +2 −0 Original line number Diff line number Diff line Loading @@ -35,3 +35,5 @@ DRAG_DIR_HOR = 0 DRAG_DIR_VER = 1 DRAG_DIR_FDIAG = 2 DRAG_DIR_BDIAG = 3 DRAWPANEL_WIDTH = 500
ui/drawingpanel.py +12 −7 Original line number Diff line number Diff line Loading @@ -33,7 +33,6 @@ class DrawToolCheckBox(QCheckBox): if self.isChecked(): self.checked.emit() class ToolNameLabel(QLabel): def __init__(self, fix_width=None, *args, **kwargs) -> None: super().__init__(*args, **kwargs) Loading @@ -50,8 +49,6 @@ class ToolNameLabel(QLabel): self.setFont(font) class InpaintPanel(Widget): thicknessChanged = pyqtSignal(int) Loading Loading @@ -83,11 +80,14 @@ class InpaintPanel(Widget): self.thicknessChanged.emit(self.thicknessSlider.value()) def showEvent(self, e) -> None: self.inpainter_panel.needInpaintChecker.setVisible(False) self.vlayout.addWidget(self.inpainter_panel) return super().showEvent(e) super().showEvent(e) def hideEvent(self, e) -> None: self.vlayout.removeWidget(self.inpainter_panel) self.inpainter_panel.needInpaintChecker.setVisible(True) return super().hideEvent(e) Loading Loading @@ -174,6 +174,10 @@ class DrawingPanel(Widget): self.inpaintConfigPanel = InpaintPanel(inpainter_panel) self.inpaintConfigPanel.thicknessChanged.connect(self.setInpaintToolWidth) self.rectTool = DrawToolCheckBox() self.rectTool.setObjectName("DrawRectTool") self.rectTool.checked.connect(self.on_use_rectremoval_tool) self.penTool = DrawToolCheckBox() self.penTool.setObjectName("DrawPenTool") self.penTool.checked.connect(self.on_use_pentool) Loading @@ -186,6 +190,7 @@ class DrawingPanel(Widget): toolboxlayout.addWidget(self.handTool) toolboxlayout.addWidget(self.inpaintTool) toolboxlayout.addWidget(self.penTool) toolboxlayout.addWidget(self.rectTool) self.canvas.painting_pen = self.pentool_pen = \ QPen(Qt.GlobalColor.black, 1, Qt.PenStyle.SolidLine, Qt.PenCapStyle.RoundCap, Qt.PenJoinStyle.RoundJoin) Loading Loading @@ -219,7 +224,6 @@ class DrawingPanel(Widget): dl_manager.canvas_inpaint_finished.connect(self.on_inpaint_finished) dl_manager.inpaint_thread.exception_occurred.connect(self.on_inpaint_failed) def setInpaintToolWidth(self, width): self.inpaint_pen.setWidth(width) if self.isVisible(): Loading Loading @@ -272,6 +276,9 @@ class DrawingPanel(Widget): self.setPenCursor() self.canvas.painting = True def on_use_rectremoval_tool(self) -> None: print('use rect removal tool') def get_config(self) -> DrawPanelConfig: config = DrawPanelConfig() pc = self.pentool_pen.color() Loading Loading @@ -401,8 +408,6 @@ class DrawingPanel(Widget): self.inpaint_stroke.addStroke(inpaint_stroke.stroke) self.canvas.removeItem(inpaint_stroke) def runInpaint(self): if self.inpaint_stroke is None: Loading
ui/imgtranspanel.py +4 −2 Original line number Diff line number Diff line from PyQt5.QtWidgets import QHBoxLayout, QLabel, QTextEdit, QScrollArea, QGraphicsDropShadowEffect, QVBoxLayout, QFrame, QFontComboBox, QColorDialog, QComboBox, QApplication, QPushButton, QRadioButton, QCheckBox from PyQt5.QtWidgets import QSizePolicy, QLabel, QTextEdit, QScrollArea, QGraphicsDropShadowEffect, QVBoxLayout, QFrame, QFontComboBox, QColorDialog, QComboBox, QApplication, QPushButton, QRadioButton, QCheckBox from PyQt5.QtCore import pyqtSignal, Qt, QSize, QEvent, QObject from PyQt5.QtGui import QColor, QFocusEvent, QIntValidator, QMouseEvent, QFont, QTextCursor from .stylewidgets import Widget, SeparatorWidget, PaintQSlider Loading Loading @@ -104,6 +104,7 @@ class TextEditListScrollArea(QScrollArea): self.setWidgetResizable(True) self.vlayout = vlayout def addPairWidget(self, pairwidget): self.vlayout.addWidget(pairwidget) Loading @@ -126,3 +127,4 @@ class TextPanel(Widget): layout.setContentsMargins(10, 0, 10, 0) layout.setSpacing(20) layout.setAlignment(Qt.AlignCenter)
ui/mainwindow.py +17 −50 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ import json from PyQt5.QtWidgets import QMainWindow, QHBoxLayout, QVBoxLayout, QApplication, QStackedWidget, QWidget, QSizePolicy, QComboBox, QListView, QToolBar, QMenu, QSpacerItem, QPushButton, QAction, QCheckBox, QToolButton, QSplitter, QListWidget, QShortcut, QListWidgetItem from PyQt5.QtCore import Qt, pyqtSignal, QPoint, QSize, QThread from PyQt5.QtGui import QGuiApplication, QIcon, QCloseEvent, QKeySequence, QImage, QPainter, QFont from PyQt5.QtGui import QGuiApplication, QIcon, QCloseEvent, QKeySequence, QImage, QPainter, QMouseEvent from .misc import ProjImgTrans from .canvas import Canvas Loading @@ -16,10 +16,9 @@ from .scenetext_manager import SceneTextManager from .mainwindowbars import TitleBar, LeftBar, RightBar, BottomBar from .io_thread import ImgSaveThread from .stylewidgets import FrameLessMessageBox from .constants import STYLESHEET_PATH, CONFIG_PATH, DPI, LDPI, LANG_SUPPORT_VERTICAL from .constants import STYLESHEET_PATH, CONFIG_PATH, DPI, LDPI, LANG_SUPPORT_VERTICAL, DRAWPANEL_WIDTH from . import constants class PageListView(QListWidget): def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) Loading @@ -27,22 +26,6 @@ class PageListView(QListWidget): self.setIconSize(QSize(70, 70)) class StackWidget(QStackedWidget): def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) self.currentChanged.connect(self.onCurrentChanged) self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) def addWidget(self, w: QWidget) -> int: super().addWidget(w) self.adjustSize() def onCurrentChanged(self, index: int) -> None: self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.adjustSize() class MainWindow(QMainWindow): proj_directory = None Loading Loading @@ -73,14 +56,16 @@ class MainWindow(QMainWindow): if osp.exists(proj_dir): self.openDir(proj_dir) # qt's layout management just can't do it right self.comicTransSplitter.setStretchFactor(2, 0.3) self.bottomBar.texteditChecker.click() self.bottomBar.paintChecker.click() if self.config.imgtrans_textedit: self.bottomBar.texteditChecker.click() if self.config.imgtrans_textblock: self.bottomBar.textblockChecker.click() elif not self.config.imgtrans_paintmode: self.bottomBar.paintChecker.click() self.comicTransSplitter.setStretchFactor(2, 0.5) self.comicTransSplitter.setStretchFactor(1, 10) w = QGuiApplication.primaryScreen().geometry().width() rw = self.rightComicTransStackPanel.sizeHint().width() pw = int((w - rw) / 4) gvw = pw * 3 self.comicTransSplitter.setSizes([pw, gvw, rw]) def setupUi(self): screen_size = QApplication.desktop().screenGeometry().size() Loading Loading @@ -111,7 +96,6 @@ class MainWindow(QMainWindow): mainHLayout = QHBoxLayout() mainHLayout.addWidget(self.leftBar) # mainHLayout.addWidget(self.pageList) mainHLayout.addWidget(self.centralStackWidget) mainHLayout.addWidget(self.rightBar) mainHLayout.setContentsMargins(0, 0, 0, 0) Loading @@ -132,7 +116,7 @@ class MainWindow(QMainWindow): self.st_manager = SceneTextManager(self.app, self.canvas, self.textPanel) # comic trans pannel self.rightComicTransStackPanel = StackWidget(self) self.rightComicTransStackPanel = QStackedWidget(self) self.rightComicTransStackPanel.addWidget(self.drawingPanel) self.rightComicTransStackPanel.addWidget(self.textPanel) Loading @@ -140,8 +124,6 @@ class MainWindow(QMainWindow): self.comicTransSplitter.addWidget(self.pageList) self.comicTransSplitter.addWidget(self.canvas.gv) self.comicTransSplitter.addWidget(self.rightComicTransStackPanel) # self.comicTransSplitter.setStretchFactor(1, 10) # self.comicTransSplitter.setStretchFactor(2, 1) self.centralStackWidget.addWidget(self.comicTransSplitter) self.centralStackWidget.addWidget(self.configPanel) Loading Loading @@ -174,22 +156,7 @@ class MainWindow(QMainWindow): self.leftBar.imgTransChecker.setChecked(True) self.st_manager.formatpanel.global_format = self.config.global_fontformat self.st_manager.formatpanel.set_active_format(self.config.global_fontformat) if self.config.imgtrans_paintmode: self.bottomBar.paintChecker.setChecked(True) self.rightComicTransStackPanel.setCurrentIndex(0) self.rightComicTransStackPanel.onCurrentChanged(0) self.canvas.setPaintMode(True) self.st_manager.setTextEditMode(False) elif self.config.imgtrans_textedit: self.bottomBar.texteditChecker.setChecked(True) self.bottomBar.originalSlider.setHidden(True) self.rightComicTransStackPanel.setCurrentIndex(1) self.canvas.setPaintMode(False) self.st_manager.setTextEditMode(True) if self.config.imgtrans_textblock: self.bottomBar.textblockChecker.setChecked(True) self.setTextBlockMode() else: self.bottomBar.originalSlider.setHidden(True) self.rightComicTransStackPanel.setHidden(True) self.st_manager.setTextEditMode(False) Loading