Move GUI theme instance to the config object (after app creation)

This commit is contained in:
Veronica Berglyd Olsen
2023-08-08 14:35:55 +02:00
parent c50c8ee73a
commit 94c95d6f67
30 changed files with 319 additions and 390 deletions
+19 -3
View File
@@ -28,6 +28,7 @@ import json
import logging import logging
from time import time from time import time
from typing import TYPE_CHECKING
from pathlib import Path from pathlib import Path
from PyQt5.QtGui import QFontDatabase from PyQt5.QtGui import QFontDatabase
@@ -40,6 +41,9 @@ from novelwriter.error import logException, formatException
from novelwriter.common import checkPath, formatTimeStamp, NWConfigParser from novelwriter.common import checkPath, formatTimeStamp, NWConfigParser
from novelwriter.constants import nwFiles, nwUnicode from novelwriter.constants import nwFiles, nwUnicode
if TYPE_CHECKING: # pragma: no cover
from novelwriter.gui.theme import GuiTheme
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -90,7 +94,8 @@ class Config:
# User Settings # User Settings
# ============= # =============
self._recentProj = RecentProjects(self) self._theme = None
self._recent = RecentProjects(self)
# General GUI Settings # General GUI Settings
self.guiLocale = self._qLocale.name() self.guiLocale = self._qLocale.name()
@@ -233,7 +238,13 @@ class Config:
@property @property
def recentProjects(self): def recentProjects(self):
return self._recentProj return self._recent
@property
def theme(self) -> GuiTheme:
if self._theme is None:
raise Exception("Cannot access GUI theme before it is initialised")
return self._theme
@property @property
def mainWinSize(self): def mainWinSize(self):
@@ -282,6 +293,11 @@ class Config:
# Setters # Setters
## ##
def setThemeInstance(self, theme: GuiTheme) -> None:
"""Set the applications theme instance."""
self._theme = theme
return
def setMainWinSize(self, newWidth, newHeight): def setMainWinSize(self, newWidth, newHeight):
"""Set the size of the main window, but only if the change is """Set the size of the main window, but only if the change is
larger than 5 pixels. The OS window manager will sometimes larger than 5 pixels. The OS window manager will sometimes
@@ -479,7 +495,7 @@ class Config:
else: else:
self.saveConfig() self.saveConfig()
self._recentProj.loadCache() self._recent.loadCache()
self._checkOptionalPackages() self._checkOptionalPackages()
logger.debug("Config initialisation complete") logger.debug("Config initialisation complete")
+12 -15
View File
@@ -1,7 +1,6 @@
""" """
novelWriter GUI About Box novelWriter GUI About Box
=========================== ===========================
The about novelWriter dialog box
File History: File History:
Created: 2020-05-21 [0.5.2] Created: 2020-05-21 [0.5.2]
@@ -22,6 +21,7 @@ General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
""" """
from __future__ import annotations
import logging import logging
import novelwriter import novelwriter
@@ -31,8 +31,8 @@ from datetime import datetime
from PyQt5.QtGui import QCursor from PyQt5.QtGui import QCursor
from PyQt5.QtCore import Qt from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import ( from PyQt5.QtWidgets import (
qApp, QDialog, QHBoxLayout, QVBoxLayout, QDialogButtonBox, QTabWidget, qApp, QDialog, QDialogButtonBox, QHBoxLayout, QLabel, QTabWidget,
QTextBrowser, QLabel QTextBrowser, QVBoxLayout, QWidget
) )
from novelwriter import CONFIG from novelwriter import CONFIG
@@ -44,15 +44,12 @@ logger = logging.getLogger(__name__)
class GuiAbout(QDialog): class GuiAbout(QDialog):
def __init__(self, mainGui): def __init__(self, parent: QWidget):
super().__init__(parent=mainGui) super().__init__(parent=parent)
logger.debug("Create: GuiAbout") logger.debug("Create: GuiAbout")
self.setObjectName("GuiAbout") self.setObjectName("GuiAbout")
self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.outerBox = QVBoxLayout() self.outerBox = QVBoxLayout()
self.innerBox = QHBoxLayout() self.innerBox = QHBoxLayout()
self.innerBox.setSpacing(CONFIG.pxInt(16)) self.innerBox.setSpacing(CONFIG.pxInt(16))
@@ -63,7 +60,7 @@ class GuiAbout(QDialog):
nPx = CONFIG.pxInt(96) nPx = CONFIG.pxInt(96)
self.nwIcon = QLabel() self.nwIcon = QLabel()
self.nwIcon.setPixmap(self.mainGui.mainTheme.getPixmap("novelwriter", (nPx, nPx))) self.nwIcon.setPixmap(CONFIG.theme.getPixmap("novelwriter", (nPx, nPx)))
self.lblName = QLabel("<b>novelWriter</b>") self.lblName = QLabel("<b>novelWriter</b>")
self.lblVers = QLabel(f"v{novelwriter.__version__}") self.lblVers = QLabel(f"v{novelwriter.__version__}")
self.lblDate = QLabel(datetime.strptime(novelwriter.__date__, "%Y-%m-%d").strftime("%x")) self.lblDate = QLabel(datetime.strptime(novelwriter.__date__, "%Y-%m-%d").strftime("%x"))
@@ -231,12 +228,12 @@ class GuiAbout(QDialog):
" color: rgb({kColR},{kColG},{kColB});" " color: rgb({kColR},{kColG},{kColB});"
"}}\n" "}}\n"
).format( ).format(
hColR=self.mainGui.mainTheme.colHead[0], hColR=CONFIG.theme.colHead[0],
hColG=self.mainGui.mainTheme.colHead[1], hColG=CONFIG.theme.colHead[1],
hColB=self.mainGui.mainTheme.colHead[2], hColB=CONFIG.theme.colHead[2],
kColR=self.mainTheme.colKey[0], kColR=CONFIG.theme.colKey[0],
kColG=self.mainTheme.colKey[1], kColG=CONFIG.theme.colKey[1],
kColB=self.mainTheme.colKey[2], kColB=CONFIG.theme.colKey[2],
) )
self.pageAbout.document().setDefaultStyleSheet(styleSheet) self.pageAbout.document().setDefaultStyleSheet(styleSheet)
self.pageNotes.document().setDefaultStyleSheet(styleSheet) self.pageNotes.document().setDefaultStyleSheet(styleSheet)
+3 -4
View File
@@ -50,7 +50,6 @@ class GuiDocMerge(QDialog):
self.setObjectName("GuiDocMerge") self.setObjectName("GuiDocMerge")
self.mainGui = mainGui self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.theProject = mainGui.theProject self.theProject = mainGui.theProject
self._data = {} self._data = {}
@@ -60,9 +59,9 @@ class GuiDocMerge(QDialog):
self.headLabel = QLabel("<b>{0}</b>".format(self.tr("Documents to Merge"))) self.headLabel = QLabel("<b>{0}</b>".format(self.tr("Documents to Merge")))
self.helpLabel = NHelpLabel(self.tr( self.helpLabel = NHelpLabel(self.tr(
"Drag and drop items to change the order, or uncheck to exclude." "Drag and drop items to change the order, or uncheck to exclude."
), self.mainTheme.helpText) ), CONFIG.theme.helpText)
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
hSp = CONFIG.pxInt(12) hSp = CONFIG.pxInt(12)
vSp = CONFIG.pxInt(8) vSp = CONFIG.pxInt(8)
bSp = CONFIG.pxInt(12) bSp = CONFIG.pxInt(12)
@@ -161,7 +160,7 @@ class GuiDocMerge(QDialog):
if nwItem is None or not nwItem.isFileType(): if nwItem is None or not nwItem.isFileType():
continue continue
itemIcon = self.mainTheme.getItemIcon( itemIcon = CONFIG.theme.getItemIcon(
nwItem.itemType, nwItem.itemClass, nwItem.itemLayout, nwItem.mainHeading nwItem.itemType, nwItem.itemClass, nwItem.itemLayout, nwItem.mainHeading
) )
+2 -3
View File
@@ -52,7 +52,6 @@ class GuiDocSplit(QDialog):
self.setObjectName("GuiDocSplit") self.setObjectName("GuiDocSplit")
self.mainGui = mainGui self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.theProject = mainGui.theProject self.theProject = mainGui.theProject
self._data = {} self._data = {}
@@ -63,11 +62,11 @@ class GuiDocSplit(QDialog):
self.headLabel = QLabel("<b>{0}</b>".format(self.tr("Document Headers"))) self.headLabel = QLabel("<b>{0}</b>".format(self.tr("Document Headers")))
self.helpLabel = NHelpLabel( self.helpLabel = NHelpLabel(
self.tr("Select the maximum level to split into files."), self.tr("Select the maximum level to split into files."),
self.mainGui.mainTheme.helpText CONFIG.theme.helpText
) )
# Values # Values
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
hSp = CONFIG.pxInt(12) hSp = CONFIG.pxInt(12)
vSp = CONFIG.pxInt(8) vSp = CONFIG.pxInt(8)
bSp = CONFIG.pxInt(12) bSp = CONFIG.pxInt(12)
+15 -32
View File
@@ -160,13 +160,11 @@ class GuiPreferencesGeneral(QWidget):
def __init__(self, prefsGui): def __init__(self, prefsGui):
super().__init__(parent=prefsGui) super().__init__(parent=prefsGui)
self.prefsGui = prefsGui self.prefsGui = prefsGui
self.mainGui = prefsGui.mainGui
self.mainTheme = prefsGui.mainGui.mainTheme
# The Form # The Form
self.mainForm = NConfigLayout() self.mainForm = NConfigLayout()
self.mainForm.setHelpTextStyle(self.mainTheme.helpText) self.mainForm.setHelpTextStyle(CONFIG.theme.helpText)
self.setLayout(self.mainForm) self.setLayout(self.mainForm)
# Look and Feel # Look and Feel
@@ -193,7 +191,7 @@ class GuiPreferencesGeneral(QWidget):
# Select Theme # Select Theme
self.guiTheme = QComboBox() self.guiTheme = QComboBox()
self.guiTheme.setMinimumWidth(minWidth) self.guiTheme.setMinimumWidth(minWidth)
self.theThemes = self.mainTheme.listThemes() self.theThemes = CONFIG.theme.listThemes()
for themeDir, themeName in self.theThemes: for themeDir, themeName in self.theThemes:
self.guiTheme.addItem(themeName, themeDir) self.guiTheme.addItem(themeName, themeDir)
themeIdx = self.guiTheme.findData(CONFIG.guiTheme) themeIdx = self.guiTheme.findData(CONFIG.guiTheme)
@@ -209,7 +207,7 @@ class GuiPreferencesGeneral(QWidget):
# Editor Theme # Editor Theme
self.guiSyntax = QComboBox() self.guiSyntax = QComboBox()
self.guiSyntax.setMinimumWidth(CONFIG.pxInt(200)) self.guiSyntax.setMinimumWidth(CONFIG.pxInt(200))
self.theSyntaxes = self.mainTheme.listSyntax() self.theSyntaxes = CONFIG.theme.listSyntax()
for syntaxFile, syntaxName in self.theSyntaxes: for syntaxFile, syntaxName in self.theSyntaxes:
self.guiSyntax.addItem(syntaxName, syntaxFile) self.guiSyntax.addItem(syntaxName, syntaxFile)
syntaxIdx = self.guiSyntax.findData(CONFIG.guiSyntax) syntaxIdx = self.guiSyntax.findData(CONFIG.guiSyntax)
@@ -228,7 +226,7 @@ class GuiPreferencesGeneral(QWidget):
self.guiFont.setFixedWidth(CONFIG.pxInt(162)) self.guiFont.setFixedWidth(CONFIG.pxInt(162))
self.guiFont.setText(CONFIG.guiFont) self.guiFont.setText(CONFIG.guiFont)
self.fontButton = QPushButton("...") self.fontButton = QPushButton("...")
self.fontButton.setMaximumWidth(int(2.5*self.mainTheme.getTextWidth("..."))) self.fontButton.setMaximumWidth(int(2.5*CONFIG.theme.getTextWidth("...")))
self.fontButton.clicked.connect(self._selectFont) self.fontButton.clicked.connect(self._selectFont)
self.mainForm.addRow( self.mainForm.addRow(
self.tr("Font family"), self.tr("Font family"),
@@ -342,12 +340,9 @@ class GuiPreferencesProjects(QWidget):
def __init__(self, prefsGui): def __init__(self, prefsGui):
super().__init__(parent=prefsGui) super().__init__(parent=prefsGui)
self.mainGui = prefsGui.mainGui
self.mainTheme = prefsGui.mainGui.mainTheme
# The Form # The Form
self.mainForm = NConfigLayout() self.mainForm = NConfigLayout()
self.mainForm.setHelpTextStyle(self.mainTheme.helpText) self.mainForm.setHelpTextStyle(CONFIG.theme.helpText)
self.setLayout(self.mainForm) self.setLayout(self.mainForm)
# Automatic Save # Automatic Save
@@ -497,12 +492,9 @@ class GuiPreferencesDocuments(QWidget):
def __init__(self, prefsGui): def __init__(self, prefsGui):
super().__init__(parent=prefsGui) super().__init__(parent=prefsGui)
self.mainGui = prefsGui.mainGui
self.mainTheme = prefsGui.mainGui.mainTheme
# The Form # The Form
self.mainForm = NConfigLayout() self.mainForm = NConfigLayout()
self.mainForm.setHelpTextStyle(self.mainTheme.helpText) self.mainForm.setHelpTextStyle(CONFIG.theme.helpText)
self.setLayout(self.mainForm) self.setLayout(self.mainForm)
# Text Style # Text Style
@@ -515,7 +507,7 @@ class GuiPreferencesDocuments(QWidget):
self.textFont.setFixedWidth(CONFIG.pxInt(162)) self.textFont.setFixedWidth(CONFIG.pxInt(162))
self.textFont.setText(CONFIG.textFont) self.textFont.setText(CONFIG.textFont)
self.fontButton = QPushButton("...") self.fontButton = QPushButton("...")
self.fontButton.setMaximumWidth(int(2.5*self.mainTheme.getTextWidth("..."))) self.fontButton.setMaximumWidth(int(2.5*CONFIG.theme.getTextWidth("...")))
self.fontButton.clicked.connect(self._selectFont) self.fontButton.clicked.connect(self._selectFont)
self.mainForm.addRow( self.mainForm.addRow(
self.tr("Font family"), self.tr("Font family"),
@@ -654,12 +646,11 @@ class GuiPreferencesEditor(QWidget):
def __init__(self, prefsGui): def __init__(self, prefsGui):
super().__init__(parent=prefsGui) super().__init__(parent=prefsGui)
self.mainGui = prefsGui.mainGui self.mainGui = prefsGui.mainGui
self.mainTheme = prefsGui.mainGui.mainTheme
# The Form # The Form
self.mainForm = NConfigLayout() self.mainForm = NConfigLayout()
self.mainForm.setHelpTextStyle(self.mainTheme.helpText) self.mainForm.setHelpTextStyle(CONFIG.theme.helpText)
self.setLayout(self.mainForm) self.setLayout(self.mainForm)
mW = CONFIG.pxInt(250) mW = CONFIG.pxInt(250)
@@ -825,13 +816,11 @@ class GuiPreferencesSyntax(QWidget):
def __init__(self, prefsGui): def __init__(self, prefsGui):
super().__init__(parent=prefsGui) super().__init__(parent=prefsGui)
self.prefsGui = prefsGui self.prefsGui = prefsGui
self.mainGui = prefsGui.mainGui
self.mainTheme = prefsGui.mainGui.mainTheme
# The Form # The Form
self.mainForm = NConfigLayout() self.mainForm = NConfigLayout()
self.mainForm.setHelpTextStyle(self.mainTheme.helpText) self.mainForm.setHelpTextStyle(CONFIG.theme.helpText)
self.setLayout(self.mainForm) self.setLayout(self.mainForm)
# Quotes & Dialogue # Quotes & Dialogue
@@ -931,12 +920,9 @@ class GuiPreferencesAutomation(QWidget):
def __init__(self, prefsGui): def __init__(self, prefsGui):
super().__init__(parent=prefsGui) super().__init__(parent=prefsGui)
self.mainGui = prefsGui.mainGui
self.mainTheme = prefsGui.mainGui.mainTheme
# The Form # The Form
self.mainForm = NConfigLayout() self.mainForm = NConfigLayout()
self.mainForm.setHelpTextStyle(self.mainTheme.helpText) self.mainForm.setHelpTextStyle(CONFIG.theme.helpText)
self.setLayout(self.mainForm) self.setLayout(self.mainForm)
# Automatic Features # Automatic Features
@@ -1085,12 +1071,9 @@ class GuiPreferencesQuotes(QWidget):
def __init__(self, prefsGui): def __init__(self, prefsGui):
super().__init__(parent=prefsGui) super().__init__(parent=prefsGui)
self.mainGui = prefsGui.mainGui
self.mainTheme = prefsGui.mainGui.mainTheme
# The Form # The Form
self.mainForm = NConfigLayout() self.mainForm = NConfigLayout()
self.mainForm.setHelpTextStyle(self.mainTheme.helpText) self.mainForm.setHelpTextStyle(CONFIG.theme.helpText)
self.setLayout(self.mainForm) self.setLayout(self.mainForm)
# Quotation Style # Quotation Style
@@ -1098,7 +1081,7 @@ class GuiPreferencesQuotes(QWidget):
self.mainForm.addGroupLabel(self.tr("Quotation Style")) self.mainForm.addGroupLabel(self.tr("Quotation Style"))
qWidth = CONFIG.pxInt(40) qWidth = CONFIG.pxInt(40)
bWidth = int(2.5*self.mainTheme.getTextWidth("...")) bWidth = int(2.5*CONFIG.theme.getTextWidth("..."))
self.quoteSym = {} self.quoteSym = {}
# Single Quote Style # Single Quote Style
+4 -6
View File
@@ -149,10 +149,9 @@ class GuiProjectDetailsMain(QWidget):
self.theProject = theProject self.theProject = theProject
self.mainGui = mainGui self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
fPx = self.mainTheme.fontPixelSize fPx = CONFIG.theme.fontPixelSize
fPt = self.mainTheme.fontPointSize fPt = CONFIG.theme.fontPointSize
vPx = CONFIG.pxInt(4) vPx = CONFIG.pxInt(4)
hPx = CONFIG.pxInt(12) hPx = CONFIG.pxInt(12)
@@ -282,13 +281,12 @@ class GuiProjectDetailsContents(QWidget):
self.theProject = theProject self.theProject = theProject
self.mainGui = mainGui self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
# Internal # Internal
self._theToC = [] self._theToC = []
self._currentRoot = None self._currentRoot = None
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
hPx = CONFIG.pxInt(12) hPx = CONFIG.pxInt(12)
vPx = CONFIG.pxInt(4) vPx = CONFIG.pxInt(4)
pOptions = self.theProject.options pOptions = self.theProject.options
@@ -500,7 +498,7 @@ class GuiProjectDetailsContents(QWidget):
progPage = f"{cPage:n}" progPage = f"{cPage:n}"
progText = f"{pgProg:.1f}{nwUnicode.U_THSP}%" progText = f"{pgProg:.1f}{nwUnicode.U_THSP}%"
hDec = self.mainTheme.getHeaderDecoration(tLevel) hDec = CONFIG.theme.getHeaderDecoration(tLevel)
if tTitle.strip() == "": if tTitle.strip() == "":
tTitle = self.tr("Untitled") tTitle = self.tr("Untitled")
+5 -6
View File
@@ -62,13 +62,12 @@ class GuiProjectLoad(QDialog):
self.setObjectName("GuiProjectLoad") self.setObjectName("GuiProjectLoad")
self.mainGui = mainGui self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.openState = self.NONE_STATE self.openState = self.NONE_STATE
self.openPath = None self.openPath = None
sPx = CONFIG.pxInt(16) sPx = CONFIG.pxInt(16)
nPx = CONFIG.pxInt(96) nPx = CONFIG.pxInt(96)
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
self.outerBox = QVBoxLayout() self.outerBox = QVBoxLayout()
self.innerBox = QHBoxLayout() self.innerBox = QHBoxLayout()
@@ -80,7 +79,7 @@ class GuiProjectLoad(QDialog):
self.setMinimumHeight(CONFIG.pxInt(400)) self.setMinimumHeight(CONFIG.pxInt(400))
self.nwIcon = QLabel() self.nwIcon = QLabel()
self.nwIcon.setPixmap(self.mainGui.mainTheme.getPixmap("novelwriter", (nPx, nPx))) self.nwIcon.setPixmap(CONFIG.theme.getPixmap("novelwriter", (nPx, nPx)))
self.innerBox.addWidget(self.nwIcon, 0, Qt.AlignTop) self.innerBox.addWidget(self.nwIcon, 0, Qt.AlignTop)
self.projectForm = QGridLayout() self.projectForm = QGridLayout()
@@ -110,7 +109,7 @@ class GuiProjectLoad(QDialog):
self.selPath.setReadOnly(True) self.selPath.setReadOnly(True)
self.browseButton = QPushButton("...") self.browseButton = QPushButton("...")
self.browseButton.setMaximumWidth(int(2.5*self.mainTheme.getTextWidth("..."))) self.browseButton.setMaximumWidth(int(2.5*CONFIG.theme.getTextWidth("...")))
self.browseButton.clicked.connect(self._doBrowse) self.browseButton.clicked.connect(self._doBrowse)
self.projectForm.addWidget(self.lblRecent, 0, 0, 1, 3) self.projectForm.addWidget(self.lblRecent, 0, 0, 1, 3)
@@ -268,7 +267,7 @@ class GuiProjectLoad(QDialog):
self.listBox.clear() self.listBox.clear()
dataList = CONFIG.recentProjects.listEntries() dataList = CONFIG.recentProjects.listEntries()
sortList = sorted(dataList, key=lambda x: x[3], reverse=True) sortList = sorted(dataList, key=lambda x: x[3], reverse=True)
nwxIcon = self.mainGui.mainTheme.getIcon("proj_nwx") nwxIcon = CONFIG.theme.getIcon("proj_nwx")
for path, title, words, time in sortList: for path, title, words, time in sortList:
newItem = QTreeWidgetItem([""]*4) newItem = QTreeWidgetItem([""]*4)
newItem.setIcon(self.C_NAME, nwxIcon) newItem.setIcon(self.C_NAME, nwxIcon)
@@ -279,7 +278,7 @@ class GuiProjectLoad(QDialog):
newItem.setTextAlignment(self.C_NAME, Qt.AlignLeft | Qt.AlignVCenter) newItem.setTextAlignment(self.C_NAME, Qt.AlignLeft | Qt.AlignVCenter)
newItem.setTextAlignment(self.C_COUNT, Qt.AlignRight | Qt.AlignVCenter) newItem.setTextAlignment(self.C_COUNT, Qt.AlignRight | Qt.AlignVCenter)
newItem.setTextAlignment(self.C_TIME, Qt.AlignRight | Qt.AlignVCenter) newItem.setTextAlignment(self.C_TIME, Qt.AlignRight | Qt.AlignVCenter)
newItem.setFont(self.C_TIME, self.mainTheme.guiFontFixed) newItem.setFont(self.C_TIME, CONFIG.theme.guiFontFixed)
self.listBox.addTopLevelItem(newItem) self.listBox.addTopLevelItem(newItem)
if self.listBox.topLevelItemCount() > 0: if self.listBox.topLevelItemCount() > 0:
+8 -10
View File
@@ -206,7 +206,7 @@ class GuiProjectEditMain(QWidget):
# The Form # The Form
self.mainForm = NConfigLayout() self.mainForm = NConfigLayout()
self.mainForm.setHelpTextStyle(self.mainGui.mainTheme.helpText) self.mainForm.setHelpTextStyle(CONFIG.theme.helpText)
self.setLayout(self.mainForm) self.setLayout(self.mainForm)
self.mainForm.addGroupLabel(self.tr("Project Settings")) self.mainForm.addGroupLabel(self.tr("Project Settings"))
@@ -291,7 +291,6 @@ class GuiProjectEditStatus(QWidget):
self.mainGui = projGui.mainGui self.mainGui = projGui.mainGui
self.theProject = projGui.theProject self.theProject = projGui.theProject
self.mainTheme = projGui.mainGui.mainTheme
if isStatus: if isStatus:
self.theStatus = self.theProject.data.itemStatus self.theStatus = self.theProject.data.itemStatus
@@ -310,7 +309,7 @@ class GuiProjectEditStatus(QWidget):
self.colChanged = False self.colChanged = False
self.selColour = QColor(100, 100, 100) self.selColour = QColor(100, 100, 100)
self.iPx = self.mainTheme.baseIconSize self.iPx = CONFIG.theme.baseIconSize
# The List # The List
# ======== # ========
@@ -329,16 +328,16 @@ class GuiProjectEditStatus(QWidget):
# List Controls # List Controls
# ============= # =============
self.addButton = QPushButton(self.mainTheme.getIcon("add"), "") self.addButton = QPushButton(CONFIG.theme.getIcon("add"), "")
self.addButton.clicked.connect(self._newItem) self.addButton.clicked.connect(self._newItem)
self.delButton = QPushButton(self.mainTheme.getIcon("remove"), "") self.delButton = QPushButton(CONFIG.theme.getIcon("remove"), "")
self.delButton.clicked.connect(self._delItem) self.delButton.clicked.connect(self._delItem)
self.upButton = QPushButton(self.mainTheme.getIcon("up"), "") self.upButton = QPushButton(CONFIG.theme.getIcon("up"), "")
self.upButton.clicked.connect(lambda: self._moveItem(-1)) self.upButton.clicked.connect(lambda: self._moveItem(-1))
self.dnButton = QPushButton(self.mainTheme.getIcon("down"), "") self.dnButton = QPushButton(CONFIG.theme.getIcon("down"), "")
self.dnButton.clicked.connect(lambda: self._moveItem(1)) self.dnButton.clicked.connect(lambda: self._moveItem(1))
# Edit Form # Edit Form
@@ -578,7 +577,6 @@ class GuiProjectEditReplace(QWidget):
super().__init__(parent=projGui) super().__init__(parent=projGui)
self.mainGui = projGui.mainGui self.mainGui = projGui.mainGui
self.mainTheme = projGui.mainGui.mainTheme
self.theProject = projGui.theProject self.theProject = projGui.theProject
self.arChanged = False self.arChanged = False
@@ -609,10 +607,10 @@ class GuiProjectEditReplace(QWidget):
# List Controls # List Controls
# ============= # =============
self.addButton = QPushButton(self.mainTheme.getIcon("add"), "") self.addButton = QPushButton(CONFIG.theme.getIcon("add"), "")
self.addButton.clicked.connect(self._addEntry) self.addButton.clicked.connect(self._addEntry)
self.delButton = QPushButton(self.mainTheme.getIcon("remove"), "") self.delButton = QPushButton(CONFIG.theme.getIcon("remove"), "")
self.delButton.clicked.connect(self._delEntry) self.delButton.clicked.connect(self._delEntry)
# Edit Form # Edit Form
+1 -4
View File
@@ -49,9 +49,6 @@ class GuiUpdates(QDialog):
logger.debug("Create: GuiUpdates") logger.debug("Create: GuiUpdates")
self.setObjectName("GuiUpdates") self.setObjectName("GuiUpdates")
self.mainGui = mainGui
self.setWindowTitle(self.tr("Check for Updates")) self.setWindowTitle(self.tr("Check for Updates"))
nPx = CONFIG.pxInt(96) nPx = CONFIG.pxInt(96)
@@ -61,7 +58,7 @@ class GuiUpdates(QDialog):
# Left Box # Left Box
self.nwIcon = QLabel() self.nwIcon = QLabel()
self.nwIcon.setPixmap(self.mainGui.mainTheme.getPixmap("novelwriter", (nPx, nPx))) self.nwIcon.setPixmap(CONFIG.theme.getPixmap("novelwriter", (nPx, nPx)))
self.leftBox = QVBoxLayout() self.leftBox = QVBoxLayout()
self.leftBox.addWidget(self.nwIcon) self.leftBox.addWidget(self.nwIcon)
+2 -3
View File
@@ -52,7 +52,6 @@ class GuiWordList(QDialog):
self.setObjectName("GuiWordList") self.setObjectName("GuiWordList")
self.mainGui = mainGui self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.theProject = mainGui.theProject self.theProject = mainGui.theProject
self.setWindowTitle(self.tr("Project Word List")) self.setWindowTitle(self.tr("Project Word List"))
@@ -80,10 +79,10 @@ class GuiWordList(QDialog):
self.newEntry = QLineEdit() self.newEntry = QLineEdit()
self.addButton = QPushButton(self.mainTheme.getIcon("add"), "") self.addButton = QPushButton(CONFIG.theme.getIcon("add"), "")
self.addButton.clicked.connect(self._doAdd) self.addButton.clicked.connect(self._doAdd)
self.delButton = QPushButton(self.mainTheme.getIcon("remove"), "") self.delButton = QPushButton(CONFIG.theme.getIcon("remove"), "")
self.delButton.clicked.connect(self._doDelete) self.delButton.clicked.connect(self._doDelete)
self.editBox = QHBoxLayout() self.editBox = QHBoxLayout()
+2 -2
View File
@@ -30,6 +30,7 @@ from PyQt5.QtGui import QPainter
from PyQt5.QtCore import pyqtSignal, pyqtSlot from PyQt5.QtCore import pyqtSignal, pyqtSlot
from PyQt5.QtWidgets import QAbstractButton, QComboBox from PyQt5.QtWidgets import QAbstractButton, QComboBox
from novelwriter import CONFIG
from novelwriter.enum import nwItemClass from novelwriter.enum import nwItemClass
from novelwriter.constants import nwLabels from novelwriter.constants import nwLabels
@@ -45,7 +46,6 @@ class NovelSelector(QComboBox):
self._mainGui = mainGui self._mainGui = mainGui
self._project = project self._project = project
self._theme = mainGui.mainTheme
self._blockSignal = False self._blockSignal = False
self._firstHandle = None self._firstHandle = None
@@ -89,7 +89,7 @@ class NovelSelector(QComboBox):
self._firstHandle = None self._firstHandle = None
self.clear() self.clear()
icon = self._theme.getIcon(nwLabels.CLASS_ICON[nwItemClass.NOVEL]) icon = CONFIG.theme.getIcon(nwLabels.CLASS_ICON[nwItemClass.NOVEL])
handle = self.currentData() handle = self.currentData()
for tHandle, nwItem in self._project.tree.iterRoots(nwItemClass.NOVEL): for tHandle, nwItem in self._project.tree.iterRoots(nwItemClass.NOVEL):
if prefix: if prefix:
+39 -43
View File
@@ -85,7 +85,6 @@ class GuiDocEditor(QTextEdit):
# Class Variables # Class Variables
self.mainGui = mainGui self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.theProject = mainGui.theProject self.theProject = mainGui.theProject
self._nwDocument = None self._nwDocument = None
@@ -229,14 +228,14 @@ class GuiDocEditor(QTextEdit):
"""Update the syntax highlighting theme. """Update the syntax highlighting theme.
""" """
mainPalette = self.palette() mainPalette = self.palette()
mainPalette.setColor(QPalette.Window, QColor(*self.mainTheme.colBack)) mainPalette.setColor(QPalette.Window, QColor(*CONFIG.theme.colBack))
mainPalette.setColor(QPalette.Base, QColor(*self.mainTheme.colBack)) mainPalette.setColor(QPalette.Base, QColor(*CONFIG.theme.colBack))
mainPalette.setColor(QPalette.Text, QColor(*self.mainTheme.colText)) mainPalette.setColor(QPalette.Text, QColor(*CONFIG.theme.colText))
self.setPalette(mainPalette) self.setPalette(mainPalette)
docPalette = self.viewport().palette() docPalette = self.viewport().palette()
docPalette.setColor(QPalette.Base, QColor(*self.mainTheme.colBack)) docPalette.setColor(QPalette.Base, QColor(*CONFIG.theme.colBack))
docPalette.setColor(QPalette.Text, QColor(*self.mainTheme.colText)) docPalette.setColor(QPalette.Text, QColor(*CONFIG.theme.colText))
self.viewport().setPalette(docPalette) self.viewport().setPalette(docPalette)
self.docHeader.matchColours() self.docHeader.matchColours()
@@ -2226,7 +2225,6 @@ class GuiDocEditSearch(QFrame):
self.docEditor = docEditor self.docEditor = docEditor
self.mainGui = docEditor.mainGui self.mainGui = docEditor.mainGui
self.theProject = docEditor.theProject self.theProject = docEditor.theProject
self.mainTheme = docEditor.mainTheme
self.repVisible = False self.repVisible = False
self.isCaseSense = CONFIG.searchCase self.isCaseSense = CONFIG.searchCase
@@ -2237,9 +2235,9 @@ class GuiDocEditSearch(QFrame):
self.doMatchCap = CONFIG.searchMatchCap self.doMatchCap = CONFIG.searchMatchCap
mPx = CONFIG.pxInt(6) mPx = CONFIG.pxInt(6)
tPx = int(0.8*self.mainTheme.fontPixelSize) tPx = int(0.8*CONFIG.theme.fontPixelSize)
self.boxFont = self.mainTheme.guiFont self.boxFont = CONFIG.theme.guiFont
self.boxFont.setPointSizeF(0.9*self.mainTheme.fontPointSize) self.boxFont.setPointSizeF(0.9*CONFIG.theme.fontPointSize)
self.setContentsMargins(0, 0, 0, 0) self.setContentsMargins(0, 0, 0, 0)
self.setAutoFillBackground(True) self.setAutoFillBackground(True)
@@ -2272,7 +2270,7 @@ class GuiDocEditSearch(QFrame):
self.resultLabel = QLabel("?/?") self.resultLabel = QLabel("?/?")
self.resultLabel.setFont(self.boxFont) self.resultLabel.setFont(self.boxFont)
self.resultLabel.setMinimumWidth(self.mainTheme.getTextWidth("?/?", self.boxFont)) self.resultLabel.setMinimumWidth(CONFIG.theme.getTextWidth("?/?", self.boxFont))
self.toggleCase = QAction(self.tr("Case Sensitive"), self) self.toggleCase = QAction(self.tr("Case Sensitive"), self)
self.toggleCase.setCheckable(True) self.toggleCase.setCheckable(True)
@@ -2378,15 +2376,15 @@ class GuiDocEditSearch(QFrame):
self.replaceBox.setPalette(qPalette) self.replaceBox.setPalette(qPalette)
# Set icons # Set icons
self.toggleCase.setIcon(self.mainTheme.getIcon("search_case")) self.toggleCase.setIcon(CONFIG.theme.getIcon("search_case"))
self.toggleWord.setIcon(self.mainTheme.getIcon("search_word")) self.toggleWord.setIcon(CONFIG.theme.getIcon("search_word"))
self.toggleRegEx.setIcon(self.mainTheme.getIcon("search_regex")) self.toggleRegEx.setIcon(CONFIG.theme.getIcon("search_regex"))
self.toggleLoop.setIcon(self.mainTheme.getIcon("search_loop")) self.toggleLoop.setIcon(CONFIG.theme.getIcon("search_loop"))
self.toggleProject.setIcon(self.mainTheme.getIcon("search_project")) self.toggleProject.setIcon(CONFIG.theme.getIcon("search_project"))
self.toggleMatchCap.setIcon(self.mainTheme.getIcon("search_preserve")) self.toggleMatchCap.setIcon(CONFIG.theme.getIcon("search_preserve"))
self.cancelSearch.setIcon(self.mainTheme.getIcon("search_cancel")) self.cancelSearch.setIcon(CONFIG.theme.getIcon("search_cancel"))
self.searchButton.setIcon(self.mainTheme.getIcon("search")) self.searchButton.setIcon(CONFIG.theme.getIcon("search"))
self.replaceButton.setIcon(self.mainTheme.getIcon("search_replace")) self.replaceButton.setIcon(CONFIG.theme.getIcon("search_replace"))
# Set stylesheets # Set stylesheets
self.searchOpt.setStyleSheet("QToolBar {padding: 0;}") self.searchOpt.setStyleSheet("QToolBar {padding: 0;}")
@@ -2478,7 +2476,7 @@ class GuiDocEditSearch(QFrame):
""" """
currRes = "?" if currRes is None else currRes currRes = "?" if currRes is None else currRes
resCount = "?" if resCount is None else "1000+" if resCount > 1000 else resCount resCount = "?" if resCount is None else "1000+" if resCount > 1000 else resCount
minWidth = self.mainTheme.getTextWidth(f"{resCount}//{resCount}", self.boxFont) minWidth = CONFIG.theme.getTextWidth(f"{resCount}//{resCount}", self.boxFont)
self.resultLabel.setText(f"{currRes}/{resCount}") self.resultLabel.setText(f"{currRes}/{resCount}")
self.resultLabel.setMinimumWidth(minWidth) self.resultLabel.setMinimumWidth(minWidth)
self.adjustSize() self.adjustSize()
@@ -2641,11 +2639,10 @@ class GuiDocEditHeader(QWidget):
self.docEditor = docEditor self.docEditor = docEditor
self.mainGui = docEditor.mainGui self.mainGui = docEditor.mainGui
self.theProject = docEditor.theProject self.theProject = docEditor.theProject
self.mainTheme = docEditor.mainTheme
self._docHandle = None self._docHandle = None
fPx = int(0.9*self.mainTheme.fontPixelSize) fPx = int(0.9*CONFIG.theme.fontPixelSize)
hSp = CONFIG.pxInt(6) hSp = CONFIG.pxInt(6)
# Main Widget Settings # Main Widget Settings
@@ -2662,7 +2659,7 @@ class GuiDocEditHeader(QWidget):
self.theTitle.setFixedHeight(fPx) self.theTitle.setFixedHeight(fPx)
lblFont = self.theTitle.font() lblFont = self.theTitle.font()
lblFont.setPointSizeF(0.9*self.mainTheme.fontPointSize) lblFont.setPointSizeF(0.9*CONFIG.theme.fontPointSize)
self.theTitle.setFont(lblFont) self.theTitle.setFont(lblFont)
# Buttons # Buttons
@@ -2732,15 +2729,15 @@ class GuiDocEditHeader(QWidget):
def updateTheme(self): def updateTheme(self):
"""Update theme elements. """Update theme elements.
""" """
self.editButton.setIcon(self.mainTheme.getIcon("edit")) self.editButton.setIcon(CONFIG.theme.getIcon("edit"))
self.searchButton.setIcon(self.mainTheme.getIcon("search")) self.searchButton.setIcon(CONFIG.theme.getIcon("search"))
self.minmaxButton.setIcon(self.mainTheme.getIcon("maximise")) self.minmaxButton.setIcon(CONFIG.theme.getIcon("maximise"))
self.closeButton.setIcon(self.mainTheme.getIcon("close")) self.closeButton.setIcon(CONFIG.theme.getIcon("close"))
buttonStyle = ( buttonStyle = (
"QToolButton {{border: none; background: transparent;}} " "QToolButton {{border: none; background: transparent;}} "
"QToolButton:hover {{border: none; background: rgba({0},{1},{2},0.2);}}" "QToolButton:hover {{border: none; background: rgba({0},{1},{2},0.2);}}"
).format(*self.mainTheme.colText) ).format(*CONFIG.theme.colText)
self.editButton.setStyleSheet(buttonStyle) self.editButton.setStyleSheet(buttonStyle)
self.searchButton.setStyleSheet(buttonStyle) self.searchButton.setStyleSheet(buttonStyle)
@@ -2756,9 +2753,9 @@ class GuiDocEditHeader(QWidget):
theme rather than the main GUI. theme rather than the main GUI.
""" """
thePalette = QPalette() thePalette = QPalette()
thePalette.setColor(QPalette.Window, QColor(*self.mainTheme.colBack)) thePalette.setColor(QPalette.Window, QColor(*CONFIG.theme.colBack))
thePalette.setColor(QPalette.WindowText, QColor(*self.mainTheme.colText)) thePalette.setColor(QPalette.WindowText, QColor(*CONFIG.theme.colText))
thePalette.setColor(QPalette.Text, QColor(*self.mainTheme.colText)) thePalette.setColor(QPalette.Text, QColor(*CONFIG.theme.colText))
self.setPalette(thePalette) self.setPalette(thePalette)
self.theTitle.setPalette(thePalette) self.theTitle.setPalette(thePalette)
@@ -2806,9 +2803,9 @@ class GuiDocEditHeader(QWidget):
toggleFocusMode function and should not be activated directly. toggleFocusMode function and should not be activated directly.
""" """
if self.mainGui.isFocusMode: if self.mainGui.isFocusMode:
self.minmaxButton.setIcon(self.mainTheme.getIcon("minimise")) self.minmaxButton.setIcon(CONFIG.theme.getIcon("minimise"))
else: else:
self.minmaxButton.setIcon(self.mainTheme.getIcon("maximise")) self.minmaxButton.setIcon(CONFIG.theme.getIcon("maximise"))
return return
## ##
@@ -2876,20 +2873,19 @@ class GuiDocEditFooter(QWidget):
self.docEditor = docEditor self.docEditor = docEditor
self.mainGui = docEditor.mainGui self.mainGui = docEditor.mainGui
self.theProject = docEditor.theProject self.theProject = docEditor.theProject
self.mainTheme = docEditor.mainTheme
self._theItem = None self._theItem = None
self._docHandle = None self._docHandle = None
self._docSelection = False self._docSelection = False
self.sPx = int(round(0.9*self.mainTheme.baseIconSize)) self.sPx = int(round(0.9*CONFIG.theme.baseIconSize))
fPx = int(0.9*self.mainTheme.fontPixelSize) fPx = int(0.9*CONFIG.theme.fontPixelSize)
bSp = CONFIG.pxInt(4) bSp = CONFIG.pxInt(4)
hSp = CONFIG.pxInt(6) hSp = CONFIG.pxInt(6)
lblFont = self.font() lblFont = self.font()
lblFont.setPointSizeF(0.9*self.mainTheme.fontPointSize) lblFont.setPointSizeF(0.9*CONFIG.theme.fontPointSize)
# Main Widget Settings # Main Widget Settings
self.setContentsMargins(0, 0, 0, 0) self.setContentsMargins(0, 0, 0, 0)
@@ -2976,8 +2972,8 @@ class GuiDocEditFooter(QWidget):
def updateTheme(self): def updateTheme(self):
"""Update theme elements. """Update theme elements.
""" """
self.linesIcon.setPixmap(self.mainTheme.getPixmap("status_lines", (self.sPx, self.sPx))) self.linesIcon.setPixmap(CONFIG.theme.getPixmap("status_lines", (self.sPx, self.sPx)))
self.wordsIcon.setPixmap(self.mainTheme.getPixmap("status_stats", (self.sPx, self.sPx))) self.wordsIcon.setPixmap(CONFIG.theme.getPixmap("status_stats", (self.sPx, self.sPx)))
self.matchColours() self.matchColours()
@@ -2988,9 +2984,9 @@ class GuiDocEditFooter(QWidget):
theme rather than the main GUI. theme rather than the main GUI.
""" """
thePalette = QPalette() thePalette = QPalette()
thePalette.setColor(QPalette.Window, QColor(*self.mainTheme.colBack)) thePalette.setColor(QPalette.Window, QColor(*CONFIG.theme.colBack))
thePalette.setColor(QPalette.WindowText, QColor(*self.mainTheme.colText)) thePalette.setColor(QPalette.WindowText, QColor(*CONFIG.theme.colText))
thePalette.setColor(QPalette.Text, QColor(*self.mainTheme.colText)) thePalette.setColor(QPalette.Text, QColor(*CONFIG.theme.colText))
self.setPalette(thePalette) self.setPalette(thePalette)
self.statusText.setPalette(thePalette) self.statusText.setPalette(thePalette)
+14 -15
View File
@@ -54,7 +54,6 @@ class GuiDocHighlighter(QSyntaxHighlighter):
self.theDoc = theDoc self.theDoc = theDoc
self.spEnchant = spEnchant self.spEnchant = spEnchant
self.mainGui = mainGui self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.theProject = mainGui.theProject self.theProject = mainGui.theProject
self.theHandle = None self.theHandle = None
self.spellCheck = False self.spellCheck = False
@@ -87,24 +86,24 @@ class GuiDocHighlighter(QSyntaxHighlighter):
""" """
logger.debug("Setting up highlighting rules") logger.debug("Setting up highlighting rules")
self.colHead = QColor(*self.mainTheme.colHead) self.colHead = QColor(*CONFIG.theme.colHead)
self.colHeadH = QColor(*self.mainTheme.colHeadH) self.colHeadH = QColor(*CONFIG.theme.colHeadH)
self.colDialN = QColor(*self.mainTheme.colDialN) self.colDialN = QColor(*CONFIG.theme.colDialN)
self.colDialD = QColor(*self.mainTheme.colDialD) self.colDialD = QColor(*CONFIG.theme.colDialD)
self.colDialS = QColor(*self.mainTheme.colDialS) self.colDialS = QColor(*CONFIG.theme.colDialS)
self.colHidden = QColor(*self.mainTheme.colHidden) self.colHidden = QColor(*CONFIG.theme.colHidden)
self.colKey = QColor(*self.mainTheme.colKey) self.colKey = QColor(*CONFIG.theme.colKey)
self.colVal = QColor(*self.mainTheme.colVal) self.colVal = QColor(*CONFIG.theme.colVal)
self.colSpell = QColor(*self.mainTheme.colSpell) self.colSpell = QColor(*CONFIG.theme.colSpell)
self.colError = QColor(*self.mainTheme.colError) self.colError = QColor(*CONFIG.theme.colError)
self.colRepTag = QColor(*self.mainTheme.colRepTag) self.colRepTag = QColor(*CONFIG.theme.colRepTag)
self.colMod = QColor(*self.mainTheme.colMod) self.colMod = QColor(*CONFIG.theme.colMod)
self.colBreak = QColor(*self.mainTheme.colEmph) self.colBreak = QColor(*CONFIG.theme.colEmph)
self.colBreak.setAlpha(64) self.colBreak.setAlpha(64)
self.colEmph = None self.colEmph = None
if CONFIG.highlightEmph: if CONFIG.highlightEmph:
self.colEmph = QColor(*self.mainTheme.colEmph) self.colEmph = QColor(*CONFIG.theme.colEmph)
self.hStyles = { self.hStyles = {
"header1": self._makeFormat(self.colHead, "bold", 1.8), "header1": self._makeFormat(self.colHead, "bold", 1.8),
+49 -55
View File
@@ -60,7 +60,6 @@ class GuiDocViewer(QTextBrowser):
# Class Variables # Class Variables
self.mainGui = mainGui self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.theProject = mainGui.theProject self.theProject = mainGui.theProject
# Internal Variables # Internal Variables
@@ -121,14 +120,14 @@ class GuiDocViewer(QTextBrowser):
# Set the widget colours to match syntax theme # Set the widget colours to match syntax theme
mainPalette = self.palette() mainPalette = self.palette()
mainPalette.setColor(QPalette.Window, QColor(*self.mainTheme.colBack)) mainPalette.setColor(QPalette.Window, QColor(*CONFIG.theme.colBack))
mainPalette.setColor(QPalette.Base, QColor(*self.mainTheme.colBack)) mainPalette.setColor(QPalette.Base, QColor(*CONFIG.theme.colBack))
mainPalette.setColor(QPalette.Text, QColor(*self.mainTheme.colText)) mainPalette.setColor(QPalette.Text, QColor(*CONFIG.theme.colText))
self.setPalette(mainPalette) self.setPalette(mainPalette)
docPalette = self.viewport().palette() docPalette = self.viewport().palette()
docPalette.setColor(QPalette.Base, QColor(*self.mainTheme.colBack)) docPalette.setColor(QPalette.Base, QColor(*CONFIG.theme.colBack))
docPalette.setColor(QPalette.Text, QColor(*self.mainTheme.colText)) docPalette.setColor(QPalette.Text, QColor(*CONFIG.theme.colText))
self.viewport().setPalette(docPalette) self.viewport().setPalette(docPalette)
self.docHeader.matchColours() self.docHeader.matchColours()
@@ -508,27 +507,27 @@ class GuiDocViewer(QTextBrowser):
" text-align: center;" " text-align: center;"
"}}\n" "}}\n"
).format( ).format(
tColR=self.mainTheme.colText[0], tColR=CONFIG.theme.colText[0],
tColG=self.mainTheme.colText[1], tColG=CONFIG.theme.colText[1],
tColB=self.mainTheme.colText[2], tColB=CONFIG.theme.colText[2],
hColR=self.mainTheme.colHead[0], hColR=CONFIG.theme.colHead[0],
hColG=self.mainTheme.colHead[1], hColG=CONFIG.theme.colHead[1],
hColB=self.mainTheme.colHead[2], hColB=CONFIG.theme.colHead[2],
aColR=self.mainTheme.colVal[0], aColR=CONFIG.theme.colVal[0],
aColG=self.mainTheme.colVal[1], aColG=CONFIG.theme.colVal[1],
aColB=self.mainTheme.colVal[2], aColB=CONFIG.theme.colVal[2],
eColR=self.mainTheme.colEmph[0], eColR=CONFIG.theme.colEmph[0],
eColG=self.mainTheme.colEmph[1], eColG=CONFIG.theme.colEmph[1],
eColB=self.mainTheme.colEmph[2], eColB=CONFIG.theme.colEmph[2],
kColR=self.mainTheme.colKey[0], kColR=CONFIG.theme.colKey[0],
kColG=self.mainTheme.colKey[1], kColG=CONFIG.theme.colKey[1],
kColB=self.mainTheme.colKey[2], kColB=CONFIG.theme.colKey[2],
cColR=self.mainTheme.colHidden[0], cColR=CONFIG.theme.colHidden[0],
cColG=self.mainTheme.colHidden[1], cColG=CONFIG.theme.colHidden[1],
cColB=self.mainTheme.colHidden[2], cColB=CONFIG.theme.colHidden[2],
mColR=self.mainTheme.colMod[0], mColR=CONFIG.theme.colMod[0],
mColG=self.mainTheme.colMod[1], mColG=CONFIG.theme.colMod[1],
mColB=self.mainTheme.colMod[2], mColB=CONFIG.theme.colMod[2],
) )
self.document().setDefaultStyleSheet(styleSheet) self.document().setDefaultStyleSheet(styleSheet)
@@ -684,12 +683,11 @@ class GuiDocViewHeader(QWidget):
self.docViewer = docViewer self.docViewer = docViewer
self.mainGui = docViewer.mainGui self.mainGui = docViewer.mainGui
self.theProject = docViewer.theProject self.theProject = docViewer.theProject
self.mainTheme = docViewer.mainTheme
# Internal Variables # Internal Variables
self._docHandle = None self._docHandle = None
fPx = int(0.9*self.mainTheme.fontPixelSize) fPx = int(0.9*CONFIG.theme.fontPixelSize)
hSp = CONFIG.pxInt(6) hSp = CONFIG.pxInt(6)
# Main Widget Settings # Main Widget Settings
@@ -706,7 +704,7 @@ class GuiDocViewHeader(QWidget):
self.theTitle.setFixedHeight(fPx) self.theTitle.setFixedHeight(fPx)
lblFont = self.theTitle.font() lblFont = self.theTitle.font()
lblFont.setPointSizeF(0.9*self.mainTheme.fontPointSize) lblFont.setPointSizeF(0.9*CONFIG.theme.fontPointSize)
self.theTitle.setFont(lblFont) self.theTitle.setFont(lblFont)
# Buttons # Buttons
@@ -777,15 +775,15 @@ class GuiDocViewHeader(QWidget):
def updateTheme(self): def updateTheme(self):
"""Update theme elements. """Update theme elements.
""" """
self.backButton.setIcon(self.mainTheme.getIcon("backward")) self.backButton.setIcon(CONFIG.theme.getIcon("backward"))
self.forwardButton.setIcon(self.mainTheme.getIcon("forward")) self.forwardButton.setIcon(CONFIG.theme.getIcon("forward"))
self.refreshButton.setIcon(self.mainTheme.getIcon("refresh")) self.refreshButton.setIcon(CONFIG.theme.getIcon("refresh"))
self.closeButton.setIcon(self.mainTheme.getIcon("close")) self.closeButton.setIcon(CONFIG.theme.getIcon("close"))
buttonStyle = ( buttonStyle = (
"QToolButton {{border: none; background: transparent;}} " "QToolButton {{border: none; background: transparent;}} "
"QToolButton:hover {{border: none; background: rgba({0},{1},{2},0.2);}}" "QToolButton:hover {{border: none; background: rgba({0},{1},{2},0.2);}}"
).format(*self.mainTheme.colText) ).format(*CONFIG.theme.colText)
self.backButton.setStyleSheet(buttonStyle) self.backButton.setStyleSheet(buttonStyle)
self.forwardButton.setStyleSheet(buttonStyle) self.forwardButton.setStyleSheet(buttonStyle)
@@ -801,9 +799,9 @@ class GuiDocViewHeader(QWidget):
theme rather than the main GUI. theme rather than the main GUI.
""" """
thePalette = QPalette() thePalette = QPalette()
thePalette.setColor(QPalette.Window, QColor(*self.mainTheme.colBack)) thePalette.setColor(QPalette.Window, QColor(*CONFIG.theme.colBack))
thePalette.setColor(QPalette.WindowText, QColor(*self.mainTheme.colText)) thePalette.setColor(QPalette.WindowText, QColor(*CONFIG.theme.colText))
thePalette.setColor(QPalette.Text, QColor(*self.mainTheme.colText)) thePalette.setColor(QPalette.Text, QColor(*CONFIG.theme.colText))
self.setPalette(thePalette) self.setPalette(thePalette)
self.theTitle.setPalette(thePalette) self.theTitle.setPalette(thePalette)
@@ -900,13 +898,12 @@ class GuiDocViewFooter(QWidget):
self.docViewer = docViewer self.docViewer = docViewer
self.mainGui = docViewer.mainGui self.mainGui = docViewer.mainGui
self.mainTheme = docViewer.mainTheme
self.viewMeta = docViewer.mainGui.viewMeta self.viewMeta = docViewer.mainGui.viewMeta
# Internal Variables # Internal Variables
self._docHandle = None self._docHandle = None
fPx = int(0.9*self.mainTheme.fontPixelSize) fPx = int(0.9*CONFIG.theme.fontPixelSize)
bSp = CONFIG.pxInt(2) bSp = CONFIG.pxInt(2)
hSp = CONFIG.pxInt(8) hSp = CONFIG.pxInt(8)
@@ -991,7 +988,7 @@ class GuiDocViewFooter(QWidget):
self.lblSynopsis.setAlignment(Qt.AlignLeft | Qt.AlignTop) self.lblSynopsis.setAlignment(Qt.AlignLeft | Qt.AlignTop)
lblFont = self.font() lblFont = self.font()
lblFont.setPointSizeF(0.9*self.mainTheme.fontPointSize) lblFont.setPointSizeF(0.9*CONFIG.theme.fontPointSize)
self.lblRefs.setFont(lblFont) self.lblRefs.setFont(lblFont)
self.lblSticky.setFont(lblFont) self.lblSticky.setFont(lblFont)
self.lblComments.setFont(lblFont) self.lblComments.setFont(lblFont)
@@ -1036,21 +1033,21 @@ class GuiDocViewFooter(QWidget):
""" """
# Icons # Icons
fPx = int(0.9*self.mainTheme.fontPixelSize) fPx = int(0.9*CONFIG.theme.fontPixelSize)
stickyOn = self.mainTheme.getPixmap("sticky-on", (fPx, fPx)) stickyOn = CONFIG.theme.getPixmap("sticky-on", (fPx, fPx))
stickyOff = self.mainTheme.getPixmap("sticky-off", (fPx, fPx)) stickyOff = CONFIG.theme.getPixmap("sticky-off", (fPx, fPx))
stickyIcon = QIcon() stickyIcon = QIcon()
stickyIcon.addPixmap(stickyOn, QIcon.Normal, QIcon.On) stickyIcon.addPixmap(stickyOn, QIcon.Normal, QIcon.On)
stickyIcon.addPixmap(stickyOff, QIcon.Normal, QIcon.Off) stickyIcon.addPixmap(stickyOff, QIcon.Normal, QIcon.Off)
bulletOn = self.mainTheme.getPixmap("bullet-on", (fPx, fPx)) bulletOn = CONFIG.theme.getPixmap("bullet-on", (fPx, fPx))
bulletOff = self.mainTheme.getPixmap("bullet-off", (fPx, fPx)) bulletOff = CONFIG.theme.getPixmap("bullet-off", (fPx, fPx))
bulletIcon = QIcon() bulletIcon = QIcon()
bulletIcon.addPixmap(bulletOn, QIcon.Normal, QIcon.On) bulletIcon.addPixmap(bulletOn, QIcon.Normal, QIcon.On)
bulletIcon.addPixmap(bulletOff, QIcon.Normal, QIcon.Off) bulletIcon.addPixmap(bulletOff, QIcon.Normal, QIcon.Off)
self.showHide.setIcon(self.mainTheme.getIcon("reference")) self.showHide.setIcon(CONFIG.theme.getIcon("reference"))
self.stickyRefs.setIcon(stickyIcon) self.stickyRefs.setIcon(stickyIcon)
self.showComments.setIcon(bulletIcon) self.showComments.setIcon(bulletIcon)
self.showSynopsis.setIcon(bulletIcon) self.showSynopsis.setIcon(bulletIcon)
@@ -1060,7 +1057,7 @@ class GuiDocViewFooter(QWidget):
buttonStyle = ( buttonStyle = (
"QToolButton {{border: none; background: transparent;}} " "QToolButton {{border: none; background: transparent;}} "
"QToolButton:hover {{border: none; background: rgba({0},{1},{2},0.2);}}" "QToolButton:hover {{border: none; background: rgba({0},{1},{2},0.2);}}"
).format(*self.mainTheme.colText) ).format(*CONFIG.theme.colText)
self.showHide.setStyleSheet(buttonStyle) self.showHide.setStyleSheet(buttonStyle)
self.stickyRefs.setStyleSheet(buttonStyle) self.stickyRefs.setStyleSheet(buttonStyle)
@@ -1076,9 +1073,9 @@ class GuiDocViewFooter(QWidget):
theme rather than the main GUI. theme rather than the main GUI.
""" """
thePalette = QPalette() thePalette = QPalette()
thePalette.setColor(QPalette.Window, QColor(*self.mainTheme.colBack)) thePalette.setColor(QPalette.Window, QColor(*CONFIG.theme.colBack))
thePalette.setColor(QPalette.WindowText, QColor(*self.mainTheme.colText)) thePalette.setColor(QPalette.WindowText, QColor(*CONFIG.theme.colText))
thePalette.setColor(QPalette.Text, QColor(*self.mainTheme.colText)) thePalette.setColor(QPalette.Text, QColor(*CONFIG.theme.colText))
self.setPalette(thePalette) self.setPalette(thePalette)
self.lblRefs.setPalette(thePalette) self.lblRefs.setPalette(thePalette)
@@ -1143,7 +1140,6 @@ class GuiDocViewDetails(QScrollArea):
self.mainGui = mainGui self.mainGui = mainGui
self.theProject = mainGui.theProject self.theProject = mainGui.theProject
self.mainTheme = mainGui.mainTheme
self.refList = QLabel("") self.refList = QLabel("")
self.refList.setWordWrap(True) self.refList.setWordWrap(True)
@@ -1151,9 +1147,7 @@ class GuiDocViewDetails(QScrollArea):
self.refList.setScaledContents(True) self.refList.setScaledContents(True)
self.refList.linkActivated.connect(self._linkClicked) self.refList.linkActivated.connect(self._linkClicked)
self.linkStyle = "style='color: rgb({0},{1},{2})'".format( self.linkStyle = "style='color: rgb({0},{1},{2})'".format(*CONFIG.theme.colLink)
*self.mainTheme.colLink
)
# Assemble # Assemble
self.outerWidget = QWidget() self.outerWidget = QWidget()
+9 -10
View File
@@ -44,7 +44,6 @@ class GuiItemDetails(QWidget):
self.mainGui = mainGui self.mainGui = mainGui
self.theProject = mainGui.theProject self.theProject = mainGui.theProject
self.mainTheme = mainGui.mainTheme
# Internal Variables # Internal Variables
self._itemHandle = None self._itemHandle = None
@@ -53,7 +52,7 @@ class GuiItemDetails(QWidget):
hSp = CONFIG.pxInt(6) hSp = CONFIG.pxInt(6)
vSp = CONFIG.pxInt(1) vSp = CONFIG.pxInt(1)
mPx = CONFIG.pxInt(6) mPx = CONFIG.pxInt(6)
fPt = self.mainTheme.fontPointSize fPt = CONFIG.theme.fontPointSize
fntLabel = QFont() fntLabel = QFont()
fntLabel.setBold(True) fntLabel.setBold(True)
@@ -178,8 +177,8 @@ class GuiItemDetails(QWidget):
self.updateTheme() self.updateTheme()
# Make sure the columns for flags and counts don't resize too often # Make sure the columns for flags and counts don't resize too often
flagWidth = self.mainTheme.getTextWidth("Mm", fntValue) flagWidth = CONFIG.theme.getTextWidth("Mm", fntValue)
countWidth = self.mainTheme.getTextWidth("99,999", fntValue) countWidth = CONFIG.theme.getTextWidth("99,999", fntValue)
self.mainBox.setColumnMinimumWidth(1, flagWidth) self.mainBox.setColumnMinimumWidth(1, flagWidth)
self.mainBox.setColumnMinimumWidth(4, countWidth) self.mainBox.setColumnMinimumWidth(4, countWidth)
@@ -241,7 +240,7 @@ class GuiItemDetails(QWidget):
return return
self._itemHandle = tHandle self._itemHandle = tHandle
iPx = int(round(0.8*self.mainTheme.baseIconSize)) iPx = int(round(0.8*CONFIG.theme.baseIconSize))
# Label # Label
# ===== # =====
@@ -252,11 +251,11 @@ class GuiItemDetails(QWidget):
if nwItem.isFileType(): if nwItem.isFileType():
if nwItem.isActive: if nwItem.isActive:
self.labelIcon.setPixmap(self.mainTheme.getPixmap("checked", (iPx, iPx))) self.labelIcon.setPixmap(CONFIG.theme.getPixmap("checked", (iPx, iPx)))
else: else:
self.labelIcon.setPixmap(self.mainTheme.getPixmap("unchecked", (iPx, iPx))) self.labelIcon.setPixmap(CONFIG.theme.getPixmap("unchecked", (iPx, iPx)))
else: else:
self.labelIcon.setPixmap(self.mainTheme.getPixmap("noncheckable", (iPx, iPx))) self.labelIcon.setPixmap(CONFIG.theme.getPixmap("noncheckable", (iPx, iPx)))
self.labelData.setText(theLabel) self.labelData.setText(theLabel)
@@ -270,14 +269,14 @@ class GuiItemDetails(QWidget):
# Class # Class
# ===== # =====
classIcon = self.mainTheme.getIcon(nwLabels.CLASS_ICON[nwItem.itemClass]) classIcon = CONFIG.theme.getIcon(nwLabels.CLASS_ICON[nwItem.itemClass])
self.classIcon.setPixmap(classIcon.pixmap(iPx, iPx)) self.classIcon.setPixmap(classIcon.pixmap(iPx, iPx))
self.classData.setText(trConst(nwLabels.CLASS_NAME[nwItem.itemClass])) self.classData.setText(trConst(nwLabels.CLASS_NAME[nwItem.itemClass]))
# Layout # Layout
# ====== # ======
usageIcon = self.mainTheme.getItemIcon( usageIcon = CONFIG.theme.getItemIcon(
nwItem.itemType, nwItem.itemClass, nwItem.itemLayout, nwItem.mainHeading nwItem.itemType, nwItem.itemClass, nwItem.itemLayout, nwItem.mainHeading
) )
self.usageIcon.setPixmap(usageIcon.pixmap(iPx, iPx)) self.usageIcon.setPixmap(usageIcon.pixmap(iPx, iPx))
+8 -10
View File
@@ -201,9 +201,8 @@ class GuiNovelToolBar(QWidget):
self.novelView = novelView self.novelView = novelView
self.mainGui = novelView.mainGui self.mainGui = novelView.mainGui
self.theProject = novelView.mainGui.theProject self.theProject = novelView.mainGui.theProject
self.mainTheme = novelView.mainGui.mainTheme
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
mPx = CONFIG.pxInt(2) mPx = CONFIG.pxInt(2)
self.setContentsMargins(0, 0, 0, 0) self.setContentsMargins(0, 0, 0, 0)
@@ -276,9 +275,9 @@ class GuiNovelToolBar(QWidget):
"""Update theme elements. """Update theme elements.
""" """
# Icons # Icons
self.tbNovel.setIcon(self.mainTheme.getIcon("cls_novel")) self.tbNovel.setIcon(CONFIG.theme.getIcon("cls_novel"))
self.tbRefresh.setIcon(self.mainTheme.getIcon("refresh")) self.tbRefresh.setIcon(CONFIG.theme.getIcon("refresh"))
self.tbMore.setIcon(self.mainTheme.getIcon("menu")) self.tbMore.setIcon(CONFIG.theme.getIcon("menu"))
qPalette = self.palette() qPalette = self.palette()
qPalette.setBrush(QPalette.Window, qPalette.base()) qPalette.setBrush(QPalette.Window, qPalette.base())
@@ -401,7 +400,6 @@ class GuiNovelTree(QTreeWidget):
self.novelView = novelView self.novelView = novelView
self.mainGui = novelView.mainGui self.mainGui = novelView.mainGui
self.mainTheme = novelView.mainGui.mainTheme
self.theProject = novelView.mainGui.theProject self.theProject = novelView.mainGui.theProject
# Internal Variables # Internal Variables
@@ -419,7 +417,7 @@ class GuiNovelTree(QTreeWidget):
# Build GUI # Build GUI
# ========= # =========
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
cMg = CONFIG.pxInt(6) cMg = CONFIG.pxInt(6)
self.setIconSize(QSize(iPx, iPx)) self.setIconSize(QSize(iPx, iPx))
@@ -485,8 +483,8 @@ class GuiNovelTree(QTreeWidget):
def updateTheme(self): def updateTheme(self):
"""Update theme elements. """Update theme elements.
""" """
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
self._pMore = self.mainTheme.loadDecoration("deco_doc_more", pxH=iPx) self._pMore = CONFIG.theme.loadDecoration("deco_doc_more", pxH=iPx)
return return
## ##
@@ -737,7 +735,7 @@ class GuiNovelTree(QTreeWidget):
"""Set the tree item values from the index entry. """Set the tree item values from the index entry.
""" """
iLevel = nwHeaders.H_LEVEL.get(idxItem.level, 0) iLevel = nwHeaders.H_LEVEL.get(idxItem.level, 0)
hDec = self.mainTheme.getHeaderDecoration(iLevel) hDec = CONFIG.theme.getHeaderDecoration(iLevel)
trItem.setData(self.C_TITLE, Qt.DecorationRole, hDec) trItem.setData(self.C_TITLE, Qt.DecorationRole, hDec)
trItem.setText(self.C_TITLE, idxItem.title) trItem.setText(self.C_TITLE, idxItem.title)
+12 -15
View File
@@ -217,7 +217,6 @@ class GuiOutlineToolBar(QToolBar):
self.mainGui = theOutline.mainGui self.mainGui = theOutline.mainGui
self.theProject = theOutline.mainGui.theProject self.theProject = theOutline.mainGui.theProject
self.mainTheme = theOutline.mainGui.mainTheme
iPx = CONFIG.pxInt(22) iPx = CONFIG.pxInt(22)
mPx = CONFIG.pxInt(12) mPx = CONFIG.pxInt(12)
@@ -275,8 +274,8 @@ class GuiOutlineToolBar(QToolBar):
self.setStyleSheet("QToolBar {border: 0px;}") self.setStyleSheet("QToolBar {border: 0px;}")
self.novelValue.updateList(includeAll=True) self.novelValue.updateList(includeAll=True)
self.aRefresh.setIcon(self.mainTheme.getIcon("refresh")) self.aRefresh.setIcon(CONFIG.theme.getIcon("refresh"))
self.tbColumns.setIcon(self.mainTheme.getIcon("menu")) self.tbColumns.setIcon(CONFIG.theme.getIcon("menu"))
return return
@@ -375,7 +374,6 @@ class GuiOutlineTree(QTreeWidget):
self.outlineView = outlineView self.outlineView = outlineView
self.mainGui = outlineView.mainGui self.mainGui = outlineView.mainGui
self.theProject = outlineView.mainGui.theProject self.theProject = outlineView.mainGui.theProject
self.mainTheme = outlineView.mainGui.mainTheme
self.setUniformRowHeights(True) self.setUniformRowHeights(True)
self.setFrameStyle(QFrame.NoFrame) self.setFrameStyle(QFrame.NoFrame)
@@ -386,7 +384,7 @@ class GuiOutlineTree(QTreeWidget):
self.itemDoubleClicked.connect(self._treeDoubleClick) self.itemDoubleClicked.connect(self._treeDoubleClick)
self.itemSelectionChanged.connect(self._itemSelected) self.itemSelectionChanged.connect(self._itemSelected)
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
self.setIconSize(QSize(iPx, iPx)) self.setIconSize(QSize(iPx, iPx))
self.setIndentation(0) self.setIndentation(0)
@@ -403,11 +401,11 @@ class GuiOutlineTree(QTreeWidget):
self._hFonts = [self.font(), fH1, fH2, self.font(), self.font()] self._hFonts = [self.font(), fH1, fH2, self.font(), self.font()]
self._dIcon = { self._dIcon = {
"H0": self.mainTheme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H0"), "H0": CONFIG.theme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H0"),
"H1": self.mainTheme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H1"), "H1": CONFIG.theme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H1"),
"H2": self.mainTheme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H2"), "H2": CONFIG.theme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H2"),
"H3": self.mainTheme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H3"), "H3": CONFIG.theme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H3"),
"H4": self.mainTheme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H4"), "H4": CONFIG.theme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H4"),
} }
# Internals # Internals
@@ -675,7 +673,7 @@ class GuiOutlineTree(QTreeWidget):
trItem = QTreeWidgetItem() trItem = QTreeWidgetItem()
nwItem = self.theProject.tree[tHandle] nwItem = self.theProject.tree[tHandle]
hDec = self.mainTheme.getHeaderDecoration(iLevel) hDec = CONFIG.theme.getHeaderDecoration(iLevel)
trItem.setData(self._colIdx[nwOutline.TITLE], Qt.DecorationRole, hDec) trItem.setData(self._colIdx[nwOutline.TITLE], Qt.DecorationRole, hDec)
trItem.setText(self._colIdx[nwOutline.TITLE], novIdx.title) trItem.setText(self._colIdx[nwOutline.TITLE], novIdx.title)
@@ -777,12 +775,11 @@ class GuiOutlineDetails(QScrollArea):
self.theOutline = theOutline self.theOutline = theOutline
self.mainGui = theOutline.mainGui self.mainGui = theOutline.mainGui
self.theProject = theOutline.mainGui.theProject self.theProject = theOutline.mainGui.theProject
self.mainTheme = theOutline.mainGui.mainTheme
# Sizes # Sizes
minTitle = 30*self.mainTheme.textNWidth minTitle = 30*CONFIG.theme.textNWidth
maxTitle = 40*self.mainTheme.textNWidth maxTitle = 40*CONFIG.theme.textNWidth
wCount = self.mainTheme.getTextWidth("999,999") wCount = CONFIG.theme.getTextWidth("999,999")
hSpace = int(CONFIG.pxInt(10)) hSpace = int(CONFIG.pxInt(10))
vSpace = int(CONFIG.pxInt(4)) vSpace = int(CONFIG.pxInt(4))
+16 -18
View File
@@ -237,9 +237,8 @@ class GuiProjectToolBar(QWidget):
self.projTree = projView.projTree self.projTree = projView.projTree
self.mainGui = projView.mainGui self.mainGui = projView.mainGui
self.theProject = projView.mainGui.theProject self.theProject = projView.mainGui.theProject
self.mainTheme = projView.mainGui.mainTheme
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
mPx = CONFIG.pxInt(2) mPx = CONFIG.pxInt(2)
self.setContentsMargins(0, 0, 0, 0) self.setContentsMargins(0, 0, 0, 0)
@@ -370,16 +369,16 @@ class GuiProjectToolBar(QWidget):
self.tbAdd.setStyleSheet(buttonStyle) self.tbAdd.setStyleSheet(buttonStyle)
self.tbMore.setStyleSheet(buttonStyle) self.tbMore.setStyleSheet(buttonStyle)
self.tbQuick.setIcon(self.mainTheme.getIcon("bookmark")) self.tbQuick.setIcon(CONFIG.theme.getIcon("bookmark"))
self.tbMoveU.setIcon(self.mainTheme.getIcon("up")) self.tbMoveU.setIcon(CONFIG.theme.getIcon("up"))
self.tbMoveD.setIcon(self.mainTheme.getIcon("down")) self.tbMoveD.setIcon(CONFIG.theme.getIcon("down"))
self.aAddEmpty.setIcon(self.mainTheme.getIcon("proj_document")) self.aAddEmpty.setIcon(CONFIG.theme.getIcon("proj_document"))
self.aAddChap.setIcon(self.mainTheme.getIcon("proj_chapter")) self.aAddChap.setIcon(CONFIG.theme.getIcon("proj_chapter"))
self.aAddScene.setIcon(self.mainTheme.getIcon("proj_scene")) self.aAddScene.setIcon(CONFIG.theme.getIcon("proj_scene"))
self.aAddNote.setIcon(self.mainTheme.getIcon("proj_note")) self.aAddNote.setIcon(CONFIG.theme.getIcon("proj_note"))
self.aAddFolder.setIcon(self.mainTheme.getIcon("proj_folder")) self.aAddFolder.setIcon(CONFIG.theme.getIcon("proj_folder"))
self.tbAdd.setIcon(self.mainTheme.getIcon("add")) self.tbAdd.setIcon(CONFIG.theme.getIcon("add"))
self.tbMore.setIcon(self.mainTheme.getIcon("menu")) self.tbMore.setIcon(CONFIG.theme.getIcon("menu"))
self.buildQuickLinkMenu() self.buildQuickLinkMenu()
self._buildRootMenu() self._buildRootMenu()
@@ -398,7 +397,7 @@ class GuiProjectToolBar(QWidget):
for n, (tHandle, nwItem) in enumerate(self.theProject.tree.iterRoots(None)): for n, (tHandle, nwItem) in enumerate(self.theProject.tree.iterRoots(None)):
aRoot = self.mQuick.addAction(nwItem.itemName) aRoot = self.mQuick.addAction(nwItem.itemName)
aRoot.setData(tHandle) aRoot.setData(tHandle)
aRoot.setIcon(self.mainTheme.getIcon(nwLabels.CLASS_ICON[nwItem.itemClass])) aRoot.setIcon(CONFIG.theme.getIcon(nwLabels.CLASS_ICON[nwItem.itemClass]))
aRoot.triggered.connect( aRoot.triggered.connect(
lambda n, tHandle=tHandle: self.projView.setSelectedHandle(tHandle, doScroll=True) lambda n, tHandle=tHandle: self.projView.setSelectedHandle(tHandle, doScroll=True)
) )
@@ -412,7 +411,7 @@ class GuiProjectToolBar(QWidget):
"""Build the rood folder menu.""" """Build the rood folder menu."""
def addClass(itemClass): def addClass(itemClass):
aNew = self.mAddRoot.addAction(trConst(nwLabels.CLASS_NAME[itemClass])) aNew = self.mAddRoot.addAction(trConst(nwLabels.CLASS_NAME[itemClass]))
aNew.setIcon(self.mainTheme.getIcon(nwLabels.CLASS_ICON[itemClass])) aNew.setIcon(CONFIG.theme.getIcon(nwLabels.CLASS_ICON[itemClass]))
aNew.triggered.connect(lambda: self.projTree.newTreeItem(nwItemType.ROOT, itemClass)) aNew.triggered.connect(lambda: self.projTree.newTreeItem(nwItemType.ROOT, itemClass))
self.mAddRoot.addAction(aNew) self.mAddRoot.addAction(aNew)
return return
@@ -469,7 +468,6 @@ class GuiProjectTree(QTreeWidget):
self.projView = projView self.projView = projView
self.mainGui = projView.mainGui self.mainGui = projView.mainGui
self.mainTheme = projView.mainGui.mainTheme
self.theProject = projView.mainGui.theProject self.theProject = projView.mainGui.theProject
# Internal Variables # Internal Variables
@@ -485,7 +483,7 @@ class GuiProjectTree(QTreeWidget):
self.customContextMenuRequested.connect(self._openContextMenu) self.customContextMenuRequested.connect(self._openContextMenu)
# Tree Settings # Tree Settings
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
cMg = CONFIG.pxInt(6) cMg = CONFIG.pxInt(6)
self.setIconSize(QSize(iPx, iPx)) self.setIconSize(QSize(iPx, iPx))
@@ -995,7 +993,7 @@ class GuiProjectTree(QTreeWidget):
itemStatus, statusIcon = nwItem.getImportStatus(incIcon=True) itemStatus, statusIcon = nwItem.getImportStatus(incIcon=True)
hLevel = nwItem.mainHeading hLevel = nwItem.mainHeading
itemIcon = self.mainTheme.getItemIcon( itemIcon = CONFIG.theme.getItemIcon(
nwItem.itemType, nwItem.itemClass, nwItem.itemLayout, hLevel nwItem.itemType, nwItem.itemClass, nwItem.itemLayout, hLevel
) )
@@ -1011,7 +1009,7 @@ class GuiProjectTree(QTreeWidget):
else: else:
iconName = "noncheckable" iconName = "noncheckable"
trItem.setIcon(self.C_ACTIVE, self.mainTheme.getIcon(iconName)) trItem.setIcon(self.C_ACTIVE, CONFIG.theme.getIcon(iconName))
if CONFIG.emphLabels and nwItem.isDocumentLayout(): if CONFIG.emphLabels and nwItem.isDocumentLayout():
trFont = trItem.font(self.C_NAME) trFont = trItem.font(self.C_NAME)
+10 -11
View File
@@ -45,15 +45,14 @@ class GuiSideBar(QToolBar):
logger.debug("Create: GuiSideBar") logger.debug("Create: GuiSideBar")
self.mainGui = mainGui self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
# Style # Style
iPx = CONFIG.pxInt(22) iPx = CONFIG.pxInt(22)
mPx = CONFIG.pxInt(60) mPx = CONFIG.pxInt(60)
lblFont = self.mainTheme.guiFont lblFont = CONFIG.theme.guiFont
lblFont.setPointSizeF(0.65*self.mainTheme.fontPointSize) lblFont.setPointSizeF(0.65*CONFIG.theme.fontPointSize)
self.setMovable(False) self.setMovable(False)
self.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) self.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)
@@ -131,13 +130,13 @@ class GuiSideBar(QToolBar):
""" """
self.setStyleSheet("QToolBar {border: 0px;}") self.setStyleSheet("QToolBar {border: 0px;}")
self.aProject.setIcon(self.mainTheme.getIcon("view_editor")) self.aProject.setIcon(CONFIG.theme.getIcon("view_editor"))
self.aNovel.setIcon(self.mainTheme.getIcon("view_novel")) self.aNovel.setIcon(CONFIG.theme.getIcon("view_novel"))
self.aOutline.setIcon(self.mainTheme.getIcon("view_outline")) self.aOutline.setIcon(CONFIG.theme.getIcon("view_outline"))
self.aBuild.setIcon(self.mainTheme.getIcon("view_build")) self.aBuild.setIcon(CONFIG.theme.getIcon("view_build"))
self.aDetails.setIcon(self.mainTheme.getIcon("proj_details")) self.aDetails.setIcon(CONFIG.theme.getIcon("proj_details"))
self.aStats.setIcon(self.mainTheme.getIcon("proj_stats")) self.aStats.setIcon(CONFIG.theme.getIcon("proj_stats"))
self.tbSettings.setIcon(self.mainTheme.getIcon("settings")) self.tbSettings.setIcon(CONFIG.theme.getIcon("settings"))
return return
+10 -11
View File
@@ -47,15 +47,14 @@ class GuiMainStatus(QStatusBar):
logger.debug("Create: GuiMainStatus") logger.debug("Create: GuiMainStatus")
self.mainGui = mainGui self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.refTime = None self.refTime = None
self.userIdle = False self.userIdle = False
colNone = QColor(*self.mainTheme.statNone) colNone = QColor(*CONFIG.theme.statNone)
colSaved = QColor(*self.mainTheme.statSaved) colSaved = QColor(*CONFIG.theme.statSaved)
colUnsaved = QColor(*self.mainTheme.statUnsaved) colUnsaved = QColor(*CONFIG.theme.statUnsaved)
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
# Permanent Widgets # Permanent Widgets
# ================= # =================
@@ -99,7 +98,7 @@ class GuiMainStatus(QStatusBar):
self.timeIcon = QLabel() self.timeIcon = QLabel()
self.timeText = QLabel("") self.timeText = QLabel("")
self.timeText.setToolTip(self.tr("Session Time")) self.timeText.setToolTip(self.tr("Session Time"))
self.timeText.setMinimumWidth(self.mainTheme.getTextWidth("00:00:00:")) self.timeText.setMinimumWidth(CONFIG.theme.getTextWidth("00:00:00:"))
self.timeIcon.setContentsMargins(0, 0, 0, 0) self.timeIcon.setContentsMargins(0, 0, 0, 0)
self.timeText.setContentsMargins(0, 0, 0, 0) self.timeText.setContentsMargins(0, 0, 0, 0)
self.addPermanentWidget(self.timeIcon) self.addPermanentWidget(self.timeIcon)
@@ -129,13 +128,13 @@ class GuiMainStatus(QStatusBar):
def updateTheme(self): def updateTheme(self):
"""Update theme elements. """Update theme elements.
""" """
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
self.langIcon.setPixmap(self.mainTheme.getPixmap("status_lang", (iPx, iPx))) self.langIcon.setPixmap(CONFIG.theme.getPixmap("status_lang", (iPx, iPx)))
self.statsIcon.setPixmap(self.mainTheme.getPixmap("status_stats", (iPx, iPx))) self.statsIcon.setPixmap(CONFIG.theme.getPixmap("status_stats", (iPx, iPx)))
self.timePixmap = self.mainTheme.getPixmap("status_time", (iPx, iPx)) self.timePixmap = CONFIG.theme.getPixmap("status_time", (iPx, iPx))
self.idlePixmap = self.mainTheme.getPixmap("status_idle", (iPx, iPx)) self.idlePixmap = CONFIG.theme.getPixmap("status_idle", (iPx, iPx))
self.timeIcon.setPixmap(self.timePixmap) self.timeIcon.setPixmap(self.timePixmap)
+8 -8
View File
@@ -113,7 +113,7 @@ class GuiMain(QMainWindow):
# ============ # ============
# Core Classes # Core Classes
self.mainTheme = GuiTheme() CONFIG.setThemeInstance(GuiTheme())
self.theProject = NWProject(self) self.theProject = NWProject(self)
# Core Settings # Core Settings
@@ -135,7 +135,7 @@ class GuiMain(QMainWindow):
# ============= # =============
# Sizes # Sizes
iPx = self.mainTheme.fontPixelSize iPx = CONFIG.theme.fontPixelSize
mPx = CONFIG.pxInt(4) mPx = CONFIG.pxInt(4)
hWd = CONFIG.pxInt(4) hWd = CONFIG.pxInt(4)
@@ -307,10 +307,10 @@ class GuiMain(QMainWindow):
# Cache Alert Pixmaps # Cache Alert Pixmaps
pxSize = (2*iPx, 2*iPx) pxSize = (2*iPx, 2*iPx)
self.alertPix: dict[nwAlert, QPixmap] = { self.alertPix: dict[nwAlert, QPixmap] = {
nwAlert.INFO: self.mainTheme.getPixmap("alert_info", pxSize), nwAlert.INFO: CONFIG.theme.getPixmap("alert_info", pxSize),
nwAlert.WARN: self.mainTheme.getPixmap("alert_warn", pxSize), nwAlert.WARN: CONFIG.theme.getPixmap("alert_warn", pxSize),
nwAlert.ERROR: self.mainTheme.getPixmap("alert_error", pxSize), nwAlert.ERROR: CONFIG.theme.getPixmap("alert_error", pxSize),
nwAlert.ASK: self.mainTheme.getPixmap("alert_question", pxSize), nwAlert.ASK: CONFIG.theme.getPixmap("alert_question", pxSize),
} }
# Check that config loaded fine # Check that config loaded fine
@@ -912,7 +912,7 @@ class GuiMain(QMainWindow):
if dlgConf.updateTheme: if dlgConf.updateTheme:
# We are doing this manually instead of connecting to # We are doing this manually instead of connecting to
# qApp.paletteChanged since the processing order matters # qApp.paletteChanged since the processing order matters
self.mainTheme.loadTheme() CONFIG.theme.loadTheme()
self.docEditor.updateTheme() self.docEditor.updateTheme()
self.docViewer.updateTheme() self.docViewer.updateTheme()
self.viewsBar.updateTheme() self.viewsBar.updateTheme()
@@ -923,7 +923,7 @@ class GuiMain(QMainWindow):
self.mainStatus.updateTheme() self.mainStatus.updateTheme()
if dlgConf.updateSyntax: if dlgConf.updateSyntax:
self.mainTheme.loadSyntax() CONFIG.theme.loadSyntax()
self.docEditor.updateSyntaxColours() self.docEditor.updateSyntaxColours()
self.docEditor.initEditor() self.docEditor.initEditor()
+2 -3
View File
@@ -49,8 +49,7 @@ class GuiLipsum(QDialog):
if CONFIG.osDarwin: if CONFIG.osDarwin:
self.setWindowFlag(Qt.WindowType.Tool) self.setWindowFlag(Qt.WindowType.Tool)
self.mainGui = mainGui self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.setWindowTitle(self.tr("Insert Placeholder Text")) self.setWindowTitle(self.tr("Insert Placeholder Text"))
@@ -61,7 +60,7 @@ class GuiLipsum(QDialog):
nPx = CONFIG.pxInt(64) nPx = CONFIG.pxInt(64)
vSp = CONFIG.pxInt(4) vSp = CONFIG.pxInt(4)
self.docIcon = QLabel() self.docIcon = QLabel()
self.docIcon.setPixmap(self.mainTheme.getPixmap("proj_document", (nPx, nPx))) self.docIcon.setPixmap(CONFIG.theme.getPixmap("proj_document", (nPx, nPx)))
self.leftBox = QVBoxLayout() self.leftBox = QVBoxLayout()
self.leftBox.setSpacing(vSp) self.leftBox.setSpacing(vSp)
+5 -6
View File
@@ -66,7 +66,6 @@ class GuiManuscriptBuild(QDialog):
self.setObjectName("GuiManuscriptBuild") self.setObjectName("GuiManuscriptBuild")
self.mainGui = mainGui self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.theProject = mainGui.theProject self.theProject = mainGui.theProject
self._parent = parent self._parent = parent
@@ -76,7 +75,7 @@ class GuiManuscriptBuild(QDialog):
self.setMinimumWidth(CONFIG.pxInt(500)) self.setMinimumWidth(CONFIG.pxInt(500))
self.setMinimumHeight(CONFIG.pxInt(300)) self.setMinimumHeight(CONFIG.pxInt(300))
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
sp4 = CONFIG.pxInt(4) sp4 = CONFIG.pxInt(4)
sp8 = CONFIG.pxInt(8) sp8 = CONFIG.pxInt(8)
sp16 = CONFIG.pxInt(16) sp16 = CONFIG.pxInt(16)
@@ -148,7 +147,7 @@ class GuiManuscriptBuild(QDialog):
# Build Path # Build Path
self.lblPath = QLabel(self.tr("Path")) self.lblPath = QLabel(self.tr("Path"))
self.buildPath = QLineEdit(self) self.buildPath = QLineEdit(self)
self.btnBrowse = QPushButton(self.mainTheme.getIcon("browse"), "") self.btnBrowse = QPushButton(CONFIG.theme.getIcon("browse"), "")
self.pathBox = QHBoxLayout() self.pathBox = QHBoxLayout()
self.pathBox.addWidget(self.buildPath) self.pathBox.addWidget(self.buildPath)
@@ -158,7 +157,7 @@ class GuiManuscriptBuild(QDialog):
# Build Name # Build Name
self.lblName = QLabel(self.tr("File Name")) self.lblName = QLabel(self.tr("File Name"))
self.buildName = QLineEdit(self) self.buildName = QLineEdit(self)
self.btnReset = QPushButton(self.mainTheme.getIcon("revert"), "") self.btnReset = QPushButton(CONFIG.theme.getIcon("revert"), "")
self.btnReset.setToolTip(self.tr("Reset file name to default")) self.btnReset.setToolTip(self.tr("Reset file name to default"))
self.nameBox = QHBoxLayout() self.nameBox = QHBoxLayout()
@@ -183,7 +182,7 @@ class GuiManuscriptBuild(QDialog):
self.buildBox.setVerticalSpacing(sp4) self.buildBox.setVerticalSpacing(sp4)
# Dialog Buttons # Dialog Buttons
self.btnBuild = QPushButton(self.mainTheme.getIcon("export"), self.tr("&Build")) self.btnBuild = QPushButton(CONFIG.theme.getIcon("export"), self.tr("&Build"))
self.dlgButtons = QDialogButtonBox(QDialogButtonBox.Close) self.dlgButtons = QDialogButtonBox(QDialogButtonBox.Close)
self.dlgButtons.addButton(self.btnBuild, QDialogButtonBox.ActionRole) self.dlgButtons.addButton(self.btnBuild, QDialogButtonBox.ActionRole)
@@ -382,7 +381,7 @@ class GuiManuscriptBuild(QDialog):
if isinstance(rItem, NWItem): if isinstance(rItem, NWItem):
rootMap[rHandle] = rItem.itemName rootMap[rHandle] = rItem.itemName
itemIcon = self.mainTheme.getItemIcon( itemIcon = CONFIG.theme.getItemIcon(
nwItem.itemType, nwItem.itemClass, nwItem.itemType, nwItem.itemClass,
nwItem.itemLayout, nwItem.mainHeading nwItem.itemLayout, nwItem.mainHeading
) )
+8 -10
View File
@@ -73,7 +73,6 @@ class GuiManuscript(QDialog):
self.setWindowFlag(Qt.WindowType.Tool) self.setWindowFlag(Qt.WindowType.Tool)
self.mainGui = mainGui self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.theProject = mainGui.theProject self.theProject = mainGui.theProject
self._builds = BuildCollection(self.theProject) self._builds = BuildCollection(self.theProject)
@@ -83,7 +82,7 @@ class GuiManuscript(QDialog):
self.setMinimumWidth(CONFIG.pxInt(600)) self.setMinimumWidth(CONFIG.pxInt(600))
self.setMinimumHeight(CONFIG.pxInt(500)) self.setMinimumHeight(CONFIG.pxInt(500))
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
wWin = CONFIG.pxInt(900) wWin = CONFIG.pxInt(900)
hWin = CONFIG.pxInt(600) hWin = CONFIG.pxInt(600)
@@ -107,21 +106,21 @@ class GuiManuscript(QDialog):
).format(CONFIG.pxInt(2), fadeCol.red(), fadeCol.green(), fadeCol.blue()) ).format(CONFIG.pxInt(2), fadeCol.red(), fadeCol.green(), fadeCol.blue())
self.tbAdd = QToolButton(self) self.tbAdd = QToolButton(self)
self.tbAdd.setIcon(self.mainTheme.getIcon("add")) self.tbAdd.setIcon(CONFIG.theme.getIcon("add"))
self.tbAdd.setIconSize(QSize(iPx, iPx)) self.tbAdd.setIconSize(QSize(iPx, iPx))
self.tbAdd.setToolTip(self.tr("Add New Build")) self.tbAdd.setToolTip(self.tr("Add New Build"))
self.tbAdd.setStyleSheet(buttonStyle) self.tbAdd.setStyleSheet(buttonStyle)
self.tbAdd.clicked.connect(self._createNewBuild) self.tbAdd.clicked.connect(self._createNewBuild)
self.tbDel = QToolButton(self) self.tbDel = QToolButton(self)
self.tbDel.setIcon(self.mainTheme.getIcon("remove")) self.tbDel.setIcon(CONFIG.theme.getIcon("remove"))
self.tbDel.setIconSize(QSize(iPx, iPx)) self.tbDel.setIconSize(QSize(iPx, iPx))
self.tbDel.setToolTip(self.tr("Delete Selected Build")) self.tbDel.setToolTip(self.tr("Delete Selected Build"))
self.tbDel.setStyleSheet(buttonStyle) self.tbDel.setStyleSheet(buttonStyle)
self.tbDel.clicked.connect(self._deleteSelectedBuild) self.tbDel.clicked.connect(self._deleteSelectedBuild)
self.tbEdit = QToolButton(self) self.tbEdit = QToolButton(self)
self.tbEdit.setIcon(self.mainTheme.getIcon("edit")) self.tbEdit.setIcon(CONFIG.theme.getIcon("edit"))
self.tbEdit.setIconSize(QSize(iPx, iPx)) self.tbEdit.setIconSize(QSize(iPx, iPx))
self.tbEdit.setToolTip(self.tr("Edit Selected Build")) self.tbEdit.setToolTip(self.tr("Edit Selected Build"))
self.tbEdit.setStyleSheet(buttonStyle) self.tbEdit.setStyleSheet(buttonStyle)
@@ -428,7 +427,7 @@ class GuiManuscript(QDialog):
for key, name in self._builds.builds(): for key, name in self._builds.builds():
bItem = QListWidgetItem() bItem = QListWidgetItem()
bItem.setText(name) bItem.setText(name)
bItem.setIcon(self.mainTheme.getIcon("export")) bItem.setIcon(CONFIG.theme.getIcon("export"))
bItem.setData(self.D_KEY, key) bItem.setData(self.D_KEY, key)
self.buildList.addItem(bItem) self.buildList.addItem(bItem)
self._buildMap[key] = bItem self._buildMap[key] = bItem
@@ -452,7 +451,6 @@ class _PreviewWidget(QTextBrowser):
super().__init__(parent=mainGui) super().__init__(parent=mainGui)
self.mainGui = mainGui self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.theProject = mainGui.theProject self.theProject = mainGui.theProject
self._docTime = 0 self._docTime = 0
@@ -464,7 +462,7 @@ class _PreviewWidget(QTextBrowser):
dPalette.setColor(QPalette.Text, QColor(0, 0, 0)) dPalette.setColor(QPalette.Text, QColor(0, 0, 0))
self.setPalette(dPalette) self.setPalette(dPalette)
self.setMinimumWidth(40*self.mainGui.mainTheme.textNWidth) self.setMinimumWidth(40*CONFIG.theme.textNWidth)
self.setTextFont(CONFIG.textFont, CONFIG.textSize) self.setTextFont(CONFIG.textFont, CONFIG.textSize)
self.setTabStopDistance(CONFIG.getTabWidth()) self.setTabStopDistance(CONFIG.getTabWidth())
self.setOpenExternalLinks(False) self.setOpenExternalLinks(False)
@@ -482,7 +480,7 @@ class _PreviewWidget(QTextBrowser):
aPalette.setColor(QPalette.Foreground, aPalette.toolTipText().color()) aPalette.setColor(QPalette.Foreground, aPalette.toolTipText().color())
aFont = self.font() aFont = self.font()
aFont.setPointSizeF(0.9*self.mainTheme.fontPointSize) aFont.setPointSizeF(0.9*CONFIG.theme.fontPointSize)
self.ageLabel = QLabel("", self) self.ageLabel = QLabel("", self)
self.ageLabel.setIndent(0) self.ageLabel.setIndent(0)
@@ -490,7 +488,7 @@ class _PreviewWidget(QTextBrowser):
self.ageLabel.setPalette(aPalette) self.ageLabel.setPalette(aPalette)
self.ageLabel.setAutoFillBackground(True) self.ageLabel.setAutoFillBackground(True)
self.ageLabel.setAlignment(Qt.AlignCenter) self.ageLabel.setAlignment(Qt.AlignCenter)
self.ageLabel.setFixedHeight(int(2.1*self.mainTheme.fontPixelSize)) self.ageLabel.setFixedHeight(int(2.1*CONFIG.theme.fontPixelSize))
# Progress # Progress
self.buildProgress = NProgressCircle(self, CONFIG.pxInt(160), CONFIG.pxInt(16)) self.buildProgress = NProgressCircle(self, CONFIG.pxInt(160), CONFIG.pxInt(16))
+30 -41
View File
@@ -49,7 +49,6 @@ from novelwriter.extensions.pagedsidebar import NPagedSideBar
if TYPE_CHECKING: # pragma: no cover if TYPE_CHECKING: # pragma: no cover
from novelwriter.guimain import GuiMain from novelwriter.guimain import GuiMain
from novelwriter.gui.theme import GuiTheme
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -78,7 +77,6 @@ class GuiBuildSettings(QDialog):
self.setWindowFlag(Qt.WindowType.Tool) self.setWindowFlag(Qt.WindowType.Tool)
self.mainGui = mainGui self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.theProject = mainGui.theProject self.theProject = mainGui.theProject
self._build = build self._build = build
@@ -103,7 +101,7 @@ class GuiBuildSettings(QDialog):
self.optSideBar = NPagedSideBar(self) self.optSideBar = NPagedSideBar(self)
self.optSideBar.setMinimumWidth(mPx) self.optSideBar.setMinimumWidth(mPx)
self.optSideBar.setMaximumWidth(mPx) self.optSideBar.setMaximumWidth(mPx)
self.optSideBar.setLabelColor(self.mainTheme.helpText) self.optSideBar.setLabelColor(CONFIG.theme.helpText)
self.optSideBar.addLabel(self.tr("Options")) self.optSideBar.addLabel(self.tr("Options"))
self.optSideBar.addButton(self.tr("Selection"), self.OPT_FILTERS) self.optSideBar.addButton(self.tr("Selection"), self.OPT_FILTERS)
@@ -307,7 +305,6 @@ class _FilterTab(QWidget):
super().__init__(parent=buildMain) super().__init__(parent=buildMain)
self.mainGui = buildMain.mainGui self.mainGui = buildMain.mainGui
self.mainTheme = buildMain.mainGui.mainTheme
self.theProject = buildMain.mainGui.theProject self.theProject = buildMain.mainGui.theProject
self._treeMap: dict[str, QTreeWidgetItem] = {} self._treeMap: dict[str, QTreeWidgetItem] = {}
@@ -315,9 +312,9 @@ class _FilterTab(QWidget):
self._statusFlags: dict[int, QIcon] = { self._statusFlags: dict[int, QIcon] = {
self.F_NONE: QIcon(), self.F_NONE: QIcon(),
self.F_FILTERED: self.mainTheme.getIcon("build_filtered"), self.F_FILTERED: CONFIG.theme.getIcon("build_filtered"),
self.F_INCLUDED: self.mainTheme.getIcon("build_included"), self.F_INCLUDED: CONFIG.theme.getIcon("build_included"),
self.F_EXCLUDED: self.mainTheme.getIcon("build_excluded"), self.F_EXCLUDED: CONFIG.theme.getIcon("build_excluded"),
} }
self._trIncluded = self.tr("Included in manuscript") self._trIncluded = self.tr("Included in manuscript")
@@ -327,7 +324,7 @@ class _FilterTab(QWidget):
# ============ # ============
# Tree Settings # Tree Settings
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
cMg = CONFIG.pxInt(6) cMg = CONFIG.pxInt(6)
# Tree Widget # Tree Widget
@@ -365,7 +362,7 @@ class _FilterTab(QWidget):
self.resetButton = QToolButton(self) self.resetButton = QToolButton(self)
self.resetButton.setToolTip(self.tr("Reset to default")) self.resetButton.setToolTip(self.tr("Reset to default"))
self.resetButton.setIcon(self.mainTheme.getIcon("revert")) self.resetButton.setIcon(CONFIG.theme.getIcon("revert"))
self.resetButton.clicked.connect(lambda: self._setSelectedMode(self.F_FILTERED)) self.resetButton.clicked.connect(lambda: self._setSelectedMode(self.F_FILTERED))
self.modeBox = QHBoxLayout() self.modeBox = QHBoxLayout()
@@ -466,7 +463,7 @@ class _FilterTab(QWidget):
continue continue
hLevel = nwItem.mainHeading hLevel = nwItem.mainHeading
itemIcon = self.mainTheme.getItemIcon( itemIcon = CONFIG.theme.getItemIcon(
nwItem.itemType, nwItem.itemClass, nwItem.itemLayout, hLevel nwItem.itemType, nwItem.itemClass, nwItem.itemLayout, hLevel
) )
@@ -480,7 +477,7 @@ class _FilterTab(QWidget):
trItem.setText(self.C_NAME, nwItem.itemName) trItem.setText(self.C_NAME, nwItem.itemName)
trItem.setData(self.C_DATA, self.D_HANDLE, tHandle) trItem.setData(self.C_DATA, self.D_HANDLE, tHandle)
trItem.setData(self.C_DATA, self.D_FILE, isFile) trItem.setData(self.C_DATA, self.D_FILE, isFile)
trItem.setIcon(self.C_ACTIVE, self.mainTheme.getIcon(iconName)) trItem.setIcon(self.C_ACTIVE, CONFIG.theme.getIcon(iconName))
trItem.setTextAlignment(self.C_NAME, Qt.AlignLeft) trItem.setTextAlignment(self.C_NAME, Qt.AlignLeft)
@@ -504,19 +501,19 @@ class _FilterTab(QWidget):
self.filterOpt.clear() self.filterOpt.clear()
self.filterOpt.addLabel(self._build.getLabel("filter")) self.filterOpt.addLabel(self._build.getLabel("filter"))
self.filterOpt.addItem( self.filterOpt.addItem(
self.mainTheme.getIcon("proj_scene"), CONFIG.theme.getIcon("proj_scene"),
self._build.getLabel("filter.includeNovel"), self._build.getLabel("filter.includeNovel"),
"doc:filter.includeNovel", "doc:filter.includeNovel",
default=self._build.getBool("filter.includeNovel") default=self._build.getBool("filter.includeNovel")
) )
self.filterOpt.addItem( self.filterOpt.addItem(
self.mainTheme.getIcon("proj_note"), CONFIG.theme.getIcon("proj_note"),
self._build.getLabel("filter.includeNotes"), self._build.getLabel("filter.includeNotes"),
"doc:filter.includeNotes", "doc:filter.includeNotes",
default=self._build.getBool("filter.includeNotes") default=self._build.getBool("filter.includeNotes")
) )
self.filterOpt.addItem( self.filterOpt.addItem(
self.mainTheme.getIcon("unchecked"), CONFIG.theme.getIcon("unchecked"),
self._build.getLabel("filter.includeInactive"), self._build.getLabel("filter.includeInactive"),
"doc:filter.includeInactive", "doc:filter.includeInactive",
default=self._build.getBool("filter.includeInactive") default=self._build.getBool("filter.includeInactive")
@@ -528,7 +525,7 @@ class _FilterTab(QWidget):
self.filterOpt.addLabel(self.tr("Select Root Folders")) self.filterOpt.addLabel(self.tr("Select Root Folders"))
for tHandle, nwItem in self.theProject.tree.iterRoots(None): for tHandle, nwItem in self.theProject.tree.iterRoots(None):
if not nwItem.isInactiveClass(): if not nwItem.isInactiveClass():
itemIcon = self.mainTheme.getItemIcon( itemIcon = CONFIG.theme.getItemIcon(
nwItem.itemType, nwItem.itemClass, nwItem.itemLayout nwItem.itemType, nwItem.itemClass, nwItem.itemLayout
) )
self.filterOpt.addItem( self.filterOpt.addItem(
@@ -603,13 +600,12 @@ class _HeadingsTab(QWidget):
super().__init__(parent=buildMain) super().__init__(parent=buildMain)
self.mainGui = buildMain.mainGui self.mainGui = buildMain.mainGui
self.mainTheme = buildMain.mainGui.mainTheme
self.theProject = buildMain.mainGui.theProject self.theProject = buildMain.mainGui.theProject
self._build = build self._build = build
self._editing = 0 self._editing = 0
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
vSp = CONFIG.pxInt(12) vSp = CONFIG.pxInt(12)
bSp = CONFIG.pxInt(6) bSp = CONFIG.pxInt(6)
@@ -623,7 +619,7 @@ class _HeadingsTab(QWidget):
self.fmtTitle = QLineEdit("") self.fmtTitle = QLineEdit("")
self.fmtTitle.setReadOnly(True) self.fmtTitle.setReadOnly(True)
self.btnTitle = QToolButton() self.btnTitle = QToolButton()
self.btnTitle.setIcon(self.mainTheme.getIcon("edit")) self.btnTitle.setIcon(CONFIG.theme.getIcon("edit"))
self.btnTitle.clicked.connect(lambda: self._editHeading(self.EDIT_TITLE)) self.btnTitle.clicked.connect(lambda: self._editHeading(self.EDIT_TITLE))
wrapTitle = QHBoxLayout() wrapTitle = QHBoxLayout()
@@ -639,7 +635,7 @@ class _HeadingsTab(QWidget):
self.fmtChapter = QLineEdit("") self.fmtChapter = QLineEdit("")
self.fmtChapter.setReadOnly(True) self.fmtChapter.setReadOnly(True)
self.btnChapter = QToolButton() self.btnChapter = QToolButton()
self.btnChapter.setIcon(self.mainTheme.getIcon("edit")) self.btnChapter.setIcon(CONFIG.theme.getIcon("edit"))
self.btnChapter.clicked.connect(lambda: self._editHeading(self.EDIT_CHAPTER)) self.btnChapter.clicked.connect(lambda: self._editHeading(self.EDIT_CHAPTER))
wrapChapter = QHBoxLayout() wrapChapter = QHBoxLayout()
@@ -655,7 +651,7 @@ class _HeadingsTab(QWidget):
self.fmtUnnumbered = QLineEdit("") self.fmtUnnumbered = QLineEdit("")
self.fmtUnnumbered.setReadOnly(True) self.fmtUnnumbered.setReadOnly(True)
self.btnUnnumbered = QToolButton() self.btnUnnumbered = QToolButton()
self.btnUnnumbered.setIcon(self.mainTheme.getIcon("edit")) self.btnUnnumbered.setIcon(CONFIG.theme.getIcon("edit"))
self.btnUnnumbered.clicked.connect(lambda: self._editHeading(self.EDIT_UNNUM)) self.btnUnnumbered.clicked.connect(lambda: self._editHeading(self.EDIT_UNNUM))
wrapUnnumbered = QHBoxLayout() wrapUnnumbered = QHBoxLayout()
@@ -672,7 +668,7 @@ class _HeadingsTab(QWidget):
self.fmtScene = QLineEdit("") self.fmtScene = QLineEdit("")
self.fmtScene.setReadOnly(True) self.fmtScene.setReadOnly(True)
self.btnScene = QToolButton() self.btnScene = QToolButton()
self.btnScene.setIcon(self.mainTheme.getIcon("edit")) self.btnScene.setIcon(CONFIG.theme.getIcon("edit"))
self.btnScene.clicked.connect(lambda: self._editHeading(self.EDIT_SCENE)) self.btnScene.clicked.connect(lambda: self._editHeading(self.EDIT_SCENE))
self.hdeScene = QLabel(self.tr("Hide")) self.hdeScene = QLabel(self.tr("Hide"))
self.hdeScene.setToolTip(sceneHideTip) self.hdeScene.setToolTip(sceneHideTip)
@@ -699,7 +695,7 @@ class _HeadingsTab(QWidget):
self.fmtSection = QLineEdit("") self.fmtSection = QLineEdit("")
self.fmtSection.setReadOnly(True) self.fmtSection.setReadOnly(True)
self.btnSection = QToolButton() self.btnSection = QToolButton()
self.btnSection.setIcon(self.mainTheme.getIcon("edit")) self.btnSection.setIcon(CONFIG.theme.getIcon("edit"))
self.btnSection.clicked.connect(lambda: self._editHeading(self.EDIT_SECTION)) self.btnSection.clicked.connect(lambda: self._editHeading(self.EDIT_SECTION))
self.hdeSection = QLabel(self.tr("Hide")) self.hdeSection = QLabel(self.tr("Hide"))
self.hdeSection.setToolTip(sectionHideTip) self.hdeSection.setToolTip(sectionHideTip)
@@ -729,7 +725,7 @@ class _HeadingsTab(QWidget):
self.editTextBox.setFixedHeight(5*iPx) self.editTextBox.setFixedHeight(5*iPx)
self.editTextBox.setEnabled(False) self.editTextBox.setEnabled(False)
self.formSyntax = _HeadingSyntaxHighlighter(self.editTextBox.document(), self.mainTheme) self.formSyntax = _HeadingSyntaxHighlighter(self.editTextBox.document())
self.menuInsert = QMenu() self.menuInsert = QMenu()
self.aInsTitle = self.menuInsert.addAction(self.tr("Title")) self.aInsTitle = self.menuInsert.addAction(self.tr("Title"))
@@ -872,12 +868,12 @@ class _HeadingsTab(QWidget):
class _HeadingSyntaxHighlighter(QSyntaxHighlighter): class _HeadingSyntaxHighlighter(QSyntaxHighlighter):
def __init__(self, document: QTextDocument, mainTheme: GuiTheme) -> None: def __init__(self, document: QTextDocument) -> None:
super().__init__(document) super().__init__(document)
self._fmtSymbol = QTextCharFormat() self._fmtSymbol = QTextCharFormat()
self._fmtSymbol.setForeground(QColor(*mainTheme.colHead)) self._fmtSymbol.setForeground(QColor(*CONFIG.theme.colHead))
self._fmtFormat = QTextCharFormat() self._fmtFormat = QTextCharFormat()
self._fmtFormat.setForeground(QColor(*mainTheme.colEmph)) self._fmtFormat.setForeground(QColor(*CONFIG.theme.colEmph))
return return
def highlightBlock(self, text: str) -> None: def highlightBlock(self, text: str) -> None:
@@ -901,12 +897,9 @@ class _ContentTab(QWidget):
def __init__(self, buildMain: GuiBuildSettings, build: BuildSettings) -> None: def __init__(self, buildMain: GuiBuildSettings, build: BuildSettings) -> None:
super().__init__(parent=buildMain) super().__init__(parent=buildMain)
self.mainGui = buildMain.mainGui
self.mainTheme = buildMain.mainGui.mainTheme
self._build = build self._build = build
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
# Left Form # Left Form
# ========= # =========
@@ -973,16 +966,15 @@ class _FormatTab(QWidget):
def __init__(self, buildMain: GuiBuildSettings, build: BuildSettings) -> None: def __init__(self, buildMain: GuiBuildSettings, build: BuildSettings) -> None:
super().__init__(parent=buildMain) super().__init__(parent=buildMain)
self.buildMain = buildMain self.buildMain = buildMain
self.mainGui = buildMain.mainGui self.mainGui = buildMain.mainGui
self.mainTheme = buildMain.mainGui.mainTheme
self._build = build self._build = build
self._unitScale = 1.0 self._unitScale = 1.0
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
spW = 6*self.mainTheme.textNWidth spW = 6*CONFIG.theme.textNWidth
dbW = 8*self.mainTheme.textNWidth dbW = 8*CONFIG.theme.textNWidth
# Text Format Form # Text Format Form
# ================ # ================
@@ -1003,7 +995,7 @@ class _FormatTab(QWidget):
self.textFont = QLineEdit() self.textFont = QLineEdit()
self.textFont.setReadOnly(True) self.textFont.setReadOnly(True)
self.btnTextFont = QPushButton("...") self.btnTextFont = QPushButton("...")
self.btnTextFont.setMaximumWidth(int(2.5*self.mainTheme.getTextWidth("..."))) self.btnTextFont.setMaximumWidth(int(2.5*CONFIG.theme.getTextWidth("...")))
self.btnTextFont.clicked.connect(self._selectFont) self.btnTextFont.clicked.connect(self._selectFont)
self.formFormat.addRow( self.formFormat.addRow(
self._build.getLabel("format.textFont"), self.textFont, button=self.btnTextFont self._build.getLabel("format.textFont"), self.textFont, button=self.btnTextFont
@@ -1287,12 +1279,9 @@ class _OutputTab(QWidget):
def __init__(self, buildMain: GuiBuildSettings, build: BuildSettings) -> None: def __init__(self, buildMain: GuiBuildSettings, build: BuildSettings) -> None:
super().__init__(parent=buildMain) super().__init__(parent=buildMain)
self.mainGui = buildMain.mainGui
self.mainTheme = buildMain.mainGui.mainTheme
self._build = build self._build = build
iPx = self.mainTheme.baseIconSize iPx = CONFIG.theme.baseIconSize
# Left Form # Left Form
# ========= # =========
+4 -17
View File
@@ -53,10 +53,9 @@ class GuiProjectWizard(QWizard):
logger.debug("Create: GuiProjectWizard") logger.debug("Create: GuiProjectWizard")
self.setObjectName("GuiProjectWizard") self.setObjectName("GuiProjectWizard")
self.mainGui = mainGui self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.sideImage = self.mainTheme.loadDecoration( self.sideImage = CONFIG.theme.loadDecoration(
"wiz-back", None, CONFIG.pxInt(370) "wiz-back", None, CONFIG.pxInt(370)
) )
self.setWizardStyle(QWizard.ModernStyle) self.setWizardStyle(QWizard.ModernStyle)
@@ -92,9 +91,6 @@ class ProjWizardIntroPage(QWizardPage):
def __init__(self, theWizard): def __init__(self, theWizard):
super().__init__() super().__init__()
self.theWizard = theWizard
self.mainTheme = theWizard.mainTheme
self.setTitle(self.tr("Create New Project")) self.setTitle(self.tr("Create New Project"))
self.theText = QLabel(self.tr( self.theText = QLabel(self.tr(
"Provide at least a project name. The project name should not " "Provide at least a project name. The project name should not "
@@ -108,7 +104,7 @@ class ProjWizardIntroPage(QWizardPage):
"Peter Mitterhofer", "CC BY-SA 4.0" "Peter Mitterhofer", "CC BY-SA 4.0"
)) ))
lblFont = self.imgCredit.font() lblFont = self.imgCredit.font()
lblFont.setPointSizeF(0.6*self.mainTheme.fontPointSize) lblFont.setPointSizeF(0.6*CONFIG.theme.fontPointSize)
self.imgCredit.setFont(lblFont) self.imgCredit.setFont(lblFont)
xW = CONFIG.pxInt(300) xW = CONFIG.pxInt(300)
@@ -160,9 +156,6 @@ class ProjWizardFolderPage(QWizardPage):
def __init__(self, theWizard): def __init__(self, theWizard):
super().__init__() super().__init__()
self.theWizard = theWizard
self.mainTheme = theWizard.mainTheme
self.setTitle(self.tr("Select Project Folder")) self.setTitle(self.tr("Select Project Folder"))
self.theText = QLabel(self.tr( self.theText = QLabel(self.tr(
"Select a location to store the project. A new project folder " "Select a location to store the project. A new project folder "
@@ -179,7 +172,7 @@ class ProjWizardFolderPage(QWizardPage):
self.projPath.setPlaceholderText(self.tr("Required")) self.projPath.setPlaceholderText(self.tr("Required"))
self.browseButton = QPushButton("...") self.browseButton = QPushButton("...")
self.browseButton.setMaximumWidth(int(2.5*self.mainTheme.getTextWidth("..."))) self.browseButton.setMaximumWidth(int(2.5*CONFIG.theme.getTextWidth("...")))
self.browseButton.clicked.connect(self._doBrowse) self.browseButton.clicked.connect(self._doBrowse)
self.errLabel = QLabel("") self.errLabel = QLabel("")
@@ -257,8 +250,6 @@ class ProjWizardPopulatePage(QWizardPage):
def __init__(self, theWizard): def __init__(self, theWizard):
super().__init__() super().__init__()
self.theWizard = theWizard
self.setTitle(self.tr("Populate Project")) self.setTitle(self.tr("Populate Project"))
self.theText = QLabel(self.tr( self.theText = QLabel(self.tr(
"Choose how to pre-fill the project. Either with a minimal set of " "Choose how to pre-fill the project. Either with a minimal set of "
@@ -312,8 +303,6 @@ class ProjWizardCustomPage(QWizardPage):
def __init__(self, theWizard): def __init__(self, theWizard):
super().__init__() super().__init__()
self.theWizard = theWizard
self.setTitle(self.tr("Custom Project Options")) self.setTitle(self.tr("Custom Project Options"))
self.theText = QLabel(self.tr( self.theText = QLabel(self.tr(
"Select which additional elements to populate the project with. " "Select which additional elements to populate the project with. "
@@ -412,8 +401,6 @@ class ProjWizardFinalPage(QWizardPage):
def __init__(self, theWizard): def __init__(self, theWizard):
super().__init__() super().__init__()
self.theWizard = theWizard
self.setTitle(self.tr("Summary")) self.setTitle(self.tr("Summary"))
self.theText = QLabel("") self.theText = QLabel("")
self.theText.setWordWrap(True) self.theText.setWordWrap(True)
+13 -14
View File
@@ -73,7 +73,6 @@ class GuiWritingStats(QDialog):
self.setWindowFlag(Qt.WindowType.Tool) self.setWindowFlag(Qt.WindowType.Tool)
self.mainGui = mainGui self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.theProject = mainGui.theProject self.theProject = mainGui.theProject
self.logData = [] self.logData = []
@@ -134,7 +133,7 @@ class GuiWritingStats(QDialog):
self.listBox.setSortingEnabled(True) self.listBox.setSortingEnabled(True)
# Word Bar # Word Bar
self.barHeight = int(round(0.5*self.mainTheme.fontPixelSize)) self.barHeight = int(round(0.5*CONFIG.theme.fontPixelSize))
self.barWidth = CONFIG.pxInt(200) self.barWidth = CONFIG.pxInt(200)
self.barImage = QPixmap(self.barHeight, self.barHeight) self.barImage = QPixmap(self.barHeight, self.barHeight)
self.barImage.fill(self.palette().highlight().color()) self.barImage.fill(self.palette().highlight().color())
@@ -145,27 +144,27 @@ class GuiWritingStats(QDialog):
self.infoBox.setLayout(self.infoForm) self.infoBox.setLayout(self.infoForm)
self.labelTotal = QLabel(formatTime(0)) self.labelTotal = QLabel(formatTime(0))
self.labelTotal.setFont(self.mainTheme.guiFontFixed) self.labelTotal.setFont(CONFIG.theme.guiFontFixed)
self.labelTotal.setAlignment(Qt.AlignVCenter | Qt.AlignRight) self.labelTotal.setAlignment(Qt.AlignVCenter | Qt.AlignRight)
self.labelIdleT = QLabel(formatTime(0)) self.labelIdleT = QLabel(formatTime(0))
self.labelIdleT.setFont(self.mainTheme.guiFontFixed) self.labelIdleT.setFont(CONFIG.theme.guiFontFixed)
self.labelIdleT.setAlignment(Qt.AlignVCenter | Qt.AlignRight) self.labelIdleT.setAlignment(Qt.AlignVCenter | Qt.AlignRight)
self.labelFilter = QLabel(formatTime(0)) self.labelFilter = QLabel(formatTime(0))
self.labelFilter.setFont(self.mainTheme.guiFontFixed) self.labelFilter.setFont(CONFIG.theme.guiFontFixed)
self.labelFilter.setAlignment(Qt.AlignVCenter | Qt.AlignRight) self.labelFilter.setAlignment(Qt.AlignVCenter | Qt.AlignRight)
self.novelWords = QLabel("0") self.novelWords = QLabel("0")
self.novelWords.setFont(self.mainTheme.guiFontFixed) self.novelWords.setFont(CONFIG.theme.guiFontFixed)
self.novelWords.setAlignment(Qt.AlignVCenter | Qt.AlignRight) self.novelWords.setAlignment(Qt.AlignVCenter | Qt.AlignRight)
self.notesWords = QLabel("0") self.notesWords = QLabel("0")
self.notesWords.setFont(self.mainTheme.guiFontFixed) self.notesWords.setFont(CONFIG.theme.guiFontFixed)
self.notesWords.setAlignment(Qt.AlignVCenter | Qt.AlignRight) self.notesWords.setAlignment(Qt.AlignVCenter | Qt.AlignRight)
self.totalWords = QLabel("0") self.totalWords = QLabel("0")
self.totalWords.setFont(self.mainTheme.guiFontFixed) self.totalWords.setFont(CONFIG.theme.guiFontFixed)
self.totalWords.setAlignment(Qt.AlignVCenter | Qt.AlignRight) self.totalWords.setAlignment(Qt.AlignVCenter | Qt.AlignRight)
lblTTime = QLabel(self.tr("Total Time:")) lblTTime = QLabel(self.tr("Total Time:"))
@@ -192,7 +191,7 @@ class GuiWritingStats(QDialog):
self.infoForm.setRowStretch(6, 1) self.infoForm.setRowStretch(6, 1)
# Filter Options # Filter Options
sPx = self.mainTheme.baseIconSize sPx = CONFIG.theme.baseIconSize
self.filterBox = QGroupBox(self.tr("Filters"), self) self.filterBox = QGroupBox(self.tr("Filters"), self)
self.filterForm = QGridLayout(self) self.filterForm = QGridLayout(self)
@@ -589,13 +588,13 @@ class GuiWritingStats(QDialog):
newItem.setTextAlignment(self.C_COUNT, Qt.AlignRight) newItem.setTextAlignment(self.C_COUNT, Qt.AlignRight)
newItem.setTextAlignment(self.C_BAR, Qt.AlignLeft | Qt.AlignVCenter) newItem.setTextAlignment(self.C_BAR, Qt.AlignLeft | Qt.AlignVCenter)
newItem.setFont(self.C_TIME, self.mainTheme.guiFontFixed) newItem.setFont(self.C_TIME, CONFIG.theme.guiFontFixed)
newItem.setFont(self.C_LENGTH, self.mainTheme.guiFontFixed) newItem.setFont(self.C_LENGTH, CONFIG.theme.guiFontFixed)
newItem.setFont(self.C_COUNT, self.mainTheme.guiFontFixed) newItem.setFont(self.C_COUNT, CONFIG.theme.guiFontFixed)
if showIdleTime: if showIdleTime:
newItem.setFont(self.C_IDLE, self.mainTheme.guiFontFixed) newItem.setFont(self.C_IDLE, CONFIG.theme.guiFontFixed)
else: else:
newItem.setFont(self.C_IDLE, self.mainTheme.guiFont) newItem.setFont(self.C_IDLE, CONFIG.theme.guiFont)
self.listBox.addTopLevelItem(newItem) self.listBox.addTopLevelItem(newItem)
self.timeFilter += sDiff self.timeFilter += sDiff
+2 -2
View File
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='utf-8'?>
<novelWriterXML appVersion="2.1-beta1" hexVersion="0x020100b1" fileVersion="1.5" fileRevision="1" timeStamp="2023-07-30 14:08:40"> <novelWriterXML appVersion="2.1-beta1" hexVersion="0x020100b1" fileVersion="1.5" fileRevision="1" timeStamp="2023-08-08 10:33:12">
<project id="e2be99af-f9bf-4403-857a-c3d1ac25abea" saveCount="1514" autoCount="237" editTime="75228"> <project id="e2be99af-f9bf-4403-857a-c3d1ac25abea" saveCount="1516" autoCount="237" editTime="75236">
<name>Sample Project</name> <name>Sample Project</name>
<title>Sample Project</title> <title>Sample Project</title>
<author>Jane Smith</author> <author>Jane Smith</author>
-2
View File
@@ -34,8 +34,6 @@ from novelwriter.dialogs.about import GuiAbout
def testDlgAbout_NWDialog(qtbot, monkeypatch, nwGUI): def testDlgAbout_NWDialog(qtbot, monkeypatch, nwGUI):
"""Test the novelWriter about dialogs.""" """Test the novelWriter about dialogs."""
# NW About # NW About
nwGUI.mainTheme.themeName = "A Theme"
nwGUI.mainTheme.themeAuthor = "An Author"
assert nwGUI.showAboutNWDialog(showNotes=True) is True assert nwGUI.showAboutNWDialog(showNotes=True) is True
qtbot.waitUntil(lambda: getGuiItem("GuiAbout") is not None, timeout=1000) qtbot.waitUntil(lambda: getGuiItem("GuiAbout") is not None, timeout=1000)
+7 -11
View File
@@ -33,14 +33,12 @@ from PyQt5.QtWidgets import QApplication
from novelwriter import CONFIG from novelwriter import CONFIG
from novelwriter.enum import nwItemClass, nwItemLayout, nwItemType from novelwriter.enum import nwItemClass, nwItemLayout, nwItemType
from novelwriter.constants import nwLabels from novelwriter.constants import nwLabels
from novelwriter.gui.theme import GuiIcons, GuiTheme
@pytest.mark.gui @pytest.mark.gui
def testGuiTheme_Main(qtbot, nwGUI, tstPaths): def testGuiTheme_Main(qtbot, nwGUI, tstPaths):
"""Test the theme class init. """Test the theme class init."""
""" mainTheme = CONFIG.theme
mainTheme: GuiTheme = nwGUI.mainTheme
# Methods # Methods
# ======= # =======
@@ -123,7 +121,7 @@ def testGuiTheme_Main(qtbot, nwGUI, tstPaths):
@pytest.mark.gui @pytest.mark.gui
def testGuiTheme_Theme(qtbot, monkeypatch, nwGUI): def testGuiTheme_Theme(qtbot, monkeypatch, nwGUI):
"""Test the theme part of the class.""" """Test the theme part of the class."""
mainTheme: GuiTheme = nwGUI.mainTheme mainTheme = CONFIG.theme
# List Themes # List Themes
# =========== # ===========
@@ -200,9 +198,8 @@ def testGuiTheme_Theme(qtbot, monkeypatch, nwGUI):
@pytest.mark.gui @pytest.mark.gui
def testGuiTheme_Syntax(qtbot, monkeypatch, nwGUI): def testGuiTheme_Syntax(qtbot, monkeypatch, nwGUI):
"""Test the syntax part of the class. """Test the syntax part of the class."""
""" mainTheme = CONFIG.theme
mainTheme: GuiTheme = nwGUI.mainTheme
# List Themes # List Themes
# =========== # ===========
@@ -266,9 +263,8 @@ def testGuiTheme_Syntax(qtbot, monkeypatch, nwGUI):
@pytest.mark.gui @pytest.mark.gui
def testGuiTheme_Icons(qtbot, caplog, monkeypatch, nwGUI, tstPaths): def testGuiTheme_Icons(qtbot, caplog, monkeypatch, nwGUI, tstPaths):
"""Test the icon cache class. """Test the icon cache class."""
""" iconCache = CONFIG.theme.iconCache
iconCache: GuiIcons = nwGUI.mainTheme.iconCache
# Load Theme # Load Theme
# ========== # ==========