Commit e3009759 authored by dmMaze's avatar dmMaze
Browse files

size of pagelist is now controllable, zoomIn & zoomOut shortcuts

parent 5fa18f63
Loading
Loading
Loading
Loading
+2 −10
Original line number Diff line number Diff line
@@ -63,9 +63,6 @@ class CustomGV(QGraphicsView):
        self.setFocus()
        return super().enterEvent(event)

    def resizeTool(self) -> bool:
        return self.alt_pressed and self.leftbtn_pressed


class Canvas(QGraphicsScene):

@@ -193,6 +190,8 @@ class Canvas(QGraphicsScene):
        scrollBar.setValue(int(factor * scrollBar.value() + ((factor - 1) * scrollBar.pageStep() / 2)))

    def scaleImage(self, factor: float):
        if not self.gv.isVisible() or not self.imgtrans_proj.img_valid:
            return
        s_f = self.scale_factor * factor
        s_f = np.clip(s_f, CANVAS_SCALE_MIN, CANVAS_SCALE_MAX)

@@ -388,7 +387,6 @@ class Canvas(QGraphicsScene):
            self.removeItem(self.stroke_path_item)
            self.stroke_path_item = None


    def on_undostack_changed(self):
        if self.undoStack.count() != 0:
            self.setProjSaveState(True)
@@ -400,9 +398,3 @@ class Canvas(QGraphicsScene):
            self.projstate_unsaved = un_saved
            self.proj_savestate_changed.emit(un_saved)
    
 No newline at end of file
    

    
        

    
 No newline at end of file
+21 −12
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ import json
from collections import OrderedDict

from PyQt5.QtWidgets import QMainWindow, QHBoxLayout, QVBoxLayout, QApplication, QStackedWidget, QWidget, QFileDialog, QLabel, QSizePolicy, QComboBox, QListView, QToolBar, QMenu, QSpacerItem, QPushButton, QAction, QCheckBox, QToolButton, QSplitter, QListWidget, QShortcut, QListWidgetItem
from PyQt5.QtCore import Qt, QCoreApplication, pyqtSignal, QPoint, QSize, QLocale
from PyQt5.QtCore import Qt, pyqtSignal, QPoint, QSize
from PyQt5.QtGui import QGuiApplication, QIcon, QMouseEvent, QCloseEvent, QKeySequence, QImage, QPainter

from typing import List, Union, Tuple
@@ -107,7 +107,7 @@ class StateChecker(QCheckBox):
class PageListView(QListWidget):    
    def __init__(self, *args, **kwargs) -> None:
        super().__init__(*args, **kwargs)
        self.setFixedWidth(512)
        self.setMaximumWidth(512)
        self.setIconSize(QSize(70, 70))

class OpenBtn(QToolButton):
@@ -456,11 +456,6 @@ class BottomBar(Widget):
        self.transcheck_statechanged.emit(self.transChecker.isChecked())
    

class FrameLessMainWindow(QMainWindow):
    def __init__(self, *args, **kwargs) -> None:
        super().__init__(*args, **kwargs)
        self.setWindowFlags(Qt.WindowType.FramelessWindowHint)

class StackWidget(QStackedWidget):

    def __init__(self, *args, **kwargs) -> None:
@@ -477,15 +472,25 @@ class StackWidget(QStackedWidget):
        self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
        self.adjustSize()

class MainWindow(FrameLessMainWindow):

class FrameLessWindow(QMainWindow):
    def __init__(self, *args, **kwargs) -> None:
        super().__init__(*args, **kwargs)
        self.setWindowFlags(Qt.WindowType.FramelessWindowHint)


class MainWindow(FrameLessWindow):

    proj_directory = None
    imgtrans_proj: ProjImgTrans = ProjImgTrans()
    save_on_page_changed = True
    
    def __init__(self, app: QApplication, open_dir='', *args, **kwargs) -> None:
        super().__init__(*args, **kwargs)
        global DPI, LDPI
        DPI = QGuiApplication.primaryScreen().physicalDotsPerInch()
        constants.LDPI = QGuiApplication.primaryScreen().logicalDotsPerInch()

        self.app = app
        self.setupLogger()
        self.setupUi()
@@ -528,7 +533,7 @@ class MainWindow(FrameLessMainWindow):

        mainHLayout = QHBoxLayout()
        mainHLayout.addWidget(self.leftBar)
        mainHLayout.addWidget(self.pageList)
        # mainHLayout.addWidget(self.pageList)
        mainHLayout.addWidget(self.centralStackWidget)
        mainHLayout.setContentsMargins(0, 0, 0, 0)
        mainHLayout.setSpacing(0)
@@ -553,10 +558,11 @@ class MainWindow(FrameLessMainWindow):
        self.rightComicTransStackPanel.addWidget(self.textPanel)

        self.comicTransSplitter = QSplitter(Qt.Horizontal)
        self.comicTransSplitter.addWidget(self.pageList)
        self.comicTransSplitter.addWidget(self.canvas.gv)
        self.comicTransSplitter.addWidget(self.rightComicTransStackPanel)
        self.comicTransSplitter.setStretchFactor(0, 10)
        self.comicTransSplitter.setStretchFactor(1, 1)
        self.comicTransSplitter.setStretchFactor(1, 10)
        self.comicTransSplitter.setStretchFactor(2, 1)

        self.centralStackWidget.addWidget(self.comicTransSplitter)
        self.centralStackWidget.addWidget(self.configPanel)
@@ -707,7 +713,6 @@ class MainWindow(FrameLessMainWindow):
            self.st_manager.updateTextList()
            self.titleBar.setTitleContent(page_name=self.imgtrans_proj.current_img)


    def setupShortcuts(self):
        shortcutNext = QShortcut(QKeySequence("D"), self)
        shortcutNext.activated.connect(self.shortcutNext)
@@ -715,6 +720,10 @@ class MainWindow(FrameLessMainWindow):
        shortcutBefore.activated.connect(self.shortcutBefore)
        shortcutTextblock = QShortcut(QKeySequence("W"), self)
        shortcutTextblock.activated.connect(self.shortcutTextblock)
        shortcutZoomIn = QShortcut(QKeySequence.StandardKey.ZoomIn, self)
        shortcutZoomIn.activated.connect(self.canvas.gv.scale_up_signal)
        shortcutZoomOut = QShortcut(QKeySequence.StandardKey.ZoomOut, self)
        shortcutZoomOut.activated.connect(self.canvas.gv.scale_down_signal)
        
    def shortcutNext(self):
        if self.centralStackWidget.currentIndex() == 0: