From 43cdc8420c56d937b8497a436017d42758393f0e Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Sun, 16 Jun 2024 16:14:11 +0200 Subject: [PATCH] Merge progress bars into single source file --- .../{circularprogress.py => progressbars.py} | 29 ++++++++-- novelwriter/extensions/simpleprogress.py | 53 ------------------- novelwriter/tools/manusbuild.py | 2 +- novelwriter/tools/manuscript.py | 2 +- 4 files changed, 28 insertions(+), 58 deletions(-) rename novelwriter/extensions/{circularprogress.py => progressbars.py} (79%) delete mode 100644 novelwriter/extensions/simpleprogress.py diff --git a/novelwriter/extensions/circularprogress.py b/novelwriter/extensions/progressbars.py similarity index 79% rename from novelwriter/extensions/circularprogress.py rename to novelwriter/extensions/progressbars.py index de360d827..60e2b3566 100644 --- a/novelwriter/extensions/circularprogress.py +++ b/novelwriter/extensions/progressbars.py @@ -1,9 +1,10 @@ """ -novelWriter – Custom Widget: Progress Circle -============================================ +novelWriter – Custom Widget: Progress Bars +========================================== File History: -Created: 2023-06-07 [2.1b1] +Created: 2023-06-07 [2.1b1] NProgressCircle +Created: 2023-06-09 [2.1b1] NProgressSimple This file is a part of novelWriter Copyright 2018–2024, Veronica Berglyd Olsen @@ -101,3 +102,25 @@ def paintEvent(self, event: QPaintEvent) -> None: painter.setPen(self._tColor) painter.drawText(self._cRect, QtAlignCenter, self._text or f"{progress:.1f} %") return + + +class NProgressSimple(QProgressBar): + """Extension: Simple Progress Widget + + A custom widget that paints a plain bar with no other styling. + """ + + def __init__(self, parent: QWidget) -> None: + super().__init__(parent=parent) + return + + def paintEvent(self, event: QPaintEvent) -> None: + """Custom painter for the progress bar.""" + if (value := self.value()) > 0: + progress = ceil(self.width()*float(value)/self.maximum()) + painter = QPainter(self) + painter.setRenderHint(QtPaintAnitAlias, True) + painter.setPen(self.palette().highlight().color()) + painter.setBrush(self.palette().highlight()) + painter.drawRect(0, 0, progress, self.height()) + return diff --git a/novelwriter/extensions/simpleprogress.py b/novelwriter/extensions/simpleprogress.py deleted file mode 100644 index f940c73cb..000000000 --- a/novelwriter/extensions/simpleprogress.py +++ /dev/null @@ -1,53 +0,0 @@ -""" -novelWriter – Custom Widget: Progress Simple -============================================ - -File History: -Created: 2023-06-09 [2.1b1] - -This file is a part of novelWriter -Copyright 2018–2024, Veronica Berglyd Olsen - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -""" -from __future__ import annotations - -from math import ceil - -from PyQt5.QtGui import QPainter, QPaintEvent -from PyQt5.QtWidgets import QProgressBar, QWidget - -from novelwriter.types import QtPaintAnitAlias - - -class NProgressSimple(QProgressBar): - """Extension: Simple Progress Widget - - A custom widget that paints a plain bar with no other styling. - """ - - def __init__(self, parent: QWidget) -> None: - super().__init__(parent=parent) - return - - def paintEvent(self, event: QPaintEvent) -> None: - """Custom painter for the progress bar.""" - if (value := self.value()) > 0: - progress = ceil(self.width()*float(value)/self.maximum()) - painter = QPainter(self) - painter.setRenderHint(QtPaintAnitAlias, True) - painter.setPen(self.palette().highlight().color()) - painter.setBrush(self.palette().highlight()) - painter.drawRect(0, 0, progress, self.height()) - return diff --git a/novelwriter/tools/manusbuild.py b/novelwriter/tools/manusbuild.py index 90f6f2964..cf18822b8 100644 --- a/novelwriter/tools/manusbuild.py +++ b/novelwriter/tools/manusbuild.py @@ -43,7 +43,7 @@ from novelwriter.core.item import NWItem from novelwriter.enum import nwBuildFmt from novelwriter.extensions.modified import NDialog, NIconToolButton -from novelwriter.extensions.simpleprogress import NProgressSimple +from novelwriter.extensions.progressbars import NProgressSimple from novelwriter.types import QtAlignCenter, QtDialogClose, QtRoleAction, QtRoleReject, QtUserRole logger = logging.getLogger(__name__) diff --git a/novelwriter/tools/manuscript.py b/novelwriter/tools/manuscript.py index 53f3a17b0..4c2167428 100644 --- a/novelwriter/tools/manuscript.py +++ b/novelwriter/tools/manuscript.py @@ -44,8 +44,8 @@ from novelwriter.core.docbuild import NWBuildDocument from novelwriter.core.tokenizer import HeadingFormatter from novelwriter.core.toqdoc import TextDocumentTheme, ToQTextDocument -from novelwriter.extensions.circularprogress import NProgressCircle from novelwriter.extensions.modified import NIconToggleButton, NIconToolButton, NToolDialog +from novelwriter.extensions.progressbars import NProgressCircle from novelwriter.gui.theme import STYLES_FLAT_TABS, STYLES_MIN_TOOLBUTTON from novelwriter.tools.manusbuild import GuiManuscriptBuild from novelwriter.tools.manussettings import GuiBuildSettings