diff --git a/novelwriter/__init__.py b/novelwriter/__init__.py
index d29e191f..348ce56f 100644
--- a/novelwriter/__init__.py
+++ b/novelwriter/__init__.py
@@ -242,5 +242,3 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
sys.exit(nwApp.exec())
return None
-
-# END Function main
diff --git a/novelwriter/common.py b/novelwriter/common.py
index 8573c1bd..b1282867 100644
--- a/novelwriter/common.py
+++ b/novelwriter/common.py
@@ -603,5 +603,3 @@ class NWConfigParser(ConfigParser):
for i in range(min(len(data), len(result))):
result[i] = checkInt(data[i].strip(), result[i])
return result
-
-# END Class NWConfigParser
diff --git a/novelwriter/config.py b/novelwriter/config.py
index e9fab918..1627cade 100644
--- a/novelwriter/config.py
+++ b/novelwriter/config.py
@@ -24,24 +24,24 @@ along with this program. If not, see .
"""
from __future__ import annotations
-import sys
import json
import logging
+import sys
-from time import time
-from pathlib import Path
from datetime import datetime
+from pathlib import Path
+from time import time
-from PyQt5.QtGui import QFontDatabase
from PyQt5.QtCore import (
PYQT_VERSION, PYQT_VERSION_STR, QT_VERSION, QT_VERSION_STR, QLibraryInfo,
QLocale, QStandardPaths, QSysInfo, QTranslator
)
+from PyQt5.QtGui import QFontDatabase
from PyQt5.QtWidgets import QApplication
-from novelwriter.error import formatException, logException
from novelwriter.common import NWConfigParser, checkInt, checkPath, formatTimeStamp
from novelwriter.constants import nwFiles, nwUnicode
+from novelwriter.error import formatException, logException
logger = logging.getLogger(__name__)
@@ -787,8 +787,6 @@ class Config:
logger.debug("Checking package 'pyenchant': OK")
return
-# END Class Config
-
class RecentProjects:
@@ -857,5 +855,3 @@ class RecentProjects:
logger.debug("Removed recent: %s", path)
self.saveCache()
return
-
-# END Class RecentProjects
diff --git a/novelwriter/constants.py b/novelwriter/constants.py
index dac0604a..2f409d9a 100644
--- a/novelwriter/constants.py
+++ b/novelwriter/constants.py
@@ -60,8 +60,6 @@ class nwConst:
# Dialogs
DLG_FINISHED = 2
-# END Class nwConst
-
class nwRegEx:
@@ -71,8 +69,6 @@ class nwRegEx:
FMT_SC = r"(?i)(?.
"""
from __future__ import annotations
-import uuid
import logging
+import uuid
from typing import TYPE_CHECKING, Any
@@ -322,5 +322,3 @@ class NWProjectData:
self._autoReplace[key] = simplified(entry)
self._project.setProjectChanged(True)
return
-
-# END Class NWProjectData
diff --git a/novelwriter/core/projectxml.py b/novelwriter/core/projectxml.py
index ac28ed4a..7f7551c2 100644
--- a/novelwriter/core/projectxml.py
+++ b/novelwriter/core/projectxml.py
@@ -29,19 +29,19 @@ import logging
import xml.etree.ElementTree as ET
from enum import Enum
+from pathlib import Path
from time import time
from typing import TYPE_CHECKING
-from pathlib import Path
-from novelwriter import __version__, __hexversion__
+from novelwriter import __hexversion__, __version__
from novelwriter.common import (
checkBool, checkInt, checkString, checkStringNone, formatTimeStamp,
hexToInt, simplified, xmlIndent, yesNo
)
if TYPE_CHECKING: # pragma: no cover
- from novelwriter.core.status import NWStatus
from novelwriter.core.projectdata import NWProjectData
+ from novelwriter.core.status import NWStatus
logger = logging.getLogger(__name__)
@@ -70,8 +70,6 @@ class XMLReadState(Enum):
PARSED_OK = 5
WAS_LEGACY = 6
-# END Class XMLReadState
-
class ProjectXMLReader:
"""Core: Project XML Reader
@@ -458,8 +456,6 @@ class ProjectXMLReader:
"""
return {xNode.tag: checkString(xNode.text, "") for xNode in xItem}
-# END Class ProjectXMLReader
-
class ProjectXMLWriter:
"""Core: Project XML Writer
@@ -579,5 +575,3 @@ class ProjectXMLWriter:
xEntry = ET.SubElement(xItem, "entry", attrib={"key": key})
xEntry.text = str(value) or ""
return
-
-# END Class ProjectXMLWriter
diff --git a/novelwriter/core/sessions.py b/novelwriter/core/sessions.py
index 2f79ad20..444b2d3c 100644
--- a/novelwriter/core/sessions.py
+++ b/novelwriter/core/sessions.py
@@ -26,14 +26,14 @@ from __future__ import annotations
import json
import logging
+from collections.abc import Iterable
+from pathlib import Path
from time import time
from typing import TYPE_CHECKING
-from pathlib import Path
-from collections.abc import Iterable
-from novelwriter.error import logException
from novelwriter.common import formatTimeStamp
from novelwriter.constants import nwFiles
+from novelwriter.error import logException
if TYPE_CHECKING: # pragma: no cover
from novelwriter.core.project import NWProject
@@ -135,5 +135,3 @@ class NWSessionLog:
"novel": novel, "notes": notes, "idle": idle,
})
return f"{data}\n"
-
-# END Class NWSessionLog
diff --git a/novelwriter/core/spellcheck.py b/novelwriter/core/spellcheck.py
index 6dc47785..587895c0 100644
--- a/novelwriter/core/spellcheck.py
+++ b/novelwriter/core/spellcheck.py
@@ -27,14 +27,14 @@ from __future__ import annotations
import json
import logging
-from typing import TYPE_CHECKING
-from pathlib import Path
from collections.abc import Iterator
+from pathlib import Path
+from typing import TYPE_CHECKING
from PyQt5.QtCore import QLocale
-from novelwriter.error import logException
from novelwriter.constants import nwFiles
+from novelwriter.error import logException
if TYPE_CHECKING: # pragma: no cover
from novelwriter.core.project import NWProject
@@ -164,11 +164,10 @@ class NWSpellEnchant:
name = ""
return tag, name
-# END Class NWSpellEnchant
-
class FakeEnchant:
"""Fallback for when Enchant is selected, but not installed."""
+
def __init__(self) -> None:
class FakeProvider:
@@ -188,8 +187,6 @@ class FakeEnchant:
def add_to_session(self, word: str) -> None:
return
-# END Class FakeEnchant
-
class UserDictionary:
@@ -240,5 +237,3 @@ class UserDictionary:
logger.error("Failed to save user dictionary")
logException()
return
-
-# END Class UserDictionary
diff --git a/novelwriter/core/status.py b/novelwriter/core/status.py
index 50f7e1d2..c29c34a2 100644
--- a/novelwriter/core/status.py
+++ b/novelwriter/core/status.py
@@ -32,7 +32,7 @@ from collections.abc import Iterable
from typing import TYPE_CHECKING, Literal
from PyQt5.QtCore import QPointF, Qt
-from PyQt5.QtGui import QIcon, QPainter, QPainterPath, QPixmap, QColor, QPolygonF
+from PyQt5.QtGui import QColor, QIcon, QPainter, QPainterPath, QPixmap, QPolygonF
from novelwriter import SHARED
from novelwriter.common import simplified
@@ -62,8 +62,6 @@ class StatusEntry:
cls.icon = QIcon(source.icon)
return cls
-# END Class StatusEntry
-
NO_ENTRY = StatusEntry("", QColor(0, 0, 0), nwStatusShape.SQUARE, QIcon(), 0)
@@ -221,8 +219,6 @@ class NWStatus:
"""Check key is valid, and if not, generate one."""
return key if self._isKey(key) else self._newKey()
-# END Class NWStatus
-
class _ShapeCache:
@@ -329,8 +325,6 @@ class _ShapeCache:
return path
-# END Class _ShapeCache
-
# Create Singleton
_SHAPES = _ShapeCache()
diff --git a/novelwriter/core/storage.py b/novelwriter/core/storage.py
index e8a2bb16..8daccd86 100644
--- a/novelwriter/core/storage.py
+++ b/novelwriter/core/storage.py
@@ -391,8 +391,6 @@ class NWStorage:
self._lockedBy = None
return True
-# END Class NWStorage
-
class _LegacyStorage:
"""Core: Legacy Storage Converter Utils
@@ -590,5 +588,3 @@ class _LegacyStorage:
logException()
return
-
-# END Class _LegacyStorage
diff --git a/novelwriter/core/tohtml.py b/novelwriter/core/tohtml.py
index 575fd410..2f64bb56 100644
--- a/novelwriter/core/tohtml.py
+++ b/novelwriter/core/tohtml.py
@@ -536,5 +536,3 @@ class ToHtml(Tokenizer):
)
return bits[0][1:], result
-
-# END Class ToHtml
diff --git a/novelwriter/core/tokenizer.py b/novelwriter/core/tokenizer.py
index 148fe574..15cd8046 100644
--- a/novelwriter/core/tokenizer.py
+++ b/novelwriter/core/tokenizer.py
@@ -1045,8 +1045,6 @@ class Tokenizer(ABC):
return result, formats
-# END Class Tokenizer
-
class HeadingFormatter:
@@ -1116,5 +1114,3 @@ class HeadingFormatter:
hFormat = hFormat.replace(nwHeadFmt.CHAR_FOCUS, fText)
return hFormat
-
-# END Class HeadingFormatter
diff --git a/novelwriter/core/tomd.py b/novelwriter/core/tomd.py
index e794083a..371b6f7c 100644
--- a/novelwriter/core/tomd.py
+++ b/novelwriter/core/tomd.py
@@ -272,5 +272,3 @@ class ToMarkdown(Tokenizer):
result += " \n" if style & self.A_Z_BTMMRG else "\n\n"
return result
-
-# END Class ToMarkdown
diff --git a/novelwriter/core/toodt.py b/novelwriter/core/toodt.py
index 92003f52..e06c8de6 100644
--- a/novelwriter/core/toodt.py
+++ b/novelwriter/core/toodt.py
@@ -1079,8 +1079,6 @@ class ToOdt(Tokenizer):
return
-# END Class ToOdt
-
# =============================================================================================== #
# Auto-Style Classes
@@ -1332,8 +1330,6 @@ class ODTParagraphStyle:
return
-# END Class ODTParagraphStyle
-
class ODTTextStyle:
"""Wrapper class for the text style setting used by the exporter.
@@ -1457,13 +1453,10 @@ class ODTTextStyle:
ET.SubElement(xEntry, _mkTag("style", "text-properties"), attrib=attr)
return
-# END Class ODTTextStyle
-
# =============================================================================================== #
# XML Complex Element Helper Class
# =============================================================================================== #
-
X_ROOT_TEXT = 0
X_ROOT_TAIL = 1
X_SPAN_TEXT = 2
@@ -1661,5 +1654,3 @@ class XMLParagraph:
self._chrPos += nSpaces - 1
return
-
-# END Class XMLParagraph
diff --git a/novelwriter/core/tree.py b/novelwriter/core/tree.py
index f206fdb2..01131b93 100644
--- a/novelwriter/core/tree.py
+++ b/novelwriter/core/tree.py
@@ -23,18 +23,18 @@ along with this program. If not, see .
"""
from __future__ import annotations
-import random
import logging
+import random
-from typing import TYPE_CHECKING, Literal, overload
-from pathlib import Path
from collections.abc import Iterable, Iterator
+from pathlib import Path
+from typing import TYPE_CHECKING, Literal, overload
-from novelwriter.enum import nwItemClass, nwItemLayout, nwItemType
-from novelwriter.error import logException
from novelwriter.common import isHandle
from novelwriter.constants import nwFiles
from novelwriter.core.item import NWItem
+from novelwriter.enum import nwItemClass, nwItemLayout, nwItemType
+from novelwriter.error import logException
if TYPE_CHECKING: # pragma: no cover
from novelwriter.core.project import NWProject
@@ -520,5 +520,3 @@ class NWTree:
handle = self._makeHandle()
return handle
-
-# END Class NWTree
diff --git a/novelwriter/dialogs/about.py b/novelwriter/dialogs/about.py
index da6ba884..ee138d37 100644
--- a/novelwriter/dialogs/about.py
+++ b/novelwriter/dialogs/about.py
@@ -152,5 +152,3 @@ class GuiAbout(NNonBlockingDialog):
f"QTextBrowser {{border: none; background: {baseCol};}} "
)
return
-
-# END Class GuiAbout
diff --git a/novelwriter/dialogs/docmerge.py b/novelwriter/dialogs/docmerge.py
index 9c94489e..d258c89a 100644
--- a/novelwriter/dialogs/docmerge.py
+++ b/novelwriter/dialogs/docmerge.py
@@ -34,8 +34,8 @@ from PyQt5.QtWidgets import (
)
from novelwriter import CONFIG, SHARED
-from novelwriter.extensions.switch import NSwitch
from novelwriter.extensions.configlayout import NColourLabel
+from novelwriter.extensions.switch import NSwitch
from novelwriter.types import QtDialogCancel, QtDialogOk, QtDialogReset, QtUserRole
logger = logging.getLogger(__name__)
@@ -182,5 +182,3 @@ class GuiDocMerge(QDialog):
self.listBox.addItem(newItem)
return
-
-# END Class GuiDocMerge
diff --git a/novelwriter/dialogs/docsplit.py b/novelwriter/dialogs/docsplit.py
index b9d1f048..49325a70 100644
--- a/novelwriter/dialogs/docsplit.py
+++ b/novelwriter/dialogs/docsplit.py
@@ -34,8 +34,8 @@ from PyQt5.QtWidgets import (
)
from novelwriter import CONFIG, SHARED
-from novelwriter.extensions.switch import NSwitch
from novelwriter.extensions.configlayout import NColourLabel
+from novelwriter.extensions.switch import NSwitch
from novelwriter.types import QtDialogCancel, QtDialogOk, QtUserRole
logger = logging.getLogger(__name__)
@@ -257,5 +257,3 @@ class GuiDocSplit(QDialog):
self.listBox.addItem(newItem)
return
-
-# END Class GuiDocSplit
diff --git a/novelwriter/dialogs/editlabel.py b/novelwriter/dialogs/editlabel.py
index a2d374fd..2afbd6fa 100644
--- a/novelwriter/dialogs/editlabel.py
+++ b/novelwriter/dialogs/editlabel.py
@@ -94,5 +94,3 @@ class GuiEditLabel(QDialog):
accepted = cls.result() == QDialog.DialogCode.Accepted
cls.deleteLater()
return label, accepted
-
-# END Class GuiEditLabel
diff --git a/novelwriter/dialogs/preferences.py b/novelwriter/dialogs/preferences.py
index a8900786..671d4d4e 100644
--- a/novelwriter/dialogs/preferences.py
+++ b/novelwriter/dialogs/preferences.py
@@ -962,5 +962,3 @@ class GuiPreferences(QDialog):
self.newPreferencesReady.emit(needsRestart, refreshTree, updateTheme, updateSyntax)
return
-
-# END Class GuiPreferences
diff --git a/novelwriter/dialogs/projectsettings.py b/novelwriter/dialogs/projectsettings.py
index 23bb43da..74b44409 100644
--- a/novelwriter/dialogs/projectsettings.py
+++ b/novelwriter/dialogs/projectsettings.py
@@ -29,8 +29,8 @@ import logging
from PyQt5.QtCore import Qt, pyqtSignal, pyqtSlot
from PyQt5.QtGui import QCloseEvent, QColor
from PyQt5.QtWidgets import (
- QAbstractItemView, QApplication, QColorDialog, QDialog, QDialogButtonBox, QHBoxLayout,
- QLineEdit, QMenu, QStackedWidget, QToolButton, QTreeWidget,
+ QAbstractItemView, QApplication, QColorDialog, QDialog, QDialogButtonBox,
+ QHBoxLayout, QLineEdit, QMenu, QStackedWidget, QToolButton, QTreeWidget,
QTreeWidgetItem, QVBoxLayout, QWidget
)
@@ -227,8 +227,6 @@ class GuiProjectSettings(QDialog):
return
-# END Class GuiProjectSettings
-
class _SettingsPage(NScrollableForm):
@@ -302,8 +300,6 @@ class _SettingsPage(NScrollableForm):
return
-# END Class _SettingsPage
-
class _StatusPage(NFixedPage):
@@ -622,8 +618,6 @@ class _StatusPage(NFixedPage):
self.shapeButton.setIcon(self._icons[self._shape])
return
-# END Class _StatusPage
-
class _ReplacePage(NFixedPage):
@@ -797,5 +791,3 @@ class _ReplacePage(NFixedPage):
def _stripNotAllowed(self, key: str) -> str:
"""Clean up the replace key string."""
return "".join(c for c in key if c.isalnum())
-
-# END Class _ReplacePage
diff --git a/novelwriter/dialogs/quotes.py b/novelwriter/dialogs/quotes.py
index d728994f..12bc0b0b 100644
--- a/novelwriter/dialogs/quotes.py
+++ b/novelwriter/dialogs/quotes.py
@@ -25,15 +25,15 @@ from __future__ import annotations
import logging
-from PyQt5.QtGui import QFontMetrics
from PyQt5.QtCore import QSize, pyqtSlot
+from PyQt5.QtGui import QFontMetrics
from PyQt5.QtWidgets import (
QDialog, QDialogButtonBox, QFrame, QHBoxLayout, QLabel, QListWidget,
QListWidgetItem, QVBoxLayout, QWidget
)
from novelwriter import CONFIG
-from novelwriter.constants import trConst, nwQuotes
+from novelwriter.constants import nwQuotes, trConst
from novelwriter.types import QtAlignCenter, QtAlignTop, QtDialogCancel, QtDialogOk, QtUserRole
logger = logging.getLogger(__name__)
@@ -141,5 +141,3 @@ class GuiQuoteSelect(QDialog):
self.previewLabel.setText(quote)
self._selected = quote
return
-
-# END Class GuiQuoteSelect
diff --git a/novelwriter/dialogs/wordlist.py b/novelwriter/dialogs/wordlist.py
index 721ab91e..fa2b573c 100644
--- a/novelwriter/dialogs/wordlist.py
+++ b/novelwriter/dialogs/wordlist.py
@@ -253,5 +253,3 @@ class GuiWordList(QDialog):
if (item := self.listBox.item(i)) and (word := item.text().strip()):
result.append(word)
return result
-
-# END Class GuiWordList
diff --git a/novelwriter/error.py b/novelwriter/error.py
index 86641011..9026803e 100644
--- a/novelwriter/error.py
+++ b/novelwriter/error.py
@@ -23,17 +23,17 @@ along with this program. If not, see .
"""
from __future__ import annotations
-import sys
-import random
import logging
+import random
+import sys
from typing import TYPE_CHECKING
from PyQt5.QtCore import Qt, pyqtSlot
from PyQt5.QtGui import QFont, QFontDatabase
from PyQt5.QtWidgets import (
- QApplication, QWidget, QDialog, QGridLayout, QStyle, QPlainTextEdit,
- QLabel, QDialogButtonBox
+ QApplication, QDialog, QDialogButtonBox, QGridLayout, QLabel,
+ QPlainTextEdit, QStyle, QWidget
)
if TYPE_CHECKING: # pragma: no cover
@@ -125,9 +125,11 @@ class NWErrorMessage(QDialog):
error traceback.
"""
from traceback import format_tb
+
+ from PyQt5.QtCore import PYQT_VERSION_STR, QT_VERSION_STR, QSysInfo
+
from novelwriter import __version__
from novelwriter.constants import nwConst
- from PyQt5.QtCore import QT_VERSION_STR, PYQT_VERSION_STR, QSysInfo
self.msgHead.setText(
"
An unhandled error has been encountered.
"
@@ -175,12 +177,11 @@ class NWErrorMessage(QDialog):
self.close()
return
-# END Class NWErrorMessage
-
def exceptionHandler(exType: type, exValue: BaseException, exTrace: TracebackType) -> None:
"""Function to catch unhandled global exceptions."""
from traceback import print_tb
+
from PyQt5.QtWidgets import QApplication
logger.critical("%s: %s", exType.__name__, str(exValue))
diff --git a/novelwriter/extensions/circularprogress.py b/novelwriter/extensions/circularprogress.py
index 23ca7d3d..de360d82 100644
--- a/novelwriter/extensions/circularprogress.py
+++ b/novelwriter/extensions/circularprogress.py
@@ -26,11 +26,11 @@ from __future__ import annotations
from math import ceil
from PyQt5.QtCore import QRect
-from PyQt5.QtGui import QBrush, QColor, QPaintEvent, QPainter, QPen
+from PyQt5.QtGui import QBrush, QColor, QPainter, QPaintEvent, QPen
from PyQt5.QtWidgets import QProgressBar, QWidget
from novelwriter.types import (
- QtPaintAnitAlias, QtAlignCenter, QtRoundCap, QtSizeFixed, QtSolidLine,
+ QtAlignCenter, QtPaintAnitAlias, QtRoundCap, QtSizeFixed, QtSolidLine,
QtTransparent
)
@@ -101,5 +101,3 @@ class NProgressCircle(QProgressBar):
painter.setPen(self._tColor)
painter.drawText(self._cRect, QtAlignCenter, self._text or f"{progress:.1f} %")
return
-
-# END Class NProgressCircle
diff --git a/novelwriter/extensions/configlayout.py b/novelwriter/extensions/configlayout.py
index cdfcbffe..d73774eb 100644
--- a/novelwriter/extensions/configlayout.py
+++ b/novelwriter/extensions/configlayout.py
@@ -27,8 +27,8 @@ along with this program. If not, see .
"""
from __future__ import annotations
-from PyQt5.QtGui import QColor, QFont, QPalette
from PyQt5.QtCore import Qt
+from PyQt5.QtGui import QColor, QFont, QPalette
from PyQt5.QtWidgets import (
QAbstractButton, QFrame, QHBoxLayout, QLabel, QLayout, QScrollArea,
QVBoxLayout, QWidget
@@ -64,8 +64,6 @@ class NFixedPage(QFrame):
self.setLayout(layout)
return
-# END Class NFixedPage
-
class NScrollablePage(QScrollArea):
"""Extension: Scrollable Page Widget
@@ -89,8 +87,6 @@ class NScrollablePage(QScrollArea):
self._widget.setLayout(layout)
return
-# END Class NScrollablePage
-
class NScrollableForm(QScrollArea):
"""Extension: Scrollable Form Widget
@@ -235,8 +231,6 @@ class NScrollableForm(QScrollArea):
self._layout.addStretch(1)
return
-# END Class NScrollableForm
-
class NColourLabel(QLabel):
"""Extension: A Coloured Label
@@ -267,8 +261,6 @@ class NColourLabel(QLabel):
return
-# END Class NColourLabel
-
class NWrappedWidgetBox(QHBoxLayout):
"""Extension: A Text-Wrapped Widget Box
@@ -287,5 +279,3 @@ class NWrappedWidgetBox(QHBoxLayout):
if after:
self.addWidget(QLabel(after.lstrip()))
return
-
-# END Class NWrappedWidgetBox
diff --git a/novelwriter/extensions/eventfilters.py b/novelwriter/extensions/eventfilters.py
index 922790c3..f2618d34 100644
--- a/novelwriter/extensions/eventfilters.py
+++ b/novelwriter/extensions/eventfilters.py
@@ -24,8 +24,8 @@ along with this program. If not, see .
"""
from __future__ import annotations
-from PyQt5.QtGui import QStatusTipEvent, QWheelEvent
from PyQt5.QtCore import QEvent, QObject
+from PyQt5.QtGui import QStatusTipEvent, QWheelEvent
from PyQt5.QtWidgets import QWidget
@@ -63,13 +63,9 @@ class WheelEventFilter(QObject):
self._locked = False
return False
-# END Class WheelEventFilter
-
class StatusTipFilter(QObject):
def eventFilter(self, obj: QObject, event: QEvent) -> bool:
"""Filter out status tip events on menus."""
return True if isinstance(event, QStatusTipEvent) else super().eventFilter(obj, event)
-
-# END Class StatusTipFilter
diff --git a/novelwriter/extensions/modified.py b/novelwriter/extensions/modified.py
index 450647ac..4eed6635 100644
--- a/novelwriter/extensions/modified.py
+++ b/novelwriter/extensions/modified.py
@@ -61,8 +61,6 @@ class NToolDialog(QDialog):
QApplication.processEvents()
return
-# END Class NToolDialog
-
class NNonBlockingDialog(QDialog):
@@ -80,8 +78,6 @@ class NNonBlockingDialog(QDialog):
QApplication.processEvents()
return
-# END Class NNonBlockingDialog
-
class NComboBox(QComboBox):
@@ -103,8 +99,6 @@ class NComboBox(QComboBox):
self.setCurrentIndex(self.findData(default) if idx < 0 else idx)
return
-# END Class NComboBox
-
class NSpinBox(QSpinBox):
@@ -120,8 +114,6 @@ class NSpinBox(QSpinBox):
event.ignore()
return
-# END Class NSpinBox
-
class NDoubleSpinBox(QDoubleSpinBox):
@@ -137,8 +129,6 @@ class NDoubleSpinBox(QDoubleSpinBox):
event.ignore()
return
-# END Class NDoubleSpinBox
-
class NIconToolButton(QToolButton):
@@ -156,8 +146,6 @@ class NIconToolButton(QToolButton):
self.setIcon(SHARED.theme.getIcon(iconKey))
return
-# END Class NIconToolButton
-
class NIconToggleButton(QToolButton):
@@ -177,5 +165,3 @@ class NIconToggleButton(QToolButton):
iconSize = self.iconSize()
self.setIcon(SHARED.theme.getToggleIcon(iconKey, (iconSize.width(), iconSize.height())))
return
-
-# END Class NUnfoldButton
diff --git a/novelwriter/extensions/novelselector.py b/novelwriter/extensions/novelselector.py
index 44e5bf23..340f083c 100644
--- a/novelwriter/extensions/novelselector.py
+++ b/novelwriter/extensions/novelselector.py
@@ -29,8 +29,8 @@ from PyQt5.QtCore import pyqtSignal, pyqtSlot
from PyQt5.QtWidgets import QComboBox, QWidget
from novelwriter import SHARED
-from novelwriter.enum import nwItemClass
from novelwriter.constants import nwLabels
+from novelwriter.enum import nwItemClass
logger = logging.getLogger(__name__)
@@ -126,5 +126,3 @@ class NovelSelector(QComboBox):
if not self._blockSignal:
self.novelSelectionChanged.emit(self.currentData())
return
-
-# END Class NovelSelector
diff --git a/novelwriter/extensions/pagedsidebar.py b/novelwriter/extensions/pagedsidebar.py
index 7709509f..da3fca21 100644
--- a/novelwriter/extensions/pagedsidebar.py
+++ b/novelwriter/extensions/pagedsidebar.py
@@ -25,15 +25,15 @@ along with this program. If not, see .
"""
from __future__ import annotations
-from PyQt5.QtGui import QColor, QPaintEvent, QPainter, QPolygon
from PyQt5.QtCore import QPoint, QRectF, QSize, Qt, pyqtSignal, pyqtSlot
+from PyQt5.QtGui import QColor, QPainter, QPaintEvent, QPolygon
from PyQt5.QtWidgets import (
QAbstractButton, QAction, QButtonGroup, QLabel, QStyle,
QStyleOptionToolButton, QToolBar, QToolButton, QWidget
)
from novelwriter.types import (
- QtPaintAnitAlias, QtAlignLeft, QtMouseOver, QtNoBrush, QtNoPen,
+ QtAlignLeft, QtMouseOver, QtNoBrush, QtNoPen, QtPaintAnitAlias,
QtSizeExpanding, QtSizeFixed
)
@@ -112,8 +112,6 @@ class NPagedSideBar(QToolBar):
self.buttonClicked.emit(buttonId)
return
-# END Class NPagedSideBar
-
class _NPagedToolButton(QToolButton):
@@ -190,8 +188,6 @@ class _NPagedToolButton(QToolButton):
return
-# END Class _NPagedToolButton
-
class _NPagedToolLabel(QLabel):
@@ -231,5 +227,3 @@ class _NPagedToolLabel(QLabel):
paint.drawText(QRectF(self._lM, self._tM, tW, tH), QtAlignLeft, self.text())
return
-
-# END Class _NPagedToolLabel
diff --git a/novelwriter/extensions/simpleprogress.py b/novelwriter/extensions/simpleprogress.py
index f350d394..f940c73c 100644
--- a/novelwriter/extensions/simpleprogress.py
+++ b/novelwriter/extensions/simpleprogress.py
@@ -25,7 +25,7 @@ from __future__ import annotations
from math import ceil
-from PyQt5.QtGui import QPaintEvent, QPainter
+from PyQt5.QtGui import QPainter, QPaintEvent
from PyQt5.QtWidgets import QProgressBar, QWidget
from novelwriter.types import QtPaintAnitAlias
@@ -51,5 +51,3 @@ class NProgressSimple(QProgressBar):
painter.setBrush(self.palette().highlight())
painter.drawRect(0, 0, progress, self.height())
return
-
-# END Class NProgressSimple
diff --git a/novelwriter/extensions/statusled.py b/novelwriter/extensions/statusled.py
index afd641fb..ea34c759 100644
--- a/novelwriter/extensions/statusled.py
+++ b/novelwriter/extensions/statusled.py
@@ -27,7 +27,7 @@ import logging
from typing import Literal
-from PyQt5.QtGui import QColor, QPaintEvent, QPainter
+from PyQt5.QtGui import QColor, QPainter, QPaintEvent
from PyQt5.QtWidgets import QAbstractButton, QWidget
from novelwriter.types import QtPaintAnitAlias
@@ -75,5 +75,3 @@ class StatusLED(QAbstractButton):
painter.setOpacity(1.0)
painter.drawEllipse(1, 1, self.width() - 2, self.height() - 2)
return
-
-# END Class StatusLED
diff --git a/novelwriter/extensions/switch.py b/novelwriter/extensions/switch.py
index 1c04a158..302e6e80 100644
--- a/novelwriter/extensions/switch.py
+++ b/novelwriter/extensions/switch.py
@@ -23,12 +23,12 @@ along with this program. If not, see .
"""
from __future__ import annotations
-from PyQt5.QtGui import QMouseEvent, QPainter, QPaintEvent, QResizeEvent
from PyQt5.QtCore import QEvent, QPropertyAnimation, Qt, pyqtProperty
+from PyQt5.QtGui import QMouseEvent, QPainter, QPaintEvent, QResizeEvent
from PyQt5.QtWidgets import QAbstractButton, QWidget
from novelwriter import CONFIG, SHARED
-from novelwriter.types import QtPaintAnitAlias, QtMouseLeft, QtNoPen, QtSizeFixed
+from novelwriter.types import QtMouseLeft, QtNoPen, QtPaintAnitAlias, QtSizeFixed
class NSwitch(QAbstractButton):
@@ -133,5 +133,3 @@ class NSwitch(QAbstractButton):
self.setCursor(Qt.CursorShape.PointingHandCursor)
super().enterEvent(event)
return
-
-# END Class NSwitch
diff --git a/novelwriter/extensions/switchbox.py b/novelwriter/extensions/switchbox.py
index 1cff6a9c..42f4ccb2 100644
--- a/novelwriter/extensions/switchbox.py
+++ b/novelwriter/extensions/switchbox.py
@@ -23,8 +23,8 @@ along with this program. If not, see .
"""
from __future__ import annotations
-from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSignal
+from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QGridLayout, QLabel, QScrollArea, QWidget
from novelwriter.extensions.switch import NSwitch
@@ -127,5 +127,3 @@ class NSwitchBox(QScrollArea):
self._content.setRowStretch(self._index + 1, 1)
self._index += 1
return
-
-# END Class NSwitchBox
diff --git a/novelwriter/extensions/versioninfo.py b/novelwriter/extensions/versioninfo.py
index 6ac78794..9b1177a3 100644
--- a/novelwriter/extensions/versioninfo.py
+++ b/novelwriter/extensions/versioninfo.py
@@ -26,16 +26,16 @@ from __future__ import annotations
import json
import logging
-from time import sleep
from datetime import datetime
+from time import sleep
from urllib.error import HTTPError
from urllib.request import Request, urlopen
-from PyQt5.QtGui import QDesktopServices
from PyQt5.QtCore import QObject, QRunnable, QUrl, pyqtSignal, pyqtSlot
+from PyQt5.QtGui import QDesktopServices
from PyQt5.QtWidgets import QLabel, QVBoxLayout, QWidget
-from novelwriter import CONFIG, SHARED, __version__, __date__, __domain__
+from novelwriter import CONFIG, SHARED, __date__, __domain__, __version__
from novelwriter.common import formatVersion
from novelwriter.constants import nwConst
@@ -111,8 +111,6 @@ class VersionInfoWidget(QWidget):
self._lblRelease.setText(self._trLatest.format(reason or self.tr("Failed")))
return
-# END Class VersionInfoWidget
-
class _Retriever(QRunnable):
@@ -144,10 +142,6 @@ class _Retriever(QRunnable):
self.signals.dataReady.emit("", str(e))
return
-# END Class _Retriever
-
class _RetrieverSignal(QObject):
dataReady = pyqtSignal(str, str)
-
-# END Class _RetrieverSignal
diff --git a/novelwriter/gui/doceditor.py b/novelwriter/gui/doceditor.py
index 662b1c35..36349e6b 100644
--- a/novelwriter/gui/doceditor.py
+++ b/novelwriter/gui/doceditor.py
@@ -78,9 +78,7 @@ class _SelectAction(Enum):
KEEP_POSITION = 2
MOVE_AFTER = 3
-# END Class _SelectAction
-
-
+
class GuiDocEditor(QPlainTextEdit):
"""Gui Widget: Main Document Editor"""
@@ -2131,7 +2129,7 @@ class GuiDocEditor(QPlainTextEdit):
self._doReplace = False
return
-# END Class GuiDocEditor
+
class MetaCompleter(QMenu):
@@ -2210,7 +2208,7 @@ class MetaCompleter(QMenu):
self.complete.emit(pos, length, value)
return
-# END Class MetaCompleter
+
# =============================================================================================== #
@@ -2251,7 +2249,7 @@ class BackgroundWordCounter(QRunnable):
return
-# END Class BackgroundWordCounter
+
class BackgroundWordCounterSignals(QObject):
@@ -2260,7 +2258,7 @@ class BackgroundWordCounterSignals(QObject):
"""
countsReady = pyqtSignal(int, int, int)
-# END Class BackgroundWordCounterSignals
+
# =============================================================================================== #
@@ -2393,7 +2391,7 @@ class GuiDocToolBar(QWidget):
return
-# END Class GuiDocToolBar
+
# =============================================================================================== #
@@ -2757,7 +2755,7 @@ class GuiDocEditSearch(QFrame):
self.searchBox.setPalette(qPalette)
return
-# END Class GuiDocEditSearch
+
# =============================================================================================== #
@@ -2980,7 +2978,7 @@ class GuiDocEditHeader(QWidget):
self.docEditor.requestProjectItemSelected.emit(self._docHandle or "", True)
return
-# END Class GuiDocEditHeader
+
# =============================================================================================== #
@@ -3172,4 +3170,4 @@ class GuiDocEditFooter(QWidget):
self.wordsText.setText(wText)
return
-# END Class GuiDocEditFooter
+
diff --git a/novelwriter/gui/dochighlight.py b/novelwriter/gui/dochighlight.py
index 4725b7f3..29fe9504 100644
--- a/novelwriter/gui/dochighlight.py
+++ b/novelwriter/gui/dochighlight.py
@@ -463,8 +463,6 @@ class GuiDocHighlighter(QSyntaxHighlighter):
return
-# END Class GuiDocHighlighter
-
class TextBlockData(QTextBlockUserData):
@@ -505,5 +503,3 @@ class TextBlockData(QTextBlockUserData):
(rxMatch.capturedStart(0), rxMatch.capturedLength(0))
)
return self._spellErrors
-
-# END Class TextBlockData
diff --git a/novelwriter/gui/docviewer.py b/novelwriter/gui/docviewer.py
index 465f1241..89052faf 100644
--- a/novelwriter/gui/docviewer.py
+++ b/novelwriter/gui/docviewer.py
@@ -496,8 +496,6 @@ class GuiDocViewer(QTextBrowser):
return
-# END Class GuiDocViewer
-
class GuiDocViewHistory:
@@ -611,8 +609,6 @@ class GuiDocViewHistory:
)
return
-# END Class GuiDocViewHistory
-
# =============================================================================================== #
# The Embedded Document Header
@@ -835,8 +831,6 @@ class GuiDocViewHeader(QWidget):
self.docViewer.requestProjectItemSelected.emit(self._docHandle, True)
return
-# END Class GuiDocViewHeader
-
# =============================================================================================== #
# The Embedded Document Footer
@@ -967,5 +961,3 @@ class GuiDocViewFooter(QWidget):
CONFIG.viewSynopsis = state
self.docViewer.reloadText()
return
-
-# END Class GuiDocViewFooter
diff --git a/novelwriter/gui/docviewerpanel.py b/novelwriter/gui/docviewerpanel.py
index b82c5d52..8944711a 100644
--- a/novelwriter/gui/docviewerpanel.py
+++ b/novelwriter/gui/docviewerpanel.py
@@ -221,8 +221,6 @@ class GuiDocViewerPanel(QWidget):
self.kwTabs[tClass].addUpdateEntry(key, name, iItem, hItem)
return
-# END Class GuiDocViewerPanel
-
class _ViewPanelBackRefs(QTreeWidget):
@@ -360,8 +358,6 @@ class _ViewPanelBackRefs(QTreeWidget):
return
-# END Class _ViewPanelBackRefs
-
class _ViewPanelKeyWords(QTreeWidget):
@@ -528,5 +524,3 @@ class _ViewPanelKeyWords(QTreeWidget):
if index.column() not in (self.C_EDIT, self.C_VIEW):
self._parent.loadDocumentTagRequest.emit(tag, nwDocMode.VIEW)
return
-
-# END Class _ViewPanelKeyWords
diff --git a/novelwriter/gui/editordocument.py b/novelwriter/gui/editordocument.py
index 0bbfd1b5..e071658c 100644
--- a/novelwriter/gui/editordocument.py
+++ b/novelwriter/gui/editordocument.py
@@ -28,8 +28,8 @@ import logging
from collections.abc import Iterable
from time import time
-from PyQt5.QtGui import QTextBlock, QTextCursor, QTextDocument
from PyQt5.QtCore import QObject, pyqtSlot
+from PyQt5.QtGui import QTextBlock, QTextCursor, QTextDocument
from PyQt5.QtWidgets import QApplication, QPlainTextDocumentLayout
from novelwriter import SHARED
@@ -133,5 +133,3 @@ class GuiTextDocument(QTextDocument):
"""Set the spell check state of the syntax highlighter."""
self._syntax.setSpellCheck(state)
return
-
-# END Class GuiTextDocument
diff --git a/novelwriter/gui/itemdetails.py b/novelwriter/gui/itemdetails.py
index 486acf29..73542889 100644
--- a/novelwriter/gui/itemdetails.py
+++ b/novelwriter/gui/itemdetails.py
@@ -295,5 +295,3 @@ class GuiItemDetails(QWidget):
self.wCountData.setText(f"{wC:n}")
self.pCountData.setText(f"{pC:n}")
return
-
-# END Class GuiItemDetails
diff --git a/novelwriter/gui/mainmenu.py b/novelwriter/gui/mainmenu.py
index 6ac50c19..6a5b1c8a 100644
--- a/novelwriter/gui/mainmenu.py
+++ b/novelwriter/gui/mainmenu.py
@@ -991,5 +991,3 @@ class GuiMainMenu(QMenuBar):
self.aWebsite.triggered.connect(lambda: self._openWebsite(nwConst.URL_WEB))
return
-
-# END Class GuiMainMenu
diff --git a/novelwriter/gui/noveltree.py b/novelwriter/gui/noveltree.py
index 68aa8c46..9c7a65c5 100644
--- a/novelwriter/gui/noveltree.py
+++ b/novelwriter/gui/noveltree.py
@@ -185,8 +185,6 @@ class GuiNovelView(QWidget):
self.novelTree.refreshHandle(tHandle)
return
-# END Class GuiNovelView
-
class GuiNovelToolBar(QWidget):
@@ -349,8 +347,6 @@ class GuiNovelToolBar(QWidget):
self.aLastCol[colType] = aLast
return
-# END Class GuiNovelToolBar
-
class GuiNovelTree(QTreeWidget):
@@ -778,5 +774,3 @@ class GuiNovelTree(QTreeWidget):
if tags:
lines.append(f"{trConst(nwLabels.KEY_NAME[key])}: {tags}")
return lines
-
-# END Class GuiNovelTree
diff --git a/novelwriter/gui/outline.py b/novelwriter/gui/outline.py
index ec48267d..d404794a 100644
--- a/novelwriter/gui/outline.py
+++ b/novelwriter/gui/outline.py
@@ -30,10 +30,10 @@ from __future__ import annotations
import csv
import logging
-from time import time
from enum import Enum
+from time import time
-from PyQt5.QtCore import Qt, pyqtSignal, pyqtSlot, QT_TRANSLATE_NOOP
+from PyQt5.QtCore import QT_TRANSLATE_NOOP, Qt, pyqtSignal, pyqtSlot
from PyQt5.QtWidgets import (
QAbstractItemView, QAction, QFileDialog, QFrame, QGridLayout, QGroupBox,
QHBoxLayout, QLabel, QMenu, QScrollArea, QSplitter, QToolBar, QToolButton,
@@ -41,10 +41,10 @@ from PyQt5.QtWidgets import (
)
from novelwriter import CONFIG, SHARED
+from novelwriter.common import checkInt, formatFileFilter, makeFileNameSafe
+from novelwriter.constants import nwHeaders, nwKeyWords, nwLabels, trConst
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.configlayout import NColourLabel
from novelwriter.extensions.novelselector import NovelSelector
from novelwriter.types import (
@@ -52,7 +52,6 @@ from novelwriter.types import (
QtSizeExpanding, QtUserRole
)
-
logger = logging.getLogger(__name__)
@@ -195,8 +194,6 @@ class GuiOutlineView(QWidget):
self.outlineTree.refreshTree(rootHandle=(tHandle or None), overRide=True)
return
-# END Class GuiOutlineView
-
class GuiOutlineToolBar(QToolBar):
@@ -310,8 +307,6 @@ class GuiOutlineToolBar(QToolBar):
self.outlineExportRequest.emit()
return
-# END Class GuiOutlineToolBar
-
class GuiOutlineTree(QTreeWidget):
@@ -727,8 +722,6 @@ class GuiOutlineTree(QTreeWidget):
return
-# END Class GuiOutlineTree
-
class GuiOutlineHeaderMenu(QMenu):
@@ -771,8 +764,6 @@ class GuiOutlineHeaderMenu(QMenu):
return
-# END Class GuiOutlineHeaderMenu
-
class GuiOutlineDetails(QScrollArea):
@@ -1103,5 +1094,3 @@ class GuiOutlineDetails(QScrollArea):
return ", ".join(
[f"{tag}" for tag in refs.get(key, [])]
)
-
-# END Class GuiOutlineDetails
diff --git a/novelwriter/gui/projtree.py b/novelwriter/gui/projtree.py
index 34a324da..23806eea 100644
--- a/novelwriter/gui/projtree.py
+++ b/novelwriter/gui/projtree.py
@@ -243,8 +243,6 @@ class GuiProjectView(QWidget):
self.projTree.createNewNote(tag, itemClass)
return
-# END Class GuiProjectView
-
class GuiProjectToolBar(QWidget):
@@ -470,8 +468,6 @@ class GuiProjectToolBar(QWidget):
return
-# END Class GuiProjectToolBar
-
class GuiProjectTree(QTreeWidget):
@@ -1651,8 +1647,6 @@ class GuiProjectTree(QTreeWidget):
return
-# END Class GuiProjectTree
-
class _UpdatableMenu(QMenu):
@@ -1716,8 +1710,6 @@ class _UpdatableMenu(QMenu):
self.menuItemTriggered.emit(str(action.data()))
return
-# END Class _UpdatableMenu
-
class _TreeContextMenu(QMenu):
@@ -2069,5 +2061,3 @@ class _TreeContextMenu(QMenu):
else:
logger.info("Folder conversion cancelled")
return
-
-# END Class _TreeContextMenu
diff --git a/novelwriter/gui/search.py b/novelwriter/gui/search.py
index 17d18f53..f19c419d 100644
--- a/novelwriter/gui/search.py
+++ b/novelwriter/gui/search.py
@@ -358,5 +358,3 @@ class GuiProjectSearch(QWidget):
QApplication.processEvents()
return
-
-# END Class GuiProjectSearch
diff --git a/novelwriter/gui/sidebar.py b/novelwriter/gui/sidebar.py
index 0620ad2d..6f4669c7 100644
--- a/novelwriter/gui/sidebar.py
+++ b/novelwriter/gui/sidebar.py
@@ -150,8 +150,6 @@ class GuiSideBar(QWidget):
return
-# END Class GuiSideBar
-
class _PopRightMenu(QMenu):
@@ -162,5 +160,3 @@ class _PopRightMenu(QMenu):
offset = QPoint(parent.width(), parent.height() - self.height())
self.move(parent.mapToGlobal(offset))
return super(_PopRightMenu, self).event(event)
-
-# END Class _PopRightMenu
diff --git a/novelwriter/gui/statusbar.py b/novelwriter/gui/statusbar.py
index 6b51731a..755ee230 100644
--- a/novelwriter/gui/statusbar.py
+++ b/novelwriter/gui/statusbar.py
@@ -262,5 +262,3 @@ class GuiMainStatus(QStatusBar):
f" \u2013 Peak: {mem[1]:n}"
), 6000)
return
-
-# END Class GuiMainStatus
diff --git a/novelwriter/gui/theme.py b/novelwriter/gui/theme.py
index 8256bf5f..170bb452 100644
--- a/novelwriter/gui/theme.py
+++ b/novelwriter/gui/theme.py
@@ -795,8 +795,6 @@ class GuiIcons:
return self._noIcon
-# END Class GuiIcons
-
# =============================================================================================== #
# Module Functions
diff --git a/novelwriter/guimain.py b/novelwriter/guimain.py
index e35699e8..af9ad75f 100644
--- a/novelwriter/guimain.py
+++ b/novelwriter/guimain.py
@@ -1399,5 +1399,3 @@ class GuiMain(QMainWindow):
))
return None, None
return tHandle, sTitle
-
-# END Class GuiMain
diff --git a/novelwriter/shared.py b/novelwriter/shared.py
index 6586f676..e703eb2c 100644
--- a/novelwriter/shared.py
+++ b/novelwriter/shared.py
@@ -376,8 +376,6 @@ class SharedData(QObject):
widget.close()
return
-# END Class SharedData
-
class _GuiAlert(QMessageBox):
@@ -438,5 +436,3 @@ class _GuiAlert(QMessageBox):
self.setIconPixmap(self._theme.getPixmap("alert_question", (pSz, pSz)))
self.setWindowTitle(self.tr("Question"))
return
-
-# END Class _GuiAlert
diff --git a/novelwriter/tools/dictionaries.py b/novelwriter/tools/dictionaries.py
index 982ebcc9..9acc57f5 100644
--- a/novelwriter/tools/dictionaries.py
+++ b/novelwriter/tools/dictionaries.py
@@ -264,5 +264,3 @@ class GuiDictionaries(NNonBlockingDialog):
cursor.deleteChar()
self.infoBox.setTextCursor(cursor)
return
-
-# END Class GuiDictionaries
diff --git a/novelwriter/tools/lipsum.py b/novelwriter/tools/lipsum.py
index bce851f5..19b4cac9 100644
--- a/novelwriter/tools/lipsum.py
+++ b/novelwriter/tools/lipsum.py
@@ -23,8 +23,8 @@ along with this program. If not, see .
"""
from __future__ import annotations
-import random
import logging
+import random
from PyQt5.QtCore import Qt, pyqtSlot
from PyQt5.QtWidgets import (
@@ -35,7 +35,7 @@ from PyQt5.QtWidgets import (
from novelwriter import CONFIG, SHARED
from novelwriter.common import readTextFile
from novelwriter.extensions.switch import NSwitch
-from novelwriter.types import QtAlignLeft, QtAlignRight, QtRoleAction, QtDialogClose
+from novelwriter.types import QtAlignLeft, QtAlignRight, QtDialogClose, QtRoleAction
logger = logging.getLogger(__name__)
@@ -150,5 +150,3 @@ class GuiLipsum(QDialog):
self._lipsumText = "\n\n".join(lipsumText[0:pCount]) + "\n\n"
self.close()
return
-
-# END Class GuiLipsum
diff --git a/novelwriter/tools/manusbuild.py b/novelwriter/tools/manusbuild.py
index 8b6cdb0e..0af6ef52 100644
--- a/novelwriter/tools/manusbuild.py
+++ b/novelwriter/tools/manusbuild.py
@@ -403,5 +403,3 @@ class GuiManuscriptBuild(QDialog):
"""Open the build folder in the system's file explorer."""
openExternalPath(Path(self.buildPath.text()))
return
-
-# END Class GuiManuscriptBuild
diff --git a/novelwriter/tools/manuscript.py b/novelwriter/tools/manuscript.py
index 47bbdc10..6e17bed8 100644
--- a/novelwriter/tools/manuscript.py
+++ b/novelwriter/tools/manuscript.py
@@ -510,8 +510,6 @@ class GuiManuscript(NToolDialog):
return obj
return None
-# END Class GuiManuscript
-
class _DetailsWidget(QWidget):
@@ -653,8 +651,6 @@ class _DetailsWidget(QWidget):
return
-# END Class _DetailsWidget
-
class _OutlineWidget(QWidget):
@@ -734,8 +730,6 @@ class _OutlineWidget(QWidget):
self.outlineEntryClicked.emit(str(item.data(0, self.D_LINE)))
return
-# END Class _OutlineWidget
-
class _PreviewWidget(QTextBrowser):
@@ -961,8 +955,6 @@ class _PreviewWidget(QTextBrowser):
self.buildProgress.move((vW-pS)//2, (vH-pS)//2)
return
-# END Class _PreviewWidget
-
class _StatsWidget(QWidget):
@@ -1136,5 +1128,3 @@ class _StatsWidget(QWidget):
self.maxWidget.setLayout(self.maxLayout)
return
-
-# END Class _StatsWidget
diff --git a/novelwriter/tools/manussettings.py b/novelwriter/tools/manussettings.py
index b3f7d1d5..963da221 100644
--- a/novelwriter/tools/manussettings.py
+++ b/novelwriter/tools/manussettings.py
@@ -278,8 +278,6 @@ class GuiBuildSettings(NToolDialog):
self._build.resetChangedState()
return
-# END Class GuiBuildSettings
-
class _FilterTab(NFixedPage):
@@ -574,8 +572,6 @@ class _FilterTab(NFixedPage):
self._scanChildren(item.child(i), items)
return items
-# END Class _FilterTab
-
class _HeadingsTab(NScrollablePage):
@@ -941,8 +937,6 @@ class _HeadingsTab(NScrollablePage):
return
-# END Class _HeadingsTab
-
class _HeadingSyntaxHighlighter(QSyntaxHighlighter):
@@ -967,8 +961,6 @@ class _HeadingSyntaxHighlighter(QSyntaxHighlighter):
self.setFormat(pos + ddots, 1, self._fmtSymbol)
return
-# END Class _HeadingSyntaxHighlighter
-
class _ContentTab(NScrollableForm):
@@ -1052,8 +1044,6 @@ class _ContentTab(NScrollableForm):
self.ignoredKeywords.setText(", ".join(verified))
return
-# END Class _ContentTab
-
class _FormatTab(NScrollableForm):
@@ -1346,8 +1336,6 @@ class _FormatTab(NScrollableForm):
self.pageSize.setCurrentIndex(index)
return
-# END Class _FormatTab
-
class _OutputTab(NScrollableForm):
@@ -1432,5 +1420,3 @@ class _OutputTab(NScrollableForm):
self.odtPageHeader.setText(nwHeadFmt.ODT_AUTO)
self.odtPageHeader.setCursorPosition(0)
return
-
-# END Class _OutputTab
diff --git a/novelwriter/tools/noveldetails.py b/novelwriter/tools/noveldetails.py
index 91d95651..dc2ac3c2 100644
--- a/novelwriter/tools/noveldetails.py
+++ b/novelwriter/tools/noveldetails.py
@@ -186,8 +186,6 @@ class GuiNovelDetails(NNonBlockingDialog):
return
-# END Class GuiNovelDetails
-
class _OverviewPage(NScrollablePage):
@@ -294,8 +292,6 @@ class _OverviewPage(NScrollablePage):
return
-# END Class _OverviewPage
-
class _ContentsPage(NFixedPage):
@@ -524,5 +520,3 @@ class _ContentsPage(NFixedPage):
self._data = SHARED.project.index.getTableOfContents(rootHandle, 2)
self._data.append(("", 0, self.tr("END"), 0))
return
-
-# END Class _ContentsPage
diff --git a/novelwriter/tools/welcome.py b/novelwriter/tools/welcome.py
index ce37539b..bb291441 100644
--- a/novelwriter/tools/welcome.py
+++ b/novelwriter/tools/welcome.py
@@ -32,11 +32,11 @@ from PyQt5.QtCore import (
QAbstractListModel, QEvent, QModelIndex, QObject, QPoint, QSize, Qt,
pyqtSignal, pyqtSlot
)
-from PyQt5.QtGui import QCloseEvent, QColor, QFont, QPaintEvent, QPainter, QPen
+from PyQt5.QtGui import QCloseEvent, QColor, QFont, QPainter, QPaintEvent, QPen
from PyQt5.QtWidgets import (
QAction, QApplication, QDialog, QFileDialog, QFormLayout, QHBoxLayout,
QLabel, QLineEdit, QListView, QMenu, QPushButton, QScrollArea, QShortcut,
- QStackedWidget, QStyleOptionViewItem, QStyledItemDelegate, QVBoxLayout,
+ QStackedWidget, QStyledItemDelegate, QStyleOptionViewItem, QVBoxLayout,
QWidget
)
@@ -267,8 +267,6 @@ class GuiWelcome(QDialog):
self.btnCreate.setFocus()
return
-# END Class GuiWelcome
-
class _OpenProjectPage(QWidget):
@@ -392,8 +390,6 @@ class _OpenProjectPage(QWidget):
self._projectClicked(index)
return
-# END Class _OpenProjectPage
-
class _ProjectListItem(QStyledItemDelegate):
@@ -450,8 +446,6 @@ class _ProjectListItem(QStyledItemDelegate):
"""Set the size hint to fixed height."""
return QSize(opt.rect.width(), self._hPx)
-# END Class _ProjectListItem
-
class _ProjectListModel(QAbstractListModel):
@@ -491,8 +485,6 @@ class _ProjectListModel(QAbstractListModel):
return True
return False
-# END Class _ProjectListModel
-
class _NewProjectPage(QWidget):
@@ -548,8 +540,6 @@ class _NewProjectPage(QWidget):
self.openProjectRequest.emit(path)
return
-# END Class _NewProjectPage
-
class _NewProjectForm(QWidget):
@@ -805,8 +795,6 @@ class _NewProjectForm(QWidget):
return
-# END Class _NewProjectForm
-
class _PopLeftDirectionMenu(QMenu):
@@ -817,5 +805,3 @@ class _PopLeftDirectionMenu(QMenu):
offset = QPoint(parent.width() - self.width(), parent.height())
self.move(parent.mapToGlobal(offset))
return super(_PopLeftDirectionMenu, self).event(event)
-
-# END Class _PopLeftDirectionMenu
diff --git a/novelwriter/tools/writingstats.py b/novelwriter/tools/writingstats.py
index cc59f9f0..c0b63085 100644
--- a/novelwriter/tools/writingstats.py
+++ b/novelwriter/tools/writingstats.py
@@ -614,5 +614,3 @@ class GuiWritingStats(NToolDialog):
self.labelFilter.setText(formatTime(round(self.timeFilter)))
return
-
-# END Class GuiWritingStats
diff --git a/pkgutils.py b/pkgutils.py
index 5409007a..8ebd9d4f 100755
--- a/pkgutils.py
+++ b/pkgutils.py
@@ -1718,5 +1718,3 @@ if __name__ == "__main__":
sys.exit(1)
else:
xdgUninstall()
-
-# END Main
diff --git a/tests/mocked.py b/tests/mocked.py
index 5f9fc6a3..545a32ce 100644
--- a/tests/mocked.py
+++ b/tests/mocked.py
@@ -23,11 +23,11 @@ from __future__ import annotations
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QWidget
-
# =========================================================================== #
# Mock GUI
# =========================================================================== #
+
class MockGuiMain(QWidget):
def __init__(self):
@@ -55,8 +55,6 @@ class MockGuiMain(QWidget):
def close(self):
return "close"
-# END Class MockGuiMain
-
class MockStatusBar:
@@ -69,8 +67,6 @@ class MockStatusBar:
def updateProjectStatus(self, status):
return
-# END Class MockStatusBar
-
class MockTheme:
@@ -81,8 +77,6 @@ class MockTheme:
def getPixmap(self, *a):
return QPixmap()
-# END Class MockTheme
-
class MockApp:
@@ -92,8 +86,6 @@ class MockApp:
def installTranslator(self, language):
return
-# END Class MockApp
-
# =========================================================================== #
# Error Functions
diff --git a/tests/test_ext/test_ext_modified.py b/tests/test_ext/test_ext_modified.py
index 7ea40755..151e3be9 100644
--- a/tests/test_ext/test_ext_modified.py
+++ b/tests/test_ext/test_ext_modified.py
@@ -22,10 +22,9 @@ from __future__ import annotations
import pytest
-from tools import SimpleDialog
-
-from PyQt5.QtGui import QWheelEvent
from PyQt5.QtCore import QPoint, QPointF, Qt
+from PyQt5.QtGui import QWheelEvent
+from tools import SimpleDialog
from novelwriter.extensions.modified import NComboBox, NDoubleSpinBox, NSpinBox
@@ -46,8 +45,6 @@ class MockWheelEvent(QWheelEvent):
self.ignored = True
return
-# END Class MockWheelEvent
-
@pytest.mark.gui
def testExtModified_NComboBox(qtbot, monkeypatch):
diff --git a/tests/tools.py b/tests/tools.py
index 835a61f5..1d62562d 100644
--- a/tests/tools.py
+++ b/tests/tools.py
@@ -22,8 +22,8 @@ from __future__ import annotations
import shutil
-from pathlib import Path
from datetime import datetime
+from pathlib import Path
from PyQt5.QtWidgets import QDialog, QVBoxLayout, QWidget
@@ -57,8 +57,6 @@ class C:
hChapterDoc = "000000000000e"
hSceneDoc = "000000000000f"
-# END Class C
-
def cmpFiles(
fileOne: str | Path, fileTwo: str | Path,
@@ -148,9 +146,9 @@ def buildTestProject(obj: object, projPath: Path) -> None:
"""Build a standard test project in projPath using the project
object as the parent.
"""
+ from novelwriter.core.project import NWProject
from novelwriter.enum import nwItemClass
from novelwriter.guimain import GuiMain
- from novelwriter.core.project import NWProject
if isinstance(obj, NWProject):
nwGUI = None
@@ -220,5 +218,3 @@ class SimpleDialog(QDialog):
@property
def widget(self) -> QWidget:
return self._widget
-
-# END Class TestDialog