Remove main gui inheritance in manuscript tools

This commit is contained in:
Veronica Berglyd Olsen
2024-05-01 19:43:51 +02:00
parent aa7208b602
commit 600b60b441
3 changed files with 24 additions and 35 deletions
+10 -16
View File
@@ -28,16 +28,15 @@ import logging
from datetime import datetime
from time import time
from typing import TYPE_CHECKING
from PyQt5.QtCore import QTimer, QUrl, Qt, pyqtSignal, pyqtSlot
from PyQt5.QtCore import Qt, QTimer, QUrl, pyqtSignal, pyqtSlot
from PyQt5.QtGui import QCloseEvent, QColor, QCursor, QFont, QPalette, QResizeEvent
from PyQt5.QtPrintSupport import QPrintPreviewDialog, QPrinter
from PyQt5.QtPrintSupport import QPrinter, QPrintPreviewDialog
from PyQt5.QtWidgets import (
QAbstractItemView, QApplication, QDialog, QFormLayout, QGridLayout,
QHBoxLayout, QLabel, QListWidget, QListWidgetItem, QPushButton,
QSplitter, QStackedWidget, QTabWidget, QTextBrowser, QTreeWidget,
QTreeWidgetItem, QVBoxLayout, QWidget
QHBoxLayout, QLabel, QListWidget, QListWidgetItem, QPushButton, QSplitter,
QStackedWidget, QTabWidget, QTextBrowser, QTreeWidget, QTreeWidgetItem,
QVBoxLayout, QWidget
)
from novelwriter import CONFIG, SHARED
@@ -57,9 +56,6 @@ from novelwriter.types import (
QtSizeExpanding, QtSizeIgnored, QtUserRole
)
if TYPE_CHECKING: # pragma: no cover
from novelwriter.guimain import GuiMain
logger = logging.getLogger(__name__)
@@ -73,16 +69,14 @@ class GuiManuscript(QDialog):
D_KEY = QtUserRole
def __init__(self, mainGui: GuiMain) -> None:
super().__init__(parent=mainGui)
def __init__(self, parent: QWidget) -> None:
super().__init__(parent=parent)
logger.debug("Create: GuiManuscript")
self.setObjectName("GuiManuscript")
if CONFIG.osDarwin:
self.setWindowFlag(Qt.WindowType.Tool)
self.mainGui = mainGui
self._builds = BuildCollection(SHARED.project)
self._buildMap: dict[str, QListWidgetItem] = {}
@@ -280,7 +274,7 @@ class GuiManuscript(QDialog):
dialog open.
"""
self._saveSettings()
for obj in self.mainGui.children():
for obj in SHARED.mainGui.children():
# Make sure we don't have any settings windows open
if isinstance(obj, GuiBuildSettings) and obj.isVisible():
obj.close()
@@ -467,7 +461,7 @@ class GuiManuscript(QDialog):
def _openSettingsDialog(self, build: BuildSettings) -> None:
"""Open the build settings dialog."""
for obj in self.mainGui.children():
for obj in SHARED.mainGui.children():
# Don't open a second dialog if one exists
if isinstance(obj, GuiBuildSettings):
if obj.buildID == build.buildID:
@@ -476,7 +470,7 @@ class GuiManuscript(QDialog):
obj.raise_()
return
dlgSettings = GuiBuildSettings(self.mainGui, build)
dlgSettings = GuiBuildSettings(SHARED.mainGui, build)
dlgSettings.setModal(False)
dlgSettings.show()
dlgSettings.raise_()
+12 -17
View File
@@ -25,8 +25,6 @@ from __future__ import annotations
import logging
from typing import TYPE_CHECKING
from PyQt5.QtCore import QEvent, Qt, pyqtSignal, pyqtSlot
from PyQt5.QtGui import QFont, QIcon, QSyntaxHighlighter, QTextCharFormat, QTextDocument
from PyQt5.QtWidgets import (
@@ -51,9 +49,6 @@ from novelwriter.types import (
QtRoleApply, QtRoleReject, QtUserRole
)
if TYPE_CHECKING: # pragma: no cover
from novelwriter.guimain import GuiMain
logger = logging.getLogger(__name__)
@@ -72,8 +67,8 @@ class GuiBuildSettings(QDialog):
newSettingsReady = pyqtSignal(BuildSettings)
def __init__(self, mainGui: GuiMain, build: BuildSettings) -> None:
super().__init__(parent=mainGui)
def __init__(self, parent: QWidget, build: BuildSettings) -> None:
super().__init__(parent=parent)
logger.debug("Create: GuiBuildSettings")
self.setObjectName("GuiBuildSettings")
@@ -296,8 +291,8 @@ class _FilterTab(NFixedPage):
F_INCLUDED = 2
F_EXCLUDED = 3
def __init__(self, buildMain: GuiBuildSettings, build: BuildSettings) -> None:
super().__init__(parent=buildMain)
def __init__(self, parent: QWidget, build: BuildSettings) -> None:
super().__init__(parent=parent)
self._treeMap: dict[str, QTreeWidgetItem] = {}
self._build = build
@@ -586,8 +581,8 @@ class _HeadingsTab(NScrollablePage):
EDIT_HSCENE = 5
EDIT_SECTION = 6
def __init__(self, buildMain: GuiBuildSettings, build: BuildSettings) -> None:
super().__init__(parent=buildMain)
def __init__(self, parent: QWidget, build: BuildSettings) -> None:
super().__init__(parent=parent)
self._build = build
self._editing = 0
@@ -972,8 +967,8 @@ class _HeadingSyntaxHighlighter(QSyntaxHighlighter):
class _ContentTab(NScrollableForm):
def __init__(self, buildMain: GuiBuildSettings, build: BuildSettings) -> None:
super().__init__(parent=buildMain)
def __init__(self, parent: QWidget, build: BuildSettings) -> None:
super().__init__(parent=parent)
self._build = build
@@ -1057,8 +1052,8 @@ class _ContentTab(NScrollableForm):
class _FormatTab(NScrollableForm):
def __init__(self, buildMain: GuiBuildSettings, build: BuildSettings) -> None:
super().__init__(parent=buildMain)
def __init__(self, parent: QWidget, build: BuildSettings) -> None:
super().__init__(parent=parent)
self._build = build
self._unitScale = 1.0
@@ -1324,8 +1319,8 @@ class _FormatTab(NScrollableForm):
class _OutputTab(NScrollableForm):
def __init__(self, buildMain: GuiBuildSettings, build: BuildSettings) -> None:
super().__init__(parent=buildMain)
def __init__(self, parent: QWidget, build: BuildSettings) -> None:
super().__init__(parent=parent)
self._build = build
+2 -2
View File
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8'?>
<novelWriterXML appVersion="2.5a2" hexVersion="0x020500a1" fileVersion="1.5" fileRevision="4" timeStamp="2024-04-18 17:57:37">
<project id="e2be99af-f9bf-4403-857a-c3d1ac25abea" saveCount="1916" autoCount="274" editTime="87487">
<novelWriterXML appVersion="2.5a3" hexVersion="0x020500a3" fileVersion="1.5" fileRevision="4" timeStamp="2024-05-01 19:43:08">
<project id="e2be99af-f9bf-4403-857a-c3d1ac25abea" saveCount="1917" autoCount="274" editTime="87503">
<name>Sample Project</name>
<author>Jane Smith</author>
</project>