diff --git a/novelwriter/dialogs/projectsettings.py b/novelwriter/dialogs/projectsettings.py index d6ab8b65..78ebd143 100644 --- a/novelwriter/dialogs/projectsettings.py +++ b/novelwriter/dialogs/projectsettings.py @@ -30,7 +30,7 @@ from PyQt5.QtCore import Qt, pyqtSignal, pyqtSlot from PyQt5.QtGui import QCloseEvent, QColor from PyQt5.QtWidgets import ( QApplication, QColorDialog, QDialog, QDialogButtonBox, QHBoxLayout, - QLineEdit, QMenu, QSizePolicy, QStackedWidget, QToolButton, QTreeWidget, + QLineEdit, QMenu, QStackedWidget, QToolButton, QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget ) @@ -43,7 +43,10 @@ from novelwriter.extensions.configlayout import NColourLabel, NFixedPage, NScrol from novelwriter.extensions.modified import NComboBox, NIconToolButton from novelwriter.extensions.pagedsidebar import NPagedSideBar from novelwriter.extensions.switch import NSwitch -from novelwriter.types import QtDialogCancel, QtDialogSave, QtUserRole +from novelwriter.types import ( + QtDialogCancel, QtDialogSave, QtSizeMinimum, QtSizeMinimumExpanding, + QtUserRole +) logger = logging.getLogger(__name__) @@ -386,7 +389,7 @@ class _StatusPage(NFixedPage): self.colorButton = NIconToolButton(self, iSz) self.colorButton.setToolTip(self.tr("Colour")) - self.colorButton.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.MinimumExpanding) + self.colorButton.setSizePolicy(QtSizeMinimum, QtSizeMinimumExpanding) self.colorButton.setStyleSheet(buttonStyle) self.colorButton.setEnabled(False) self.colorButton.clicked.connect(self._selectColour) @@ -407,13 +410,13 @@ class _StatusPage(NFixedPage): self.shapeButton = NIconToolButton(self, iSz) self.shapeButton.setMenu(self.shapeMenu) self.shapeButton.setToolTip(self.tr("Shape")) - self.shapeButton.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.MinimumExpanding) + self.shapeButton.setSizePolicy(QtSizeMinimum, QtSizeMinimumExpanding) self.shapeButton.setStyleSheet(buttonStyle) self.shapeButton.setEnabled(False) self.applyButton = QToolButton(self) self.applyButton.setText(self.tr("Apply")) - self.applyButton.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.MinimumExpanding) + self.applyButton.setSizePolicy(QtSizeMinimum, QtSizeMinimumExpanding) self.applyButton.setEnabled(False) self.applyButton.clicked.connect(self._saveItem) @@ -675,7 +678,7 @@ class _ReplacePage(NFixedPage): self.applyButton = QToolButton(self) self.applyButton.setText(self.tr("Apply")) - self.applyButton.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.MinimumExpanding) + self.applyButton.setSizePolicy(QtSizeMinimum, QtSizeMinimumExpanding) self.applyButton.clicked.connect(self._saveEntry) # Assemble diff --git a/novelwriter/extensions/circularprogress.py b/novelwriter/extensions/circularprogress.py index bbc2f64a..23ca7d3d 100644 --- a/novelwriter/extensions/circularprogress.py +++ b/novelwriter/extensions/circularprogress.py @@ -27,10 +27,11 @@ from math import ceil from PyQt5.QtCore import QRect from PyQt5.QtGui import QBrush, QColor, QPaintEvent, QPainter, QPen -from PyQt5.QtWidgets import QProgressBar, QSizePolicy, QWidget +from PyQt5.QtWidgets import QProgressBar, QWidget from novelwriter.types import ( - QtPaintAnitAlias, QtAlignCenter, QtRoundCap, QtSolidLine, QtTransparent + QtPaintAnitAlias, QtAlignCenter, QtRoundCap, QtSizeFixed, QtSolidLine, + QtTransparent ) @@ -59,7 +60,7 @@ class NProgressCircle(QProgressBar): bar=self.palette().highlight().color(), text=self.palette().text().color() ) - self.setSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed) + self.setSizePolicy(QtSizeFixed, QtSizeFixed) self.setFixedWidth(size) self.setFixedHeight(size) return diff --git a/novelwriter/extensions/pagedsidebar.py b/novelwriter/extensions/pagedsidebar.py index a3c53455..7709509f 100644 --- a/novelwriter/extensions/pagedsidebar.py +++ b/novelwriter/extensions/pagedsidebar.py @@ -28,11 +28,14 @@ from __future__ import annotations from PyQt5.QtGui import QColor, QPaintEvent, QPainter, QPolygon from PyQt5.QtCore import QPoint, QRectF, QSize, Qt, pyqtSignal, pyqtSlot from PyQt5.QtWidgets import ( - QAbstractButton, QAction, QButtonGroup, QLabel, QSizePolicy, QStyle, + QAbstractButton, QAction, QButtonGroup, QLabel, QStyle, QStyleOptionToolButton, QToolBar, QToolButton, QWidget ) -from novelwriter.types import QtPaintAnitAlias, QtAlignLeft, QtMouseOver, QtNoBrush, QtNoPen +from novelwriter.types import ( + QtPaintAnitAlias, QtAlignLeft, QtMouseOver, QtNoBrush, QtNoPen, + QtSizeExpanding, QtSizeFixed +) class NPagedSideBar(QToolBar): @@ -59,7 +62,7 @@ class NPagedSideBar(QToolBar): self.setOrientation(Qt.Orientation.Vertical) stretch = QWidget(self) - stretch.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) + stretch.setSizePolicy(QtSizeExpanding, QtSizeExpanding) self._stretchAction = self.addWidget(stretch) return @@ -119,7 +122,7 @@ class _NPagedToolButton(QToolButton): def __init__(self, parent: QWidget) -> None: super().__init__(parent=parent) - self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) + self.setSizePolicy(QtSizeExpanding, QtSizeFixed) self.setCheckable(True) fH = self.fontMetrics().height() @@ -197,7 +200,7 @@ class _NPagedToolLabel(QLabel): def __init__(self, parent: QWidget, textColor: QColor | None = None) -> None: super().__init__(parent=parent) - self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) + self.setSizePolicy(QtSizeExpanding, QtSizeFixed) fH = self.fontMetrics().height() self._bH = round(fH * 1.7) diff --git a/novelwriter/extensions/switch.py b/novelwriter/extensions/switch.py index e35bd79a..1c04a158 100644 --- a/novelwriter/extensions/switch.py +++ b/novelwriter/extensions/switch.py @@ -25,10 +25,10 @@ from __future__ import annotations from PyQt5.QtGui import QMouseEvent, QPainter, QPaintEvent, QResizeEvent from PyQt5.QtCore import QEvent, QPropertyAnimation, Qt, pyqtProperty -from PyQt5.QtWidgets import QAbstractButton, QSizePolicy, QWidget +from PyQt5.QtWidgets import QAbstractButton, QWidget from novelwriter import CONFIG, SHARED -from novelwriter.types import QtPaintAnitAlias, QtMouseLeft, QtNoPen +from novelwriter.types import QtPaintAnitAlias, QtMouseLeft, QtNoPen, QtSizeFixed class NSwitch(QAbstractButton): @@ -46,7 +46,7 @@ class NSwitch(QAbstractButton): self._rR = self._xR - self._rB self.setCheckable(True) - self.setSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed) + self.setSizePolicy(QtSizeFixed, QtSizeFixed) self.setFixedWidth(self._xW) self.setFixedHeight(self._xH) self._offset = self._xR diff --git a/novelwriter/extensions/switchbox.py b/novelwriter/extensions/switchbox.py index d41587ba..1cff6a9c 100644 --- a/novelwriter/extensions/switchbox.py +++ b/novelwriter/extensions/switchbox.py @@ -25,10 +25,13 @@ from __future__ import annotations from PyQt5.QtGui import QIcon from PyQt5.QtCore import pyqtSignal -from PyQt5.QtWidgets import QGridLayout, QLabel, QScrollArea, QSizePolicy, QWidget +from PyQt5.QtWidgets import QGridLayout, QLabel, QScrollArea, QWidget from novelwriter.extensions.switch import NSwitch -from novelwriter.types import QtAlignLeft, QtAlignRight, QtAlignRightMiddle +from novelwriter.types import ( + QtAlignLeft, QtAlignRight, QtAlignRightMiddle, QtSizeMinimum, + QtSizeMinimumExpanding +) class NSwitchBox(QScrollArea): @@ -59,7 +62,7 @@ class NSwitchBox(QScrollArea): self._content.setColumnStretch(1, 1) self._widget = QWidget(self) - self._widget.setSizePolicy(QSizePolicy.Policy.MinimumExpanding, QSizePolicy.Policy.Minimum) + self._widget.setSizePolicy(QtSizeMinimumExpanding, QtSizeMinimum) self._widget.setLayout(self._content) self.setWidgetResizable(True) diff --git a/novelwriter/gui/noveltree.py b/novelwriter/gui/noveltree.py index 7eea96d8..6643df47 100644 --- a/novelwriter/gui/noveltree.py +++ b/novelwriter/gui/noveltree.py @@ -35,8 +35,8 @@ from PyQt5.QtCore import QModelIndex, QPoint, Qt, pyqtSlot, pyqtSignal from PyQt5.QtGui import QFocusEvent, QFont, QMouseEvent, QPalette, QResizeEvent from PyQt5.QtWidgets import ( QAbstractItemView, QActionGroup, QFrame, QHBoxLayout, QHeaderView, - QInputDialog, QMenu, QSizePolicy, QToolTip, QTreeWidget, QTreeWidgetItem, - QVBoxLayout, QWidget + QInputDialog, QMenu, QToolTip, QTreeWidget, QTreeWidgetItem, QVBoxLayout, + QWidget ) from novelwriter import CONFIG, SHARED @@ -47,7 +47,10 @@ from novelwriter.enum import nwDocMode, nwItemClass, nwOutline from novelwriter.extensions.modified import NIconToolButton from novelwriter.extensions.novelselector import NovelSelector from novelwriter.gui.theme import STYLES_MIN_TOOLBUTTON -from novelwriter.types import QtAlignRight, QtDecoration, QtMouseLeft, QtMouseMiddle, QtUserRole +from novelwriter.types import ( + QtAlignRight, QtDecoration, QtMouseLeft, QtMouseMiddle, QtSizeExpanding, + QtUserRole +) if TYPE_CHECKING: # pragma: no cover from novelwriter.guimain import GuiMain @@ -215,7 +218,7 @@ class GuiNovelToolBar(QWidget): self.novelValue.setFont(selFont) self.novelValue.setListFormat(self.tr("Outline of {0}")) self.novelValue.setMinimumWidth(CONFIG.pxInt(150)) - self.novelValue.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) + self.novelValue.setSizePolicy(QtSizeExpanding, QtSizeExpanding) self.novelValue.novelSelectionChanged.connect(self.setCurrentRoot) self.tbNovel = NIconToolButton(self, iSz) diff --git a/novelwriter/gui/outline.py b/novelwriter/gui/outline.py index 05f80e3b..380455ce 100644 --- a/novelwriter/gui/outline.py +++ b/novelwriter/gui/outline.py @@ -36,20 +36,19 @@ from enum import Enum from PyQt5.QtCore import Qt, pyqtSignal, pyqtSlot, QT_TRANSLATE_NOOP from PyQt5.QtWidgets import ( QAbstractItemView, QAction, QFileDialog, QFrame, QGridLayout, QGroupBox, - QHBoxLayout, QLabel, QMenu, QScrollArea, QSizePolicy, QSplitter, QToolBar, - QToolButton, QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget + QHBoxLayout, QLabel, QMenu, QScrollArea, QSplitter, QToolBar, QToolButton, + QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget ) from novelwriter import CONFIG, SHARED -from novelwriter.enum import ( - nwDocMode, nwItemClass, nwItemLayout, nwItemType, nwOutline -) +from novelwriter.enum import nwDocMode, nwItemClass, nwItemLayout, nwItemType, nwOutline from novelwriter.error import logException from novelwriter.common import checkInt, formatFileFilter, makeFileNameSafe from novelwriter.constants import nwHeaders, trConst, nwKeyWords, nwLabels from novelwriter.extensions.novelselector import NovelSelector from novelwriter.types import ( - QtAlignLeftTop, QtAlignRight, QtAlignRightTop, QtDecoration, QtUserRole + QtAlignLeftTop, QtAlignRight, QtAlignRightTop, QtDecoration, + QtSizeExpanding, QtUserRole ) @@ -217,7 +216,7 @@ class GuiOutlineToolBar(QToolBar): self.setContentsMargins(0, 0, 0, 0) stretch = QWidget(self) - stretch.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) + stretch.setSizePolicy(QtSizeExpanding, QtSizeExpanding) # Novel Selector self.novelLabel = QLabel(self.tr("Outline of"), self) diff --git a/novelwriter/gui/projtree.py b/novelwriter/gui/projtree.py index 286b192d..8074325b 100644 --- a/novelwriter/gui/projtree.py +++ b/novelwriter/gui/projtree.py @@ -38,8 +38,8 @@ from PyQt5.QtGui import ( ) from PyQt5.QtWidgets import ( QAbstractItemView, QAction, QDialog, QFrame, QHBoxLayout, QHeaderView, - QLabel, QMenu, QShortcut, QSizePolicy, QTreeWidget, QTreeWidgetItem, - QVBoxLayout, QWidget + QLabel, QMenu, QShortcut, QTreeWidget, QTreeWidgetItem, QVBoxLayout, + QWidget ) from novelwriter import CONFIG, SHARED @@ -54,7 +54,10 @@ from novelwriter.dialogs.projectsettings import GuiProjectSettings from novelwriter.enum import nwDocMode, nwItemType, nwItemClass, nwItemLayout from novelwriter.extensions.modified import NIconToolButton from novelwriter.gui.theme import STYLES_MIN_TOOLBUTTON -from novelwriter.types import QtAlignLeft, QtAlignRight, QtMouseLeft, QtMouseMiddle, QtUserRole +from novelwriter.types import ( + QtAlignLeft, QtAlignRight, QtMouseLeft, QtMouseMiddle, QtSizeExpanding, + QtUserRole, +) if TYPE_CHECKING: # pragma: no cover from novelwriter.guimain import GuiMain @@ -274,7 +277,7 @@ class GuiProjectToolBar(QWidget): self.viewLabel = QLabel(self.tr("Project Content"), self) self.viewLabel.setFont(SHARED.theme.guiFontB) self.viewLabel.setContentsMargins(0, 0, 0, 0) - self.viewLabel.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) + self.viewLabel.setSizePolicy(QtSizeExpanding, QtSizeExpanding) # Quick Links self.mQuick = QMenu(self) diff --git a/novelwriter/tools/manuscript.py b/novelwriter/tools/manuscript.py index 8f1df562..149e1a88 100644 --- a/novelwriter/tools/manuscript.py +++ b/novelwriter/tools/manuscript.py @@ -36,8 +36,8 @@ from PyQt5.QtPrintSupport import QPrintPreviewDialog, QPrinter from PyQt5.QtWidgets import ( QAbstractItemView, QApplication, QDialog, QFormLayout, QGridLayout, QHBoxLayout, QLabel, QListWidget, QListWidgetItem, QPushButton, - QSizePolicy, QSplitter, QStackedWidget, QTabWidget, QTextBrowser, - QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget + QSplitter, QStackedWidget, QTabWidget, QTextBrowser, QTreeWidget, + QTreeWidgetItem, QVBoxLayout, QWidget ) from novelwriter import CONFIG, SHARED @@ -54,7 +54,7 @@ from novelwriter.tools.manusbuild import GuiManuscriptBuild from novelwriter.tools.manussettings import GuiBuildSettings from novelwriter.types import ( QtAlignAbsolute, QtAlignCenter, QtAlignJustify, QtAlignRight, QtAlignTop, - QtUserRole + QtSizeExpanding, QtSizeIgnored, QtUserRole ) if TYPE_CHECKING: # pragma: no cover @@ -1030,16 +1030,14 @@ class _StatsWidget(QWidget): @pyqtSlot(bool) def _toggleView(self, state: bool) -> None: """Toggle minimal or maximal view.""" - ignored = QSizePolicy.Policy.Ignored - expanded = QSizePolicy.Policy.Expanding if state: self.mainStack.setCurrentWidget(self.maxWidget) - self.maxWidget.setSizePolicy(expanded, expanded) - self.minWidget.setSizePolicy(ignored, ignored) + self.maxWidget.setSizePolicy(QtSizeExpanding, QtSizeExpanding) + self.minWidget.setSizePolicy(QtSizeIgnored, QtSizeIgnored) else: self.mainStack.setCurrentWidget(self.minWidget) - self.maxWidget.setSizePolicy(ignored, ignored) - self.minWidget.setSizePolicy(expanded, expanded) + self.maxWidget.setSizePolicy(QtSizeIgnored, QtSizeIgnored) + self.minWidget.setSizePolicy(QtSizeExpanding, QtSizeExpanding) self.maxWidget.adjustSize() self.minWidget.adjustSize() self.mainStack.adjustSize() diff --git a/novelwriter/types.py b/novelwriter/types.py index 56e59604..49e670ce 100644 --- a/novelwriter/types.py +++ b/novelwriter/types.py @@ -25,7 +25,7 @@ from __future__ import annotations from PyQt5.QtCore import Qt from PyQt5.QtGui import QColor, QPainter, QTextCursor -from PyQt5.QtWidgets import QDialogButtonBox, QStyle +from PyQt5.QtWidgets import QDialogButtonBox, QSizePolicy, QStyle # Qt Alignment Flags @@ -88,3 +88,11 @@ QtKeepAnchor = QTextCursor.MoveMode.KeepAnchor QtMoveAnchor = QTextCursor.MoveMode.MoveAnchor QtMoveLeft = QTextCursor.MoveOperation.Left QtMoveRight = QTextCursor.MoveOperation.Right + +# Size Policy + +QtSizeExpanding = QSizePolicy.Policy.Expanding +QtSizeFixed = QSizePolicy.Policy.Fixed +QtSizeIgnored = QSizePolicy.Policy.Ignored +QtSizeMinimum = QSizePolicy.Policy.Minimum +QtSizeMinimumExpanding = QSizePolicy.Policy.MinimumExpanding