From 8f9a55c5ca9f9d9d70255688e35397b236926e58 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Wed, 1 May 2024 19:12:27 +0200 Subject: [PATCH 1/4] Add tools settings to pyproject --- pyproject.toml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index b6d40d9d..f8c894ca 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -46,3 +46,22 @@ include = ["novelwriter*"] [project.gui-scripts] novelwriter = "novelwriter:main" + +[tool.isort] +py_version="310" +line_length = 99 +wrap_length = 79 +multi_line_output = 5 +force_grid_wrap = 0 +lines_between_types = 1 +forced_separate = ["tests.*"] + +[tool.flake8] +max-line-length = 99 +ignore = ["E133", "E221", "E226", "E228", "E241", "W503", "ANN101", "ANN102", "ANN401"] +per-file-ignores = ["tests/*:ANN"] +exclude = ["docs/*"] + +[tool.autopep8] +max_line_length = 99 +ignore = ["E133", "E221", "E226", "E228", "E241", "W503"] From 7c9c5a9a7659696520610ba28974c42f5e8ea13b Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Wed, 1 May 2024 19:12:45 +0200 Subject: [PATCH 2/4] Fix garbage collection blocker in build settings --- novelwriter/tools/manussettings.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/novelwriter/tools/manussettings.py b/novelwriter/tools/manussettings.py index 18786ffa..a27c011f 100644 --- a/novelwriter/tools/manussettings.py +++ b/novelwriter/tools/manussettings.py @@ -27,13 +27,13 @@ import logging from typing import TYPE_CHECKING -from PyQt5.QtGui import QFont, QIcon, QSyntaxHighlighter, QTextCharFormat, QTextDocument from PyQt5.QtCore import QEvent, Qt, pyqtSignal, pyqtSlot +from PyQt5.QtGui import QFont, QIcon, QSyntaxHighlighter, QTextCharFormat, QTextDocument from PyQt5.QtWidgets import ( - QAbstractButton, QAbstractItemView, QDialog, QDialogButtonBox, - QFontDialog, QFrame, QGridLayout, QHBoxLayout, QHeaderView, QLabel, - QLineEdit, QMenu, QPlainTextEdit, QPushButton, QSplitter, QStackedWidget, - QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget + QAbstractButton, QAbstractItemView, QDialog, QDialogButtonBox, QFontDialog, + QFrame, QGridLayout, QHBoxLayout, QHeaderView, QLabel, QLineEdit, QMenu, + QPlainTextEdit, QPushButton, QSplitter, QStackedWidget, QTreeWidget, + QTreeWidgetItem, QVBoxLayout, QWidget ) from novelwriter import CONFIG, SHARED @@ -1060,8 +1060,6 @@ class _FormatTab(NScrollableForm): def __init__(self, buildMain: GuiBuildSettings, build: BuildSettings) -> None: super().__init__(parent=buildMain) - self.buildMain = buildMain - self._build = build self._unitScale = 1.0 From dd3c8dfac831c55259827b317bcf8954bfd241a3 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Wed, 1 May 2024 19:22:22 +0200 Subject: [PATCH 3/4] Use GUI font for the header and footer in the editor and viewer (#1842) --- novelwriter/gui/doceditor.py | 8 ++++---- novelwriter/gui/docviewer.py | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/novelwriter/gui/doceditor.py b/novelwriter/gui/doceditor.py index 08a963e7..29e83a0b 100644 --- a/novelwriter/gui/doceditor.py +++ b/novelwriter/gui/doceditor.py @@ -39,8 +39,8 @@ from time import time from typing import TYPE_CHECKING from PyQt5.QtCore import ( - pyqtSignal, pyqtSlot, QObject, QPoint, QRegExp, QRegularExpression, - QRunnable, Qt, QTimer + QObject, QPoint, QRegExp, QRegularExpression, QRunnable, Qt, QTimer, + pyqtSignal, pyqtSlot ) from PyQt5.QtGui import ( QColor, QCursor, QFont, QKeyEvent, QKeySequence, QMouseEvent, QPalette, @@ -65,7 +65,7 @@ from novelwriter.text.counting import standardCounter from novelwriter.tools.lipsum import GuiLipsum from novelwriter.types import ( QtAlignCenterTop, QtAlignJustify, QtAlignLeft, QtAlignLeftTop, - QtAlignRight, QtKeepAnchor, QtModCtrl, QtMouseLeft, QtModeNone, QtModShift, + QtAlignRight, QtKeepAnchor, QtModCtrl, QtModeNone, QtModShift, QtMouseLeft, QtMoveAnchor, QtMoveLeft, QtMoveRight ) @@ -334,7 +334,7 @@ class GuiDocEditor(QPlainTextEdit): font = QFont() font.setFamily(CONFIG.textFont) font.setPointSize(CONFIG.textSize) - self.setFont(font) + self._qDocument.setDefaultFont(font) # Set default text margins # Due to cursor visibility, a part of the margin must be diff --git a/novelwriter/gui/docviewer.py b/novelwriter/gui/docviewer.py index bc5caeb5..f5fbec42 100644 --- a/novelwriter/gui/docviewer.py +++ b/novelwriter/gui/docviewer.py @@ -30,7 +30,7 @@ import logging from enum import Enum -from PyQt5.QtCore import pyqtSignal, pyqtSlot, QPoint, Qt, QUrl +from PyQt5.QtCore import QPoint, Qt, QUrl, pyqtSignal, pyqtSlot from PyQt5.QtGui import ( QCursor, QFont, QMouseEvent, QPalette, QResizeEvent, QTextCursor, QTextOption @@ -44,7 +44,7 @@ from novelwriter import CONFIG, SHARED from novelwriter.common import cssCol from novelwriter.constants import nwHeaders, nwUnicode from novelwriter.core.tohtml import ToHtml -from novelwriter.enum import nwItemType, nwDocAction, nwDocMode +from novelwriter.enum import nwDocAction, nwDocMode, nwItemType from novelwriter.error import logException from novelwriter.extensions.eventfilters import WheelEventFilter from novelwriter.extensions.modified import NIconToolButton @@ -146,7 +146,7 @@ class GuiDocViewer(QTextBrowser): font = QFont() font.setFamily(CONFIG.textFont) font.setPointSize(CONFIG.textSize) - self.setFont(font) + self.document().setDefaultFont(font) # Set the widget colours to match syntax theme mainPalette = self.palette() From d01c1e867d509dcb0dce8a8c882cd10b2427c531 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Wed, 1 May 2024 19:26:59 +0200 Subject: [PATCH 4/4] Pin MacOS tests to macos-13 image --- .github/workflows/test_mac.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_mac.yml b/.github/workflows/test_mac.yml index de4aebc5..64c3dfa8 100644 --- a/.github/workflows/test_mac.yml +++ b/.github/workflows/test_mac.yml @@ -12,7 +12,7 @@ on: jobs: testMac: - runs-on: macos-latest + runs-on: macos-13 steps: - name: Python Setup uses: actions/setup-python@v5