Move GUI theme instance to the config object (after app creation)
This commit is contained in:
+19
-3
@@ -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")
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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
|
||||||
# =========
|
# =========
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
# ==========
|
# ==========
|
||||||
|
|||||||
Reference in New Issue
Block a user