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
+2 -2
View File
@@ -30,6 +30,7 @@ from PyQt5.QtGui import QPainter
from PyQt5.QtCore import pyqtSignal, pyqtSlot
from PyQt5.QtWidgets import QAbstractButton, QComboBox
from novelwriter import CONFIG
from novelwriter.enum import nwItemClass
from novelwriter.constants import nwLabels
@@ -45,7 +46,6 @@ class NovelSelector(QComboBox):
self._mainGui = mainGui
self._project = project
self._theme = mainGui.mainTheme
self._blockSignal = False
self._firstHandle = None
@@ -89,7 +89,7 @@ class NovelSelector(QComboBox):
self._firstHandle = None
self.clear()
icon = self._theme.getIcon(nwLabels.CLASS_ICON[nwItemClass.NOVEL])
icon = CONFIG.theme.getIcon(nwLabels.CLASS_ICON[nwItemClass.NOVEL])
handle = self.currentData()
for tHandle, nwItem in self._project.tree.iterRoots(nwItemClass.NOVEL):
if prefix:
+39 -43
View File
@@ -85,7 +85,6 @@ class GuiDocEditor(QTextEdit):
# Class Variables
self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.theProject = mainGui.theProject
self._nwDocument = None
@@ -229,14 +228,14 @@ class GuiDocEditor(QTextEdit):
"""Update the syntax highlighting theme.
"""
mainPalette = self.palette()
mainPalette.setColor(QPalette.Window, QColor(*self.mainTheme.colBack))
mainPalette.setColor(QPalette.Base, QColor(*self.mainTheme.colBack))
mainPalette.setColor(QPalette.Text, QColor(*self.mainTheme.colText))
mainPalette.setColor(QPalette.Window, QColor(*CONFIG.theme.colBack))
mainPalette.setColor(QPalette.Base, QColor(*CONFIG.theme.colBack))
mainPalette.setColor(QPalette.Text, QColor(*CONFIG.theme.colText))
self.setPalette(mainPalette)
docPalette = self.viewport().palette()
docPalette.setColor(QPalette.Base, QColor(*self.mainTheme.colBack))
docPalette.setColor(QPalette.Text, QColor(*self.mainTheme.colText))
docPalette.setColor(QPalette.Base, QColor(*CONFIG.theme.colBack))
docPalette.setColor(QPalette.Text, QColor(*CONFIG.theme.colText))
self.viewport().setPalette(docPalette)
self.docHeader.matchColours()
@@ -2226,7 +2225,6 @@ class GuiDocEditSearch(QFrame):
self.docEditor = docEditor
self.mainGui = docEditor.mainGui
self.theProject = docEditor.theProject
self.mainTheme = docEditor.mainTheme
self.repVisible = False
self.isCaseSense = CONFIG.searchCase
@@ -2237,9 +2235,9 @@ class GuiDocEditSearch(QFrame):
self.doMatchCap = CONFIG.searchMatchCap
mPx = CONFIG.pxInt(6)
tPx = int(0.8*self.mainTheme.fontPixelSize)
self.boxFont = self.mainTheme.guiFont
self.boxFont.setPointSizeF(0.9*self.mainTheme.fontPointSize)
tPx = int(0.8*CONFIG.theme.fontPixelSize)
self.boxFont = CONFIG.theme.guiFont
self.boxFont.setPointSizeF(0.9*CONFIG.theme.fontPointSize)
self.setContentsMargins(0, 0, 0, 0)
self.setAutoFillBackground(True)
@@ -2272,7 +2270,7 @@ class GuiDocEditSearch(QFrame):
self.resultLabel = QLabel("?/?")
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.setCheckable(True)
@@ -2378,15 +2376,15 @@ class GuiDocEditSearch(QFrame):
self.replaceBox.setPalette(qPalette)
# Set icons
self.toggleCase.setIcon(self.mainTheme.getIcon("search_case"))
self.toggleWord.setIcon(self.mainTheme.getIcon("search_word"))
self.toggleRegEx.setIcon(self.mainTheme.getIcon("search_regex"))
self.toggleLoop.setIcon(self.mainTheme.getIcon("search_loop"))
self.toggleProject.setIcon(self.mainTheme.getIcon("search_project"))
self.toggleMatchCap.setIcon(self.mainTheme.getIcon("search_preserve"))
self.cancelSearch.setIcon(self.mainTheme.getIcon("search_cancel"))
self.searchButton.setIcon(self.mainTheme.getIcon("search"))
self.replaceButton.setIcon(self.mainTheme.getIcon("search_replace"))
self.toggleCase.setIcon(CONFIG.theme.getIcon("search_case"))
self.toggleWord.setIcon(CONFIG.theme.getIcon("search_word"))
self.toggleRegEx.setIcon(CONFIG.theme.getIcon("search_regex"))
self.toggleLoop.setIcon(CONFIG.theme.getIcon("search_loop"))
self.toggleProject.setIcon(CONFIG.theme.getIcon("search_project"))
self.toggleMatchCap.setIcon(CONFIG.theme.getIcon("search_preserve"))
self.cancelSearch.setIcon(CONFIG.theme.getIcon("search_cancel"))
self.searchButton.setIcon(CONFIG.theme.getIcon("search"))
self.replaceButton.setIcon(CONFIG.theme.getIcon("search_replace"))
# Set stylesheets
self.searchOpt.setStyleSheet("QToolBar {padding: 0;}")
@@ -2478,7 +2476,7 @@ class GuiDocEditSearch(QFrame):
"""
currRes = "?" if currRes is None else currRes
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.setMinimumWidth(minWidth)
self.adjustSize()
@@ -2641,11 +2639,10 @@ class GuiDocEditHeader(QWidget):
self.docEditor = docEditor
self.mainGui = docEditor.mainGui
self.theProject = docEditor.theProject
self.mainTheme = docEditor.mainTheme
self._docHandle = None
fPx = int(0.9*self.mainTheme.fontPixelSize)
fPx = int(0.9*CONFIG.theme.fontPixelSize)
hSp = CONFIG.pxInt(6)
# Main Widget Settings
@@ -2662,7 +2659,7 @@ class GuiDocEditHeader(QWidget):
self.theTitle.setFixedHeight(fPx)
lblFont = self.theTitle.font()
lblFont.setPointSizeF(0.9*self.mainTheme.fontPointSize)
lblFont.setPointSizeF(0.9*CONFIG.theme.fontPointSize)
self.theTitle.setFont(lblFont)
# Buttons
@@ -2732,15 +2729,15 @@ class GuiDocEditHeader(QWidget):
def updateTheme(self):
"""Update theme elements.
"""
self.editButton.setIcon(self.mainTheme.getIcon("edit"))
self.searchButton.setIcon(self.mainTheme.getIcon("search"))
self.minmaxButton.setIcon(self.mainTheme.getIcon("maximise"))
self.closeButton.setIcon(self.mainTheme.getIcon("close"))
self.editButton.setIcon(CONFIG.theme.getIcon("edit"))
self.searchButton.setIcon(CONFIG.theme.getIcon("search"))
self.minmaxButton.setIcon(CONFIG.theme.getIcon("maximise"))
self.closeButton.setIcon(CONFIG.theme.getIcon("close"))
buttonStyle = (
"QToolButton {{border: none; background: transparent;}} "
"QToolButton:hover {{border: none; background: rgba({0},{1},{2},0.2);}}"
).format(*self.mainTheme.colText)
).format(*CONFIG.theme.colText)
self.editButton.setStyleSheet(buttonStyle)
self.searchButton.setStyleSheet(buttonStyle)
@@ -2756,9 +2753,9 @@ class GuiDocEditHeader(QWidget):
theme rather than the main GUI.
"""
thePalette = QPalette()
thePalette.setColor(QPalette.Window, QColor(*self.mainTheme.colBack))
thePalette.setColor(QPalette.WindowText, QColor(*self.mainTheme.colText))
thePalette.setColor(QPalette.Text, QColor(*self.mainTheme.colText))
thePalette.setColor(QPalette.Window, QColor(*CONFIG.theme.colBack))
thePalette.setColor(QPalette.WindowText, QColor(*CONFIG.theme.colText))
thePalette.setColor(QPalette.Text, QColor(*CONFIG.theme.colText))
self.setPalette(thePalette)
self.theTitle.setPalette(thePalette)
@@ -2806,9 +2803,9 @@ class GuiDocEditHeader(QWidget):
toggleFocusMode function and should not be activated directly.
"""
if self.mainGui.isFocusMode:
self.minmaxButton.setIcon(self.mainTheme.getIcon("minimise"))
self.minmaxButton.setIcon(CONFIG.theme.getIcon("minimise"))
else:
self.minmaxButton.setIcon(self.mainTheme.getIcon("maximise"))
self.minmaxButton.setIcon(CONFIG.theme.getIcon("maximise"))
return
##
@@ -2876,20 +2873,19 @@ class GuiDocEditFooter(QWidget):
self.docEditor = docEditor
self.mainGui = docEditor.mainGui
self.theProject = docEditor.theProject
self.mainTheme = docEditor.mainTheme
self._theItem = None
self._docHandle = None
self._docSelection = False
self.sPx = int(round(0.9*self.mainTheme.baseIconSize))
fPx = int(0.9*self.mainTheme.fontPixelSize)
self.sPx = int(round(0.9*CONFIG.theme.baseIconSize))
fPx = int(0.9*CONFIG.theme.fontPixelSize)
bSp = CONFIG.pxInt(4)
hSp = CONFIG.pxInt(6)
lblFont = self.font()
lblFont.setPointSizeF(0.9*self.mainTheme.fontPointSize)
lblFont.setPointSizeF(0.9*CONFIG.theme.fontPointSize)
# Main Widget Settings
self.setContentsMargins(0, 0, 0, 0)
@@ -2976,8 +2972,8 @@ class GuiDocEditFooter(QWidget):
def updateTheme(self):
"""Update theme elements.
"""
self.linesIcon.setPixmap(self.mainTheme.getPixmap("status_lines", (self.sPx, self.sPx)))
self.wordsIcon.setPixmap(self.mainTheme.getPixmap("status_stats", (self.sPx, self.sPx)))
self.linesIcon.setPixmap(CONFIG.theme.getPixmap("status_lines", (self.sPx, self.sPx)))
self.wordsIcon.setPixmap(CONFIG.theme.getPixmap("status_stats", (self.sPx, self.sPx)))
self.matchColours()
@@ -2988,9 +2984,9 @@ class GuiDocEditFooter(QWidget):
theme rather than the main GUI.
"""
thePalette = QPalette()
thePalette.setColor(QPalette.Window, QColor(*self.mainTheme.colBack))
thePalette.setColor(QPalette.WindowText, QColor(*self.mainTheme.colText))
thePalette.setColor(QPalette.Text, QColor(*self.mainTheme.colText))
thePalette.setColor(QPalette.Window, QColor(*CONFIG.theme.colBack))
thePalette.setColor(QPalette.WindowText, QColor(*CONFIG.theme.colText))
thePalette.setColor(QPalette.Text, QColor(*CONFIG.theme.colText))
self.setPalette(thePalette)
self.statusText.setPalette(thePalette)
+14 -15
View File
@@ -54,7 +54,6 @@ class GuiDocHighlighter(QSyntaxHighlighter):
self.theDoc = theDoc
self.spEnchant = spEnchant
self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.theProject = mainGui.theProject
self.theHandle = None
self.spellCheck = False
@@ -87,24 +86,24 @@ class GuiDocHighlighter(QSyntaxHighlighter):
"""
logger.debug("Setting up highlighting rules")
self.colHead = QColor(*self.mainTheme.colHead)
self.colHeadH = QColor(*self.mainTheme.colHeadH)
self.colDialN = QColor(*self.mainTheme.colDialN)
self.colDialD = QColor(*self.mainTheme.colDialD)
self.colDialS = QColor(*self.mainTheme.colDialS)
self.colHidden = QColor(*self.mainTheme.colHidden)
self.colKey = QColor(*self.mainTheme.colKey)
self.colVal = QColor(*self.mainTheme.colVal)
self.colSpell = QColor(*self.mainTheme.colSpell)
self.colError = QColor(*self.mainTheme.colError)
self.colRepTag = QColor(*self.mainTheme.colRepTag)
self.colMod = QColor(*self.mainTheme.colMod)
self.colBreak = QColor(*self.mainTheme.colEmph)
self.colHead = QColor(*CONFIG.theme.colHead)
self.colHeadH = QColor(*CONFIG.theme.colHeadH)
self.colDialN = QColor(*CONFIG.theme.colDialN)
self.colDialD = QColor(*CONFIG.theme.colDialD)
self.colDialS = QColor(*CONFIG.theme.colDialS)
self.colHidden = QColor(*CONFIG.theme.colHidden)
self.colKey = QColor(*CONFIG.theme.colKey)
self.colVal = QColor(*CONFIG.theme.colVal)
self.colSpell = QColor(*CONFIG.theme.colSpell)
self.colError = QColor(*CONFIG.theme.colError)
self.colRepTag = QColor(*CONFIG.theme.colRepTag)
self.colMod = QColor(*CONFIG.theme.colMod)
self.colBreak = QColor(*CONFIG.theme.colEmph)
self.colBreak.setAlpha(64)
self.colEmph = None
if CONFIG.highlightEmph:
self.colEmph = QColor(*self.mainTheme.colEmph)
self.colEmph = QColor(*CONFIG.theme.colEmph)
self.hStyles = {
"header1": self._makeFormat(self.colHead, "bold", 1.8),
+49 -55
View File
@@ -60,7 +60,6 @@ class GuiDocViewer(QTextBrowser):
# Class Variables
self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.theProject = mainGui.theProject
# Internal Variables
@@ -121,14 +120,14 @@ class GuiDocViewer(QTextBrowser):
# Set the widget colours to match syntax theme
mainPalette = self.palette()
mainPalette.setColor(QPalette.Window, QColor(*self.mainTheme.colBack))
mainPalette.setColor(QPalette.Base, QColor(*self.mainTheme.colBack))
mainPalette.setColor(QPalette.Text, QColor(*self.mainTheme.colText))
mainPalette.setColor(QPalette.Window, QColor(*CONFIG.theme.colBack))
mainPalette.setColor(QPalette.Base, QColor(*CONFIG.theme.colBack))
mainPalette.setColor(QPalette.Text, QColor(*CONFIG.theme.colText))
self.setPalette(mainPalette)
docPalette = self.viewport().palette()
docPalette.setColor(QPalette.Base, QColor(*self.mainTheme.colBack))
docPalette.setColor(QPalette.Text, QColor(*self.mainTheme.colText))
docPalette.setColor(QPalette.Base, QColor(*CONFIG.theme.colBack))
docPalette.setColor(QPalette.Text, QColor(*CONFIG.theme.colText))
self.viewport().setPalette(docPalette)
self.docHeader.matchColours()
@@ -508,27 +507,27 @@ class GuiDocViewer(QTextBrowser):
" text-align: center;"
"}}\n"
).format(
tColR=self.mainTheme.colText[0],
tColG=self.mainTheme.colText[1],
tColB=self.mainTheme.colText[2],
hColR=self.mainTheme.colHead[0],
hColG=self.mainTheme.colHead[1],
hColB=self.mainTheme.colHead[2],
aColR=self.mainTheme.colVal[0],
aColG=self.mainTheme.colVal[1],
aColB=self.mainTheme.colVal[2],
eColR=self.mainTheme.colEmph[0],
eColG=self.mainTheme.colEmph[1],
eColB=self.mainTheme.colEmph[2],
kColR=self.mainTheme.colKey[0],
kColG=self.mainTheme.colKey[1],
kColB=self.mainTheme.colKey[2],
cColR=self.mainTheme.colHidden[0],
cColG=self.mainTheme.colHidden[1],
cColB=self.mainTheme.colHidden[2],
mColR=self.mainTheme.colMod[0],
mColG=self.mainTheme.colMod[1],
mColB=self.mainTheme.colMod[2],
tColR=CONFIG.theme.colText[0],
tColG=CONFIG.theme.colText[1],
tColB=CONFIG.theme.colText[2],
hColR=CONFIG.theme.colHead[0],
hColG=CONFIG.theme.colHead[1],
hColB=CONFIG.theme.colHead[2],
aColR=CONFIG.theme.colVal[0],
aColG=CONFIG.theme.colVal[1],
aColB=CONFIG.theme.colVal[2],
eColR=CONFIG.theme.colEmph[0],
eColG=CONFIG.theme.colEmph[1],
eColB=CONFIG.theme.colEmph[2],
kColR=CONFIG.theme.colKey[0],
kColG=CONFIG.theme.colKey[1],
kColB=CONFIG.theme.colKey[2],
cColR=CONFIG.theme.colHidden[0],
cColG=CONFIG.theme.colHidden[1],
cColB=CONFIG.theme.colHidden[2],
mColR=CONFIG.theme.colMod[0],
mColG=CONFIG.theme.colMod[1],
mColB=CONFIG.theme.colMod[2],
)
self.document().setDefaultStyleSheet(styleSheet)
@@ -684,12 +683,11 @@ class GuiDocViewHeader(QWidget):
self.docViewer = docViewer
self.mainGui = docViewer.mainGui
self.theProject = docViewer.theProject
self.mainTheme = docViewer.mainTheme
# Internal Variables
self._docHandle = None
fPx = int(0.9*self.mainTheme.fontPixelSize)
fPx = int(0.9*CONFIG.theme.fontPixelSize)
hSp = CONFIG.pxInt(6)
# Main Widget Settings
@@ -706,7 +704,7 @@ class GuiDocViewHeader(QWidget):
self.theTitle.setFixedHeight(fPx)
lblFont = self.theTitle.font()
lblFont.setPointSizeF(0.9*self.mainTheme.fontPointSize)
lblFont.setPointSizeF(0.9*CONFIG.theme.fontPointSize)
self.theTitle.setFont(lblFont)
# Buttons
@@ -777,15 +775,15 @@ class GuiDocViewHeader(QWidget):
def updateTheme(self):
"""Update theme elements.
"""
self.backButton.setIcon(self.mainTheme.getIcon("backward"))
self.forwardButton.setIcon(self.mainTheme.getIcon("forward"))
self.refreshButton.setIcon(self.mainTheme.getIcon("refresh"))
self.closeButton.setIcon(self.mainTheme.getIcon("close"))
self.backButton.setIcon(CONFIG.theme.getIcon("backward"))
self.forwardButton.setIcon(CONFIG.theme.getIcon("forward"))
self.refreshButton.setIcon(CONFIG.theme.getIcon("refresh"))
self.closeButton.setIcon(CONFIG.theme.getIcon("close"))
buttonStyle = (
"QToolButton {{border: none; background: transparent;}} "
"QToolButton:hover {{border: none; background: rgba({0},{1},{2},0.2);}}"
).format(*self.mainTheme.colText)
).format(*CONFIG.theme.colText)
self.backButton.setStyleSheet(buttonStyle)
self.forwardButton.setStyleSheet(buttonStyle)
@@ -801,9 +799,9 @@ class GuiDocViewHeader(QWidget):
theme rather than the main GUI.
"""
thePalette = QPalette()
thePalette.setColor(QPalette.Window, QColor(*self.mainTheme.colBack))
thePalette.setColor(QPalette.WindowText, QColor(*self.mainTheme.colText))
thePalette.setColor(QPalette.Text, QColor(*self.mainTheme.colText))
thePalette.setColor(QPalette.Window, QColor(*CONFIG.theme.colBack))
thePalette.setColor(QPalette.WindowText, QColor(*CONFIG.theme.colText))
thePalette.setColor(QPalette.Text, QColor(*CONFIG.theme.colText))
self.setPalette(thePalette)
self.theTitle.setPalette(thePalette)
@@ -900,13 +898,12 @@ class GuiDocViewFooter(QWidget):
self.docViewer = docViewer
self.mainGui = docViewer.mainGui
self.mainTheme = docViewer.mainTheme
self.viewMeta = docViewer.mainGui.viewMeta
# Internal Variables
self._docHandle = None
fPx = int(0.9*self.mainTheme.fontPixelSize)
fPx = int(0.9*CONFIG.theme.fontPixelSize)
bSp = CONFIG.pxInt(2)
hSp = CONFIG.pxInt(8)
@@ -991,7 +988,7 @@ class GuiDocViewFooter(QWidget):
self.lblSynopsis.setAlignment(Qt.AlignLeft | Qt.AlignTop)
lblFont = self.font()
lblFont.setPointSizeF(0.9*self.mainTheme.fontPointSize)
lblFont.setPointSizeF(0.9*CONFIG.theme.fontPointSize)
self.lblRefs.setFont(lblFont)
self.lblSticky.setFont(lblFont)
self.lblComments.setFont(lblFont)
@@ -1036,21 +1033,21 @@ class GuiDocViewFooter(QWidget):
"""
# Icons
fPx = int(0.9*self.mainTheme.fontPixelSize)
fPx = int(0.9*CONFIG.theme.fontPixelSize)
stickyOn = self.mainTheme.getPixmap("sticky-on", (fPx, fPx))
stickyOff = self.mainTheme.getPixmap("sticky-off", (fPx, fPx))
stickyOn = CONFIG.theme.getPixmap("sticky-on", (fPx, fPx))
stickyOff = CONFIG.theme.getPixmap("sticky-off", (fPx, fPx))
stickyIcon = QIcon()
stickyIcon.addPixmap(stickyOn, QIcon.Normal, QIcon.On)
stickyIcon.addPixmap(stickyOff, QIcon.Normal, QIcon.Off)
bulletOn = self.mainTheme.getPixmap("bullet-on", (fPx, fPx))
bulletOff = self.mainTheme.getPixmap("bullet-off", (fPx, fPx))
bulletOn = CONFIG.theme.getPixmap("bullet-on", (fPx, fPx))
bulletOff = CONFIG.theme.getPixmap("bullet-off", (fPx, fPx))
bulletIcon = QIcon()
bulletIcon.addPixmap(bulletOn, QIcon.Normal, QIcon.On)
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.showComments.setIcon(bulletIcon)
self.showSynopsis.setIcon(bulletIcon)
@@ -1060,7 +1057,7 @@ class GuiDocViewFooter(QWidget):
buttonStyle = (
"QToolButton {{border: none; background: transparent;}} "
"QToolButton:hover {{border: none; background: rgba({0},{1},{2},0.2);}}"
).format(*self.mainTheme.colText)
).format(*CONFIG.theme.colText)
self.showHide.setStyleSheet(buttonStyle)
self.stickyRefs.setStyleSheet(buttonStyle)
@@ -1076,9 +1073,9 @@ class GuiDocViewFooter(QWidget):
theme rather than the main GUI.
"""
thePalette = QPalette()
thePalette.setColor(QPalette.Window, QColor(*self.mainTheme.colBack))
thePalette.setColor(QPalette.WindowText, QColor(*self.mainTheme.colText))
thePalette.setColor(QPalette.Text, QColor(*self.mainTheme.colText))
thePalette.setColor(QPalette.Window, QColor(*CONFIG.theme.colBack))
thePalette.setColor(QPalette.WindowText, QColor(*CONFIG.theme.colText))
thePalette.setColor(QPalette.Text, QColor(*CONFIG.theme.colText))
self.setPalette(thePalette)
self.lblRefs.setPalette(thePalette)
@@ -1143,7 +1140,6 @@ class GuiDocViewDetails(QScrollArea):
self.mainGui = mainGui
self.theProject = mainGui.theProject
self.mainTheme = mainGui.mainTheme
self.refList = QLabel("")
self.refList.setWordWrap(True)
@@ -1151,9 +1147,7 @@ class GuiDocViewDetails(QScrollArea):
self.refList.setScaledContents(True)
self.refList.linkActivated.connect(self._linkClicked)
self.linkStyle = "style='color: rgb({0},{1},{2})'".format(
*self.mainTheme.colLink
)
self.linkStyle = "style='color: rgb({0},{1},{2})'".format(*CONFIG.theme.colLink)
# Assemble
self.outerWidget = QWidget()
+9 -10
View File
@@ -44,7 +44,6 @@ class GuiItemDetails(QWidget):
self.mainGui = mainGui
self.theProject = mainGui.theProject
self.mainTheme = mainGui.mainTheme
# Internal Variables
self._itemHandle = None
@@ -53,7 +52,7 @@ class GuiItemDetails(QWidget):
hSp = CONFIG.pxInt(6)
vSp = CONFIG.pxInt(1)
mPx = CONFIG.pxInt(6)
fPt = self.mainTheme.fontPointSize
fPt = CONFIG.theme.fontPointSize
fntLabel = QFont()
fntLabel.setBold(True)
@@ -178,8 +177,8 @@ class GuiItemDetails(QWidget):
self.updateTheme()
# Make sure the columns for flags and counts don't resize too often
flagWidth = self.mainTheme.getTextWidth("Mm", fntValue)
countWidth = self.mainTheme.getTextWidth("99,999", fntValue)
flagWidth = CONFIG.theme.getTextWidth("Mm", fntValue)
countWidth = CONFIG.theme.getTextWidth("99,999", fntValue)
self.mainBox.setColumnMinimumWidth(1, flagWidth)
self.mainBox.setColumnMinimumWidth(4, countWidth)
@@ -241,7 +240,7 @@ class GuiItemDetails(QWidget):
return
self._itemHandle = tHandle
iPx = int(round(0.8*self.mainTheme.baseIconSize))
iPx = int(round(0.8*CONFIG.theme.baseIconSize))
# Label
# =====
@@ -252,11 +251,11 @@ class GuiItemDetails(QWidget):
if nwItem.isFileType():
if nwItem.isActive:
self.labelIcon.setPixmap(self.mainTheme.getPixmap("checked", (iPx, iPx)))
self.labelIcon.setPixmap(CONFIG.theme.getPixmap("checked", (iPx, iPx)))
else:
self.labelIcon.setPixmap(self.mainTheme.getPixmap("unchecked", (iPx, iPx)))
self.labelIcon.setPixmap(CONFIG.theme.getPixmap("unchecked", (iPx, iPx)))
else:
self.labelIcon.setPixmap(self.mainTheme.getPixmap("noncheckable", (iPx, iPx)))
self.labelIcon.setPixmap(CONFIG.theme.getPixmap("noncheckable", (iPx, iPx)))
self.labelData.setText(theLabel)
@@ -270,14 +269,14 @@ class GuiItemDetails(QWidget):
# 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.classData.setText(trConst(nwLabels.CLASS_NAME[nwItem.itemClass]))
# Layout
# ======
usageIcon = self.mainTheme.getItemIcon(
usageIcon = CONFIG.theme.getItemIcon(
nwItem.itemType, nwItem.itemClass, nwItem.itemLayout, nwItem.mainHeading
)
self.usageIcon.setPixmap(usageIcon.pixmap(iPx, iPx))
+8 -10
View File
@@ -201,9 +201,8 @@ class GuiNovelToolBar(QWidget):
self.novelView = novelView
self.mainGui = novelView.mainGui
self.theProject = novelView.mainGui.theProject
self.mainTheme = novelView.mainGui.mainTheme
iPx = self.mainTheme.baseIconSize
iPx = CONFIG.theme.baseIconSize
mPx = CONFIG.pxInt(2)
self.setContentsMargins(0, 0, 0, 0)
@@ -276,9 +275,9 @@ class GuiNovelToolBar(QWidget):
"""Update theme elements.
"""
# Icons
self.tbNovel.setIcon(self.mainTheme.getIcon("cls_novel"))
self.tbRefresh.setIcon(self.mainTheme.getIcon("refresh"))
self.tbMore.setIcon(self.mainTheme.getIcon("menu"))
self.tbNovel.setIcon(CONFIG.theme.getIcon("cls_novel"))
self.tbRefresh.setIcon(CONFIG.theme.getIcon("refresh"))
self.tbMore.setIcon(CONFIG.theme.getIcon("menu"))
qPalette = self.palette()
qPalette.setBrush(QPalette.Window, qPalette.base())
@@ -401,7 +400,6 @@ class GuiNovelTree(QTreeWidget):
self.novelView = novelView
self.mainGui = novelView.mainGui
self.mainTheme = novelView.mainGui.mainTheme
self.theProject = novelView.mainGui.theProject
# Internal Variables
@@ -419,7 +417,7 @@ class GuiNovelTree(QTreeWidget):
# Build GUI
# =========
iPx = self.mainTheme.baseIconSize
iPx = CONFIG.theme.baseIconSize
cMg = CONFIG.pxInt(6)
self.setIconSize(QSize(iPx, iPx))
@@ -485,8 +483,8 @@ class GuiNovelTree(QTreeWidget):
def updateTheme(self):
"""Update theme elements.
"""
iPx = self.mainTheme.baseIconSize
self._pMore = self.mainTheme.loadDecoration("deco_doc_more", pxH=iPx)
iPx = CONFIG.theme.baseIconSize
self._pMore = CONFIG.theme.loadDecoration("deco_doc_more", pxH=iPx)
return
##
@@ -737,7 +735,7 @@ class GuiNovelTree(QTreeWidget):
"""Set the tree item values from the index entry.
"""
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.setText(self.C_TITLE, idxItem.title)
+12 -15
View File
@@ -217,7 +217,6 @@ class GuiOutlineToolBar(QToolBar):
self.mainGui = theOutline.mainGui
self.theProject = theOutline.mainGui.theProject
self.mainTheme = theOutline.mainGui.mainTheme
iPx = CONFIG.pxInt(22)
mPx = CONFIG.pxInt(12)
@@ -275,8 +274,8 @@ class GuiOutlineToolBar(QToolBar):
self.setStyleSheet("QToolBar {border: 0px;}")
self.novelValue.updateList(includeAll=True)
self.aRefresh.setIcon(self.mainTheme.getIcon("refresh"))
self.tbColumns.setIcon(self.mainTheme.getIcon("menu"))
self.aRefresh.setIcon(CONFIG.theme.getIcon("refresh"))
self.tbColumns.setIcon(CONFIG.theme.getIcon("menu"))
return
@@ -375,7 +374,6 @@ class GuiOutlineTree(QTreeWidget):
self.outlineView = outlineView
self.mainGui = outlineView.mainGui
self.theProject = outlineView.mainGui.theProject
self.mainTheme = outlineView.mainGui.mainTheme
self.setUniformRowHeights(True)
self.setFrameStyle(QFrame.NoFrame)
@@ -386,7 +384,7 @@ class GuiOutlineTree(QTreeWidget):
self.itemDoubleClicked.connect(self._treeDoubleClick)
self.itemSelectionChanged.connect(self._itemSelected)
iPx = self.mainTheme.baseIconSize
iPx = CONFIG.theme.baseIconSize
self.setIconSize(QSize(iPx, iPx))
self.setIndentation(0)
@@ -403,11 +401,11 @@ class GuiOutlineTree(QTreeWidget):
self._hFonts = [self.font(), fH1, fH2, self.font(), self.font()]
self._dIcon = {
"H0": self.mainTheme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H0"),
"H1": self.mainTheme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H1"),
"H2": self.mainTheme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H2"),
"H3": self.mainTheme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H3"),
"H4": self.mainTheme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H4"),
"H0": CONFIG.theme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H0"),
"H1": CONFIG.theme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H1"),
"H2": CONFIG.theme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H2"),
"H3": CONFIG.theme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H3"),
"H4": CONFIG.theme.getItemIcon(nwItemType.FILE, None, nwItemLayout.DOCUMENT, "H4"),
}
# Internals
@@ -675,7 +673,7 @@ class GuiOutlineTree(QTreeWidget):
trItem = QTreeWidgetItem()
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.setText(self._colIdx[nwOutline.TITLE], novIdx.title)
@@ -777,12 +775,11 @@ class GuiOutlineDetails(QScrollArea):
self.theOutline = theOutline
self.mainGui = theOutline.mainGui
self.theProject = theOutline.mainGui.theProject
self.mainTheme = theOutline.mainGui.mainTheme
# Sizes
minTitle = 30*self.mainTheme.textNWidth
maxTitle = 40*self.mainTheme.textNWidth
wCount = self.mainTheme.getTextWidth("999,999")
minTitle = 30*CONFIG.theme.textNWidth
maxTitle = 40*CONFIG.theme.textNWidth
wCount = CONFIG.theme.getTextWidth("999,999")
hSpace = int(CONFIG.pxInt(10))
vSpace = int(CONFIG.pxInt(4))
+16 -18
View File
@@ -237,9 +237,8 @@ class GuiProjectToolBar(QWidget):
self.projTree = projView.projTree
self.mainGui = projView.mainGui
self.theProject = projView.mainGui.theProject
self.mainTheme = projView.mainGui.mainTheme
iPx = self.mainTheme.baseIconSize
iPx = CONFIG.theme.baseIconSize
mPx = CONFIG.pxInt(2)
self.setContentsMargins(0, 0, 0, 0)
@@ -370,16 +369,16 @@ class GuiProjectToolBar(QWidget):
self.tbAdd.setStyleSheet(buttonStyle)
self.tbMore.setStyleSheet(buttonStyle)
self.tbQuick.setIcon(self.mainTheme.getIcon("bookmark"))
self.tbMoveU.setIcon(self.mainTheme.getIcon("up"))
self.tbMoveD.setIcon(self.mainTheme.getIcon("down"))
self.aAddEmpty.setIcon(self.mainTheme.getIcon("proj_document"))
self.aAddChap.setIcon(self.mainTheme.getIcon("proj_chapter"))
self.aAddScene.setIcon(self.mainTheme.getIcon("proj_scene"))
self.aAddNote.setIcon(self.mainTheme.getIcon("proj_note"))
self.aAddFolder.setIcon(self.mainTheme.getIcon("proj_folder"))
self.tbAdd.setIcon(self.mainTheme.getIcon("add"))
self.tbMore.setIcon(self.mainTheme.getIcon("menu"))
self.tbQuick.setIcon(CONFIG.theme.getIcon("bookmark"))
self.tbMoveU.setIcon(CONFIG.theme.getIcon("up"))
self.tbMoveD.setIcon(CONFIG.theme.getIcon("down"))
self.aAddEmpty.setIcon(CONFIG.theme.getIcon("proj_document"))
self.aAddChap.setIcon(CONFIG.theme.getIcon("proj_chapter"))
self.aAddScene.setIcon(CONFIG.theme.getIcon("proj_scene"))
self.aAddNote.setIcon(CONFIG.theme.getIcon("proj_note"))
self.aAddFolder.setIcon(CONFIG.theme.getIcon("proj_folder"))
self.tbAdd.setIcon(CONFIG.theme.getIcon("add"))
self.tbMore.setIcon(CONFIG.theme.getIcon("menu"))
self.buildQuickLinkMenu()
self._buildRootMenu()
@@ -398,7 +397,7 @@ class GuiProjectToolBar(QWidget):
for n, (tHandle, nwItem) in enumerate(self.theProject.tree.iterRoots(None)):
aRoot = self.mQuick.addAction(nwItem.itemName)
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(
lambda n, tHandle=tHandle: self.projView.setSelectedHandle(tHandle, doScroll=True)
)
@@ -412,7 +411,7 @@ class GuiProjectToolBar(QWidget):
"""Build the rood folder menu."""
def addClass(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))
self.mAddRoot.addAction(aNew)
return
@@ -469,7 +468,6 @@ class GuiProjectTree(QTreeWidget):
self.projView = projView
self.mainGui = projView.mainGui
self.mainTheme = projView.mainGui.mainTheme
self.theProject = projView.mainGui.theProject
# Internal Variables
@@ -485,7 +483,7 @@ class GuiProjectTree(QTreeWidget):
self.customContextMenuRequested.connect(self._openContextMenu)
# Tree Settings
iPx = self.mainTheme.baseIconSize
iPx = CONFIG.theme.baseIconSize
cMg = CONFIG.pxInt(6)
self.setIconSize(QSize(iPx, iPx))
@@ -995,7 +993,7 @@ class GuiProjectTree(QTreeWidget):
itemStatus, statusIcon = nwItem.getImportStatus(incIcon=True)
hLevel = nwItem.mainHeading
itemIcon = self.mainTheme.getItemIcon(
itemIcon = CONFIG.theme.getItemIcon(
nwItem.itemType, nwItem.itemClass, nwItem.itemLayout, hLevel
)
@@ -1011,7 +1009,7 @@ class GuiProjectTree(QTreeWidget):
else:
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():
trFont = trItem.font(self.C_NAME)
+10 -11
View File
@@ -45,15 +45,14 @@ class GuiSideBar(QToolBar):
logger.debug("Create: GuiSideBar")
self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.mainGui = mainGui
# Style
iPx = CONFIG.pxInt(22)
mPx = CONFIG.pxInt(60)
lblFont = self.mainTheme.guiFont
lblFont.setPointSizeF(0.65*self.mainTheme.fontPointSize)
lblFont = CONFIG.theme.guiFont
lblFont.setPointSizeF(0.65*CONFIG.theme.fontPointSize)
self.setMovable(False)
self.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)
@@ -131,13 +130,13 @@ class GuiSideBar(QToolBar):
"""
self.setStyleSheet("QToolBar {border: 0px;}")
self.aProject.setIcon(self.mainTheme.getIcon("view_editor"))
self.aNovel.setIcon(self.mainTheme.getIcon("view_novel"))
self.aOutline.setIcon(self.mainTheme.getIcon("view_outline"))
self.aBuild.setIcon(self.mainTheme.getIcon("view_build"))
self.aDetails.setIcon(self.mainTheme.getIcon("proj_details"))
self.aStats.setIcon(self.mainTheme.getIcon("proj_stats"))
self.tbSettings.setIcon(self.mainTheme.getIcon("settings"))
self.aProject.setIcon(CONFIG.theme.getIcon("view_editor"))
self.aNovel.setIcon(CONFIG.theme.getIcon("view_novel"))
self.aOutline.setIcon(CONFIG.theme.getIcon("view_outline"))
self.aBuild.setIcon(CONFIG.theme.getIcon("view_build"))
self.aDetails.setIcon(CONFIG.theme.getIcon("proj_details"))
self.aStats.setIcon(CONFIG.theme.getIcon("proj_stats"))
self.tbSettings.setIcon(CONFIG.theme.getIcon("settings"))
return
+10 -11
View File
@@ -47,15 +47,14 @@ class GuiMainStatus(QStatusBar):
logger.debug("Create: GuiMainStatus")
self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.refTime = None
self.userIdle = False
colNone = QColor(*self.mainTheme.statNone)
colSaved = QColor(*self.mainTheme.statSaved)
colUnsaved = QColor(*self.mainTheme.statUnsaved)
colNone = QColor(*CONFIG.theme.statNone)
colSaved = QColor(*CONFIG.theme.statSaved)
colUnsaved = QColor(*CONFIG.theme.statUnsaved)
iPx = self.mainTheme.baseIconSize
iPx = CONFIG.theme.baseIconSize
# Permanent Widgets
# =================
@@ -99,7 +98,7 @@ class GuiMainStatus(QStatusBar):
self.timeIcon = QLabel()
self.timeText = QLabel("")
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.timeText.setContentsMargins(0, 0, 0, 0)
self.addPermanentWidget(self.timeIcon)
@@ -129,13 +128,13 @@ class GuiMainStatus(QStatusBar):
def updateTheme(self):
"""Update theme elements.
"""
iPx = self.mainTheme.baseIconSize
iPx = CONFIG.theme.baseIconSize
self.langIcon.setPixmap(self.mainTheme.getPixmap("status_lang", (iPx, iPx)))
self.statsIcon.setPixmap(self.mainTheme.getPixmap("status_stats", (iPx, iPx)))
self.langIcon.setPixmap(CONFIG.theme.getPixmap("status_lang", (iPx, iPx)))
self.statsIcon.setPixmap(CONFIG.theme.getPixmap("status_stats", (iPx, iPx)))
self.timePixmap = self.mainTheme.getPixmap("status_time", (iPx, iPx))
self.idlePixmap = self.mainTheme.getPixmap("status_idle", (iPx, iPx))
self.timePixmap = CONFIG.theme.getPixmap("status_time", (iPx, iPx))
self.idlePixmap = CONFIG.theme.getPixmap("status_idle", (iPx, iPx))
self.timeIcon.setPixmap(self.timePixmap)