Add updateTheme functions to most GUI components
This commit is contained in:
@@ -206,6 +206,14 @@ class GuiDocEditor(QTextEdit):
|
|||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def updateTheme(self):
|
||||||
|
"""Update theme elements
|
||||||
|
"""
|
||||||
|
self.docSearch.updateTheme()
|
||||||
|
self.docHeader.updateTheme()
|
||||||
|
self.docFooter.updateTheme()
|
||||||
|
return
|
||||||
|
|
||||||
def initEditor(self):
|
def initEditor(self):
|
||||||
"""Initialise or re-initialise the editor with the user's
|
"""Initialise or re-initialise the editor with the user's
|
||||||
settings. This function is both called when the editor is
|
settings. This function is both called when the editor is
|
||||||
@@ -2251,7 +2259,6 @@ class GuiDocEditSearch(QFrame):
|
|||||||
self.searchOpt.setToolButtonStyle(Qt.ToolButtonIconOnly)
|
self.searchOpt.setToolButtonStyle(Qt.ToolButtonIconOnly)
|
||||||
self.searchOpt.setIconSize(QSize(tPx, tPx))
|
self.searchOpt.setIconSize(QSize(tPx, tPx))
|
||||||
self.searchOpt.setContentsMargins(0, 0, 0, 0)
|
self.searchOpt.setContentsMargins(0, 0, 0, 0)
|
||||||
self.searchOpt.setStyleSheet("QToolBar {padding: 0;}")
|
|
||||||
|
|
||||||
self.searchLabel = QLabel(self.tr("Search"))
|
self.searchLabel = QLabel(self.tr("Search"))
|
||||||
self.searchLabel.setFont(self.boxFont)
|
self.searchLabel.setFont(self.boxFont)
|
||||||
@@ -2262,35 +2269,30 @@ class GuiDocEditSearch(QFrame):
|
|||||||
self.resultLabel.setMinimumWidth(self.mainTheme.getTextWidth("?/?", self.boxFont))
|
self.resultLabel.setMinimumWidth(self.mainTheme.getTextWidth("?/?", self.boxFont))
|
||||||
|
|
||||||
self.toggleCase = QAction(self.tr("Case Sensitive"), self)
|
self.toggleCase = QAction(self.tr("Case Sensitive"), self)
|
||||||
self.toggleCase.setIcon(self.mainTheme.getIcon("search_case"))
|
|
||||||
self.toggleCase.setCheckable(True)
|
self.toggleCase.setCheckable(True)
|
||||||
self.toggleCase.setChecked(self.isCaseSense)
|
self.toggleCase.setChecked(self.isCaseSense)
|
||||||
self.toggleCase.toggled.connect(self._doToggleCase)
|
self.toggleCase.toggled.connect(self._doToggleCase)
|
||||||
self.searchOpt.addAction(self.toggleCase)
|
self.searchOpt.addAction(self.toggleCase)
|
||||||
|
|
||||||
self.toggleWord = QAction(self.tr("Whole Words Only"), self)
|
self.toggleWord = QAction(self.tr("Whole Words Only"), self)
|
||||||
self.toggleWord.setIcon(self.mainTheme.getIcon("search_word"))
|
|
||||||
self.toggleWord.setCheckable(True)
|
self.toggleWord.setCheckable(True)
|
||||||
self.toggleWord.setChecked(self.isWholeWord)
|
self.toggleWord.setChecked(self.isWholeWord)
|
||||||
self.toggleWord.toggled.connect(self._doToggleWord)
|
self.toggleWord.toggled.connect(self._doToggleWord)
|
||||||
self.searchOpt.addAction(self.toggleWord)
|
self.searchOpt.addAction(self.toggleWord)
|
||||||
|
|
||||||
self.toggleRegEx = QAction(self.tr("RegEx Mode"), self)
|
self.toggleRegEx = QAction(self.tr("RegEx Mode"), self)
|
||||||
self.toggleRegEx.setIcon(self.mainTheme.getIcon("search_regex"))
|
|
||||||
self.toggleRegEx.setCheckable(True)
|
self.toggleRegEx.setCheckable(True)
|
||||||
self.toggleRegEx.setChecked(self.isRegEx)
|
self.toggleRegEx.setChecked(self.isRegEx)
|
||||||
self.toggleRegEx.toggled.connect(self._doToggleRegEx)
|
self.toggleRegEx.toggled.connect(self._doToggleRegEx)
|
||||||
self.searchOpt.addAction(self.toggleRegEx)
|
self.searchOpt.addAction(self.toggleRegEx)
|
||||||
|
|
||||||
self.toggleLoop = QAction(self.tr("Loop Search"), self)
|
self.toggleLoop = QAction(self.tr("Loop Search"), self)
|
||||||
self.toggleLoop.setIcon(self.mainTheme.getIcon("search_loop"))
|
|
||||||
self.toggleLoop.setCheckable(True)
|
self.toggleLoop.setCheckable(True)
|
||||||
self.toggleLoop.setChecked(self.doLoop)
|
self.toggleLoop.setChecked(self.doLoop)
|
||||||
self.toggleLoop.toggled.connect(self._doToggleLoop)
|
self.toggleLoop.toggled.connect(self._doToggleLoop)
|
||||||
self.searchOpt.addAction(self.toggleLoop)
|
self.searchOpt.addAction(self.toggleLoop)
|
||||||
|
|
||||||
self.toggleProject = QAction(self.tr("Search Next File"), self)
|
self.toggleProject = QAction(self.tr("Search Next File"), self)
|
||||||
self.toggleProject.setIcon(self.mainTheme.getIcon("search_project"))
|
|
||||||
self.toggleProject.setCheckable(True)
|
self.toggleProject.setCheckable(True)
|
||||||
self.toggleProject.setChecked(self.doNextFile)
|
self.toggleProject.setChecked(self.doNextFile)
|
||||||
self.toggleProject.toggled.connect(self._doToggleProject)
|
self.toggleProject.toggled.connect(self._doToggleProject)
|
||||||
@@ -2299,7 +2301,6 @@ class GuiDocEditSearch(QFrame):
|
|||||||
self.searchOpt.addSeparator()
|
self.searchOpt.addSeparator()
|
||||||
|
|
||||||
self.toggleMatchCap = QAction(self.tr("Preserve Case"), self)
|
self.toggleMatchCap = QAction(self.tr("Preserve Case"), self)
|
||||||
self.toggleMatchCap.setIcon(self.mainTheme.getIcon("search_preserve"))
|
|
||||||
self.toggleMatchCap.setCheckable(True)
|
self.toggleMatchCap.setCheckable(True)
|
||||||
self.toggleMatchCap.setChecked(self.doMatchCap)
|
self.toggleMatchCap.setChecked(self.doMatchCap)
|
||||||
self.toggleMatchCap.toggled.connect(self._doToggleMatchCap)
|
self.toggleMatchCap.toggled.connect(self._doToggleMatchCap)
|
||||||
@@ -2308,7 +2309,6 @@ class GuiDocEditSearch(QFrame):
|
|||||||
self.searchOpt.addSeparator()
|
self.searchOpt.addSeparator()
|
||||||
|
|
||||||
self.cancelSearch = QAction(self.tr("Close Search"), self)
|
self.cancelSearch = QAction(self.tr("Close Search"), self)
|
||||||
self.cancelSearch.setIcon(self.mainTheme.getIcon("search_cancel"))
|
|
||||||
self.cancelSearch.triggered.connect(self._doClose)
|
self.cancelSearch.triggered.connect(self._doClose)
|
||||||
self.searchOpt.addAction(self.cancelSearch)
|
self.searchOpt.addAction(self.cancelSearch)
|
||||||
|
|
||||||
@@ -2320,15 +2320,14 @@ class GuiDocEditSearch(QFrame):
|
|||||||
self.showReplace = QToolButton(self)
|
self.showReplace = QToolButton(self)
|
||||||
self.showReplace.setArrowType(Qt.RightArrow)
|
self.showReplace.setArrowType(Qt.RightArrow)
|
||||||
self.showReplace.setCheckable(True)
|
self.showReplace.setCheckable(True)
|
||||||
self.showReplace.setStyleSheet("QToolButton {border: none; background: transparent;}")
|
|
||||||
self.showReplace.toggled.connect(self._doToggleReplace)
|
self.showReplace.toggled.connect(self._doToggleReplace)
|
||||||
|
|
||||||
self.searchButton = QPushButton(self.mainTheme.getIcon("search"), "")
|
self.searchButton = QPushButton("")
|
||||||
self.searchButton.setFixedSize(QSize(bPx, bPx))
|
self.searchButton.setFixedSize(QSize(bPx, bPx))
|
||||||
self.searchButton.setToolTip(self.tr("Find in current document"))
|
self.searchButton.setToolTip(self.tr("Find in current document"))
|
||||||
self.searchButton.clicked.connect(self._doSearch)
|
self.searchButton.clicked.connect(self._doSearch)
|
||||||
|
|
||||||
self.replaceButton = QPushButton(self.mainTheme.getIcon("search_replace"), "")
|
self.replaceButton = QPushButton("")
|
||||||
self.replaceButton.setFixedSize(QSize(bPx, bPx))
|
self.replaceButton.setFixedSize(QSize(bPx, bPx))
|
||||||
self.replaceButton.setToolTip(self.tr("Find and replace in current document"))
|
self.replaceButton.setToolTip(self.tr("Find and replace in current document"))
|
||||||
self.replaceButton.clicked.connect(self._doReplace)
|
self.replaceButton.clicked.connect(self._doReplace)
|
||||||
@@ -2358,6 +2357,35 @@ class GuiDocEditSearch(QFrame):
|
|||||||
self.replaceButton.setVisible(False)
|
self.replaceButton.setVisible(False)
|
||||||
self.adjustSize()
|
self.adjustSize()
|
||||||
|
|
||||||
|
self.updateTheme()
|
||||||
|
|
||||||
|
logger.debug("GuiDocEditSearch initialisation complete")
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
def updateTheme(self):
|
||||||
|
"""Update theme elements.
|
||||||
|
"""
|
||||||
|
qPalette = qApp.palette()
|
||||||
|
self.setPalette(qPalette)
|
||||||
|
self.searchBox.setPalette(qPalette)
|
||||||
|
self.replaceBox.setPalette(qPalette)
|
||||||
|
|
||||||
|
# Set icons
|
||||||
|
self.toggleCase.setIcon(self.mainTheme.getIcon("search_case"))
|
||||||
|
self.toggleWord.setIcon(self.mainTheme.getIcon("search_word"))
|
||||||
|
self.toggleRegEx.setIcon(self.mainTheme.getIcon("search_regex"))
|
||||||
|
self.toggleLoop.setIcon(self.mainTheme.getIcon("search_loop"))
|
||||||
|
self.toggleProject.setIcon(self.mainTheme.getIcon("search_project"))
|
||||||
|
self.toggleMatchCap.setIcon(self.mainTheme.getIcon("search_preserve"))
|
||||||
|
self.cancelSearch.setIcon(self.mainTheme.getIcon("search_cancel"))
|
||||||
|
self.searchButton.setIcon(self.mainTheme.getIcon("search"))
|
||||||
|
self.replaceButton.setIcon(self.mainTheme.getIcon("search_replace"))
|
||||||
|
|
||||||
|
# Set stylesheets
|
||||||
|
self.searchOpt.setStyleSheet("QToolBar {padding: 0;}")
|
||||||
|
self.showReplace.setStyleSheet("QToolButton {border: none; background: transparent;}")
|
||||||
|
|
||||||
# Construct Box Colours
|
# Construct Box Colours
|
||||||
qPalette = self.searchBox.palette()
|
qPalette = self.searchBox.palette()
|
||||||
baseCol = qPalette.base().color()
|
baseCol = qPalette.base().color()
|
||||||
@@ -2376,8 +2404,6 @@ class GuiDocEditSearch(QFrame):
|
|||||||
False: errCol
|
False: errCol
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.debug("GuiDocEditSearch initialisation complete")
|
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
def closeSearch(self):
|
def closeSearch(self):
|
||||||
@@ -2403,10 +2429,10 @@ class GuiDocEditSearch(QFrame):
|
|||||||
"""
|
"""
|
||||||
if self.replaceBox.isVisible():
|
if self.replaceBox.isVisible():
|
||||||
if self.searchBox.hasFocus():
|
if self.searchBox.hasFocus():
|
||||||
self.replaceBox.setFocus(True)
|
self.replaceBox.setFocus()
|
||||||
return True
|
return True
|
||||||
elif self.replaceBox.hasFocus():
|
elif self.replaceBox.hasFocus():
|
||||||
self.searchBox.setFocus(True)
|
self.searchBox.setFocus()
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@@ -2631,7 +2657,6 @@ class GuiDocEditHeader(QWidget):
|
|||||||
|
|
||||||
# Buttons
|
# Buttons
|
||||||
self.editButton = QToolButton(self)
|
self.editButton = QToolButton(self)
|
||||||
self.editButton.setIcon(self.mainTheme.getIcon("edit"))
|
|
||||||
self.editButton.setContentsMargins(0, 0, 0, 0)
|
self.editButton.setContentsMargins(0, 0, 0, 0)
|
||||||
self.editButton.setIconSize(QSize(fPx, fPx))
|
self.editButton.setIconSize(QSize(fPx, fPx))
|
||||||
self.editButton.setFixedSize(fPx, fPx)
|
self.editButton.setFixedSize(fPx, fPx)
|
||||||
@@ -2642,7 +2667,6 @@ class GuiDocEditHeader(QWidget):
|
|||||||
self.editButton.clicked.connect(self._editDocument)
|
self.editButton.clicked.connect(self._editDocument)
|
||||||
|
|
||||||
self.searchButton = QToolButton(self)
|
self.searchButton = QToolButton(self)
|
||||||
self.searchButton.setIcon(self.mainTheme.getIcon("search"))
|
|
||||||
self.searchButton.setContentsMargins(0, 0, 0, 0)
|
self.searchButton.setContentsMargins(0, 0, 0, 0)
|
||||||
self.searchButton.setIconSize(QSize(fPx, fPx))
|
self.searchButton.setIconSize(QSize(fPx, fPx))
|
||||||
self.searchButton.setFixedSize(fPx, fPx)
|
self.searchButton.setFixedSize(fPx, fPx)
|
||||||
@@ -2653,7 +2677,6 @@ class GuiDocEditHeader(QWidget):
|
|||||||
self.searchButton.clicked.connect(self._searchDocument)
|
self.searchButton.clicked.connect(self._searchDocument)
|
||||||
|
|
||||||
self.minmaxButton = QToolButton(self)
|
self.minmaxButton = QToolButton(self)
|
||||||
self.minmaxButton.setIcon(self.mainTheme.getIcon("maximise"))
|
|
||||||
self.minmaxButton.setContentsMargins(0, 0, 0, 0)
|
self.minmaxButton.setContentsMargins(0, 0, 0, 0)
|
||||||
self.minmaxButton.setIconSize(QSize(fPx, fPx))
|
self.minmaxButton.setIconSize(QSize(fPx, fPx))
|
||||||
self.minmaxButton.setFixedSize(fPx, fPx)
|
self.minmaxButton.setFixedSize(fPx, fPx)
|
||||||
@@ -2664,7 +2687,6 @@ class GuiDocEditHeader(QWidget):
|
|||||||
self.minmaxButton.clicked.connect(self._minmaxDocument)
|
self.minmaxButton.clicked.connect(self._minmaxDocument)
|
||||||
|
|
||||||
self.closeButton = QToolButton(self)
|
self.closeButton = QToolButton(self)
|
||||||
self.closeButton.setIcon(self.mainTheme.getIcon("close"))
|
|
||||||
self.closeButton.setContentsMargins(0, 0, 0, 0)
|
self.closeButton.setContentsMargins(0, 0, 0, 0)
|
||||||
self.closeButton.setIconSize(QSize(fPx, fPx))
|
self.closeButton.setIconSize(QSize(fPx, fPx))
|
||||||
self.closeButton.setFixedSize(fPx, fPx)
|
self.closeButton.setFixedSize(fPx, fPx)
|
||||||
@@ -2692,6 +2714,7 @@ class GuiDocEditHeader(QWidget):
|
|||||||
self.setMinimumHeight(fPx + 2*cM)
|
self.setMinimumHeight(fPx + 2*cM)
|
||||||
|
|
||||||
# Fix the Colours
|
# Fix the Colours
|
||||||
|
self.updateTheme()
|
||||||
self.matchColours()
|
self.matchColours()
|
||||||
|
|
||||||
logger.debug("GuiDocEditHeader initialisation complete")
|
logger.debug("GuiDocEditHeader initialisation complete")
|
||||||
@@ -2702,6 +2725,15 @@ class GuiDocEditHeader(QWidget):
|
|||||||
# Methods
|
# Methods
|
||||||
##
|
##
|
||||||
|
|
||||||
|
def updateTheme(self):
|
||||||
|
"""Update theme elements.
|
||||||
|
"""
|
||||||
|
self.editButton.setIcon(self.mainTheme.getIcon("edit"))
|
||||||
|
self.searchButton.setIcon(self.mainTheme.getIcon("search"))
|
||||||
|
self.minmaxButton.setIcon(self.mainTheme.getIcon("maximise"))
|
||||||
|
self.closeButton.setIcon(self.mainTheme.getIcon("close"))
|
||||||
|
return
|
||||||
|
|
||||||
def matchColours(self):
|
def matchColours(self):
|
||||||
"""Update the colours of the widget to match those of the syntax
|
"""Update the colours of the widget to match those of the syntax
|
||||||
theme rather than the main GUI.
|
theme rather than the main GUI.
|
||||||
@@ -2860,7 +2892,6 @@ class GuiDocEditFooter(QWidget):
|
|||||||
|
|
||||||
# Lines
|
# Lines
|
||||||
self.linesIcon = QLabel("")
|
self.linesIcon = QLabel("")
|
||||||
self.linesIcon.setPixmap(self.mainTheme.getPixmap("status_lines", (self.sPx, self.sPx)))
|
|
||||||
self.linesIcon.setContentsMargins(0, 0, 0, 0)
|
self.linesIcon.setContentsMargins(0, 0, 0, 0)
|
||||||
self.linesIcon.setFixedHeight(self.sPx)
|
self.linesIcon.setFixedHeight(self.sPx)
|
||||||
self.linesIcon.setAlignment(Qt.AlignLeft | Qt.AlignTop)
|
self.linesIcon.setAlignment(Qt.AlignLeft | Qt.AlignTop)
|
||||||
@@ -2876,7 +2907,6 @@ class GuiDocEditFooter(QWidget):
|
|||||||
|
|
||||||
# Words
|
# Words
|
||||||
self.wordsIcon = QLabel("")
|
self.wordsIcon = QLabel("")
|
||||||
self.wordsIcon.setPixmap(self.mainTheme.getPixmap("status_stats", (self.sPx, self.sPx)))
|
|
||||||
self.wordsIcon.setContentsMargins(0, 0, 0, 0)
|
self.wordsIcon.setContentsMargins(0, 0, 0, 0)
|
||||||
self.wordsIcon.setFixedHeight(self.sPx)
|
self.wordsIcon.setFixedHeight(self.sPx)
|
||||||
self.wordsIcon.setAlignment(Qt.AlignLeft | Qt.AlignTop)
|
self.wordsIcon.setAlignment(Qt.AlignLeft | Qt.AlignTop)
|
||||||
@@ -2911,6 +2941,7 @@ class GuiDocEditFooter(QWidget):
|
|||||||
self.setMinimumHeight(fPx + 2*cM)
|
self.setMinimumHeight(fPx + 2*cM)
|
||||||
|
|
||||||
# Fix the Colours
|
# Fix the Colours
|
||||||
|
self.updateTheme()
|
||||||
self.matchColours()
|
self.matchColours()
|
||||||
self.updateLineCount()
|
self.updateLineCount()
|
||||||
self.updateCounts()
|
self.updateCounts()
|
||||||
@@ -2923,6 +2954,13 @@ class GuiDocEditFooter(QWidget):
|
|||||||
# Methods
|
# Methods
|
||||||
##
|
##
|
||||||
|
|
||||||
|
def updateTheme(self):
|
||||||
|
"""Update theme elements.
|
||||||
|
"""
|
||||||
|
self.linesIcon.setPixmap(self.mainTheme.getPixmap("status_lines", (self.sPx, self.sPx)))
|
||||||
|
self.wordsIcon.setPixmap(self.mainTheme.getPixmap("status_stats", (self.sPx, self.sPx)))
|
||||||
|
return
|
||||||
|
|
||||||
def matchColours(self):
|
def matchColours(self):
|
||||||
"""Update the colours of the widget to match those of the syntax
|
"""Update the colours of the widget to match those of the syntax
|
||||||
theme rather than the main GUI.
|
theme rather than the main GUI.
|
||||||
|
|||||||
@@ -102,6 +102,13 @@ class GuiDocViewer(QTextBrowser):
|
|||||||
self.docHeader.setTitleFromHandle(self._docHandle)
|
self.docHeader.setTitleFromHandle(self._docHandle)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def updateTheme(self):
|
||||||
|
"""Update theme elements.
|
||||||
|
"""
|
||||||
|
self.docHeader.updateTheme()
|
||||||
|
self.docFooter.updateTheme()
|
||||||
|
return
|
||||||
|
|
||||||
def initViewer(self):
|
def initViewer(self):
|
||||||
"""Set editor settings from main config.
|
"""Set editor settings from main config.
|
||||||
"""
|
"""
|
||||||
@@ -742,7 +749,6 @@ class GuiDocViewHeader(QWidget):
|
|||||||
|
|
||||||
# Buttons
|
# Buttons
|
||||||
self.backButton = QToolButton(self)
|
self.backButton = QToolButton(self)
|
||||||
self.backButton.setIcon(self.mainTheme.getIcon("backward"))
|
|
||||||
self.backButton.setContentsMargins(0, 0, 0, 0)
|
self.backButton.setContentsMargins(0, 0, 0, 0)
|
||||||
self.backButton.setIconSize(QSize(fPx, fPx))
|
self.backButton.setIconSize(QSize(fPx, fPx))
|
||||||
self.backButton.setFixedSize(fPx, fPx)
|
self.backButton.setFixedSize(fPx, fPx)
|
||||||
@@ -753,7 +759,6 @@ class GuiDocViewHeader(QWidget):
|
|||||||
self.backButton.clicked.connect(self.docViewer.navBackward)
|
self.backButton.clicked.connect(self.docViewer.navBackward)
|
||||||
|
|
||||||
self.forwardButton = QToolButton(self)
|
self.forwardButton = QToolButton(self)
|
||||||
self.forwardButton.setIcon(self.mainTheme.getIcon("forward"))
|
|
||||||
self.forwardButton.setContentsMargins(0, 0, 0, 0)
|
self.forwardButton.setContentsMargins(0, 0, 0, 0)
|
||||||
self.forwardButton.setIconSize(QSize(fPx, fPx))
|
self.forwardButton.setIconSize(QSize(fPx, fPx))
|
||||||
self.forwardButton.setFixedSize(fPx, fPx)
|
self.forwardButton.setFixedSize(fPx, fPx)
|
||||||
@@ -764,7 +769,6 @@ class GuiDocViewHeader(QWidget):
|
|||||||
self.forwardButton.clicked.connect(self.docViewer.navForward)
|
self.forwardButton.clicked.connect(self.docViewer.navForward)
|
||||||
|
|
||||||
self.refreshButton = QToolButton(self)
|
self.refreshButton = QToolButton(self)
|
||||||
self.refreshButton.setIcon(self.mainTheme.getIcon("refresh"))
|
|
||||||
self.refreshButton.setContentsMargins(0, 0, 0, 0)
|
self.refreshButton.setContentsMargins(0, 0, 0, 0)
|
||||||
self.refreshButton.setIconSize(QSize(fPx, fPx))
|
self.refreshButton.setIconSize(QSize(fPx, fPx))
|
||||||
self.refreshButton.setFixedSize(fPx, fPx)
|
self.refreshButton.setFixedSize(fPx, fPx)
|
||||||
@@ -775,7 +779,6 @@ class GuiDocViewHeader(QWidget):
|
|||||||
self.refreshButton.clicked.connect(self._refreshDocument)
|
self.refreshButton.clicked.connect(self._refreshDocument)
|
||||||
|
|
||||||
self.closeButton = QToolButton(self)
|
self.closeButton = QToolButton(self)
|
||||||
self.closeButton.setIcon(self.mainTheme.getIcon("close"))
|
|
||||||
self.closeButton.setContentsMargins(0, 0, 0, 0)
|
self.closeButton.setContentsMargins(0, 0, 0, 0)
|
||||||
self.closeButton.setIconSize(QSize(fPx, fPx))
|
self.closeButton.setIconSize(QSize(fPx, fPx))
|
||||||
self.closeButton.setFixedSize(fPx, fPx)
|
self.closeButton.setFixedSize(fPx, fPx)
|
||||||
@@ -803,6 +806,7 @@ class GuiDocViewHeader(QWidget):
|
|||||||
self.setMinimumHeight(fPx + 2*cM)
|
self.setMinimumHeight(fPx + 2*cM)
|
||||||
|
|
||||||
# Fix the Colours
|
# Fix the Colours
|
||||||
|
self.updateTheme()
|
||||||
self.matchColours()
|
self.matchColours()
|
||||||
|
|
||||||
logger.debug("GuiDocViewHeader initialisation complete")
|
logger.debug("GuiDocViewHeader initialisation complete")
|
||||||
@@ -813,6 +817,15 @@ class GuiDocViewHeader(QWidget):
|
|||||||
# Methods
|
# Methods
|
||||||
##
|
##
|
||||||
|
|
||||||
|
def updateTheme(self):
|
||||||
|
"""Update theme elements.
|
||||||
|
"""
|
||||||
|
self.backButton.setIcon(self.mainTheme.getIcon("backward"))
|
||||||
|
self.forwardButton.setIcon(self.mainTheme.getIcon("forward"))
|
||||||
|
self.refreshButton.setIcon(self.mainTheme.getIcon("refresh"))
|
||||||
|
self.closeButton.setIcon(self.mainTheme.getIcon("close"))
|
||||||
|
return
|
||||||
|
|
||||||
def matchColours(self):
|
def matchColours(self):
|
||||||
"""Update the colours of the widget to match those of the syntax
|
"""Update the colours of the widget to match those of the syntax
|
||||||
theme rather than the main GUI.
|
theme rather than the main GUI.
|
||||||
@@ -926,33 +939,13 @@ class GuiDocViewFooter(QWidget):
|
|||||||
bSp = self.mainConf.pxInt(2)
|
bSp = self.mainConf.pxInt(2)
|
||||||
hSp = self.mainConf.pxInt(8)
|
hSp = self.mainConf.pxInt(8)
|
||||||
|
|
||||||
# Icons
|
|
||||||
stickyOn = self.mainTheme.getPixmap("sticky-on", (fPx, fPx))
|
|
||||||
stickyOff = self.mainTheme.getPixmap("sticky-off", (fPx, fPx))
|
|
||||||
stickyIcon = QIcon()
|
|
||||||
stickyIcon.addPixmap(stickyOn, QIcon.Normal, QIcon.On)
|
|
||||||
stickyIcon.addPixmap(stickyOff, QIcon.Normal, QIcon.Off)
|
|
||||||
|
|
||||||
bulletOn = self.mainTheme.getPixmap("bullet-on", (fPx, fPx))
|
|
||||||
bulletOff = self.mainTheme.getPixmap("bullet-off", (fPx, fPx))
|
|
||||||
bulletIcon = QIcon()
|
|
||||||
bulletIcon.addPixmap(bulletOn, QIcon.Normal, QIcon.On)
|
|
||||||
bulletIcon.addPixmap(bulletOff, QIcon.Normal, QIcon.Off)
|
|
||||||
|
|
||||||
# Main Widget Settings
|
# Main Widget Settings
|
||||||
self.setContentsMargins(0, 0, 0, 0)
|
self.setContentsMargins(0, 0, 0, 0)
|
||||||
self.setAutoFillBackground(True)
|
self.setAutoFillBackground(True)
|
||||||
|
|
||||||
buttonStyle = (
|
|
||||||
"QToolButton {{border: none; background: transparent;}} "
|
|
||||||
"QToolButton:hover {{border: none; background: rgba({0},{1},{2},0.2);}}"
|
|
||||||
).format(*self.mainTheme.colText)
|
|
||||||
|
|
||||||
# Show/Hide Details
|
# Show/Hide Details
|
||||||
self.showHide = QToolButton(self)
|
self.showHide = QToolButton(self)
|
||||||
self.showHide.setToolButtonStyle(Qt.ToolButtonIconOnly)
|
self.showHide.setToolButtonStyle(Qt.ToolButtonIconOnly)
|
||||||
self.showHide.setStyleSheet(buttonStyle)
|
|
||||||
self.showHide.setIcon(self.mainTheme.getIcon("reference"))
|
|
||||||
self.showHide.setIconSize(QSize(fPx, fPx))
|
self.showHide.setIconSize(QSize(fPx, fPx))
|
||||||
self.showHide.setFixedSize(QSize(fPx, fPx))
|
self.showHide.setFixedSize(QSize(fPx, fPx))
|
||||||
self.showHide.clicked.connect(self._doShowHide)
|
self.showHide.clicked.connect(self._doShowHide)
|
||||||
@@ -962,8 +955,6 @@ class GuiDocViewFooter(QWidget):
|
|||||||
self.stickyRefs = QToolButton(self)
|
self.stickyRefs = QToolButton(self)
|
||||||
self.stickyRefs.setCheckable(True)
|
self.stickyRefs.setCheckable(True)
|
||||||
self.stickyRefs.setToolButtonStyle(Qt.ToolButtonIconOnly)
|
self.stickyRefs.setToolButtonStyle(Qt.ToolButtonIconOnly)
|
||||||
self.stickyRefs.setStyleSheet(buttonStyle)
|
|
||||||
self.stickyRefs.setIcon(stickyIcon)
|
|
||||||
self.stickyRefs.setIconSize(QSize(fPx, fPx))
|
self.stickyRefs.setIconSize(QSize(fPx, fPx))
|
||||||
self.stickyRefs.setFixedSize(QSize(fPx, fPx))
|
self.stickyRefs.setFixedSize(QSize(fPx, fPx))
|
||||||
self.stickyRefs.toggled.connect(self._doToggleSticky)
|
self.stickyRefs.toggled.connect(self._doToggleSticky)
|
||||||
@@ -976,8 +967,6 @@ class GuiDocViewFooter(QWidget):
|
|||||||
self.showComments.setCheckable(True)
|
self.showComments.setCheckable(True)
|
||||||
self.showComments.setChecked(self.mainConf.viewComments)
|
self.showComments.setChecked(self.mainConf.viewComments)
|
||||||
self.showComments.setToolButtonStyle(Qt.ToolButtonIconOnly)
|
self.showComments.setToolButtonStyle(Qt.ToolButtonIconOnly)
|
||||||
self.showComments.setStyleSheet(buttonStyle)
|
|
||||||
self.showComments.setIcon(bulletIcon)
|
|
||||||
self.showComments.setIconSize(QSize(fPx, fPx))
|
self.showComments.setIconSize(QSize(fPx, fPx))
|
||||||
self.showComments.setFixedSize(QSize(fPx, fPx))
|
self.showComments.setFixedSize(QSize(fPx, fPx))
|
||||||
self.showComments.toggled.connect(self._doToggleComments)
|
self.showComments.toggled.connect(self._doToggleComments)
|
||||||
@@ -988,8 +977,6 @@ class GuiDocViewFooter(QWidget):
|
|||||||
self.showSynopsis.setCheckable(True)
|
self.showSynopsis.setCheckable(True)
|
||||||
self.showSynopsis.setChecked(self.mainConf.viewSynopsis)
|
self.showSynopsis.setChecked(self.mainConf.viewSynopsis)
|
||||||
self.showSynopsis.setToolButtonStyle(Qt.ToolButtonIconOnly)
|
self.showSynopsis.setToolButtonStyle(Qt.ToolButtonIconOnly)
|
||||||
self.showSynopsis.setStyleSheet(buttonStyle)
|
|
||||||
self.showSynopsis.setIcon(bulletIcon)
|
|
||||||
self.showSynopsis.setIconSize(QSize(fPx, fPx))
|
self.showSynopsis.setIconSize(QSize(fPx, fPx))
|
||||||
self.showSynopsis.setFixedSize(QSize(fPx, fPx))
|
self.showSynopsis.setFixedSize(QSize(fPx, fPx))
|
||||||
self.showSynopsis.toggled.connect(self._doToggleSynopsis)
|
self.showSynopsis.toggled.connect(self._doToggleSynopsis)
|
||||||
@@ -1063,6 +1050,7 @@ class GuiDocViewFooter(QWidget):
|
|||||||
self.setMinimumHeight(fPx + 2*cM)
|
self.setMinimumHeight(fPx + 2*cM)
|
||||||
|
|
||||||
# Fix the Colours
|
# Fix the Colours
|
||||||
|
self.updateTheme()
|
||||||
self.matchColours()
|
self.matchColours()
|
||||||
|
|
||||||
logger.debug("GuiDocViewFooter initialisation complete")
|
logger.debug("GuiDocViewFooter initialisation complete")
|
||||||
@@ -1073,6 +1061,44 @@ class GuiDocViewFooter(QWidget):
|
|||||||
# Methods
|
# Methods
|
||||||
##
|
##
|
||||||
|
|
||||||
|
def updateTheme(self):
|
||||||
|
"""Update theme elements.
|
||||||
|
"""
|
||||||
|
# Icons
|
||||||
|
|
||||||
|
fPx = int(0.9*self.mainTheme.fontPixelSize)
|
||||||
|
|
||||||
|
stickyOn = self.mainTheme.getPixmap("sticky-on", (fPx, fPx))
|
||||||
|
stickyOff = self.mainTheme.getPixmap("sticky-off", (fPx, fPx))
|
||||||
|
stickyIcon = QIcon()
|
||||||
|
stickyIcon.addPixmap(stickyOn, QIcon.Normal, QIcon.On)
|
||||||
|
stickyIcon.addPixmap(stickyOff, QIcon.Normal, QIcon.Off)
|
||||||
|
|
||||||
|
bulletOn = self.mainTheme.getPixmap("bullet-on", (fPx, fPx))
|
||||||
|
bulletOff = self.mainTheme.getPixmap("bullet-off", (fPx, fPx))
|
||||||
|
bulletIcon = QIcon()
|
||||||
|
bulletIcon.addPixmap(bulletOn, QIcon.Normal, QIcon.On)
|
||||||
|
bulletIcon.addPixmap(bulletOff, QIcon.Normal, QIcon.Off)
|
||||||
|
|
||||||
|
self.showHide.setIcon(self.mainTheme.getIcon("reference"))
|
||||||
|
self.stickyRefs.setIcon(stickyIcon)
|
||||||
|
self.showComments.setIcon(bulletIcon)
|
||||||
|
self.showSynopsis.setIcon(bulletIcon)
|
||||||
|
|
||||||
|
# StyleSheets
|
||||||
|
|
||||||
|
buttonStyle = (
|
||||||
|
"QToolButton {{border: none; background: transparent;}} "
|
||||||
|
"QToolButton:hover {{border: none; background: rgba({0},{1},{2},0.2);}}"
|
||||||
|
).format(*self.mainTheme.colText)
|
||||||
|
|
||||||
|
self.showHide.setStyleSheet(buttonStyle)
|
||||||
|
self.stickyRefs.setStyleSheet(buttonStyle)
|
||||||
|
self.showComments.setStyleSheet(buttonStyle)
|
||||||
|
self.showSynopsis.setStyleSheet(buttonStyle)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
def matchColours(self):
|
def matchColours(self):
|
||||||
"""Update the colours of the widget to match those of the syntax
|
"""Update the colours of the widget to match those of the syntax
|
||||||
theme rather than the main GUI.
|
theme rather than the main GUI.
|
||||||
|
|||||||
@@ -92,6 +92,13 @@ class GuiNovelView(QWidget):
|
|||||||
# Methods
|
# Methods
|
||||||
##
|
##
|
||||||
|
|
||||||
|
def updateTheme(self):
|
||||||
|
"""Update theme elements.
|
||||||
|
"""
|
||||||
|
self.novelBar.updateTheme()
|
||||||
|
self.refreshTree()
|
||||||
|
return
|
||||||
|
|
||||||
def initSettings(self):
|
def initSettings(self):
|
||||||
"""Initialise GUI elements that depend on specific settings.
|
"""Initialise GUI elements that depend on specific settings.
|
||||||
"""
|
"""
|
||||||
@@ -181,16 +188,6 @@ class GuiNovelToolBar(QWidget):
|
|||||||
self.setContentsMargins(0, 0, 0, 0)
|
self.setContentsMargins(0, 0, 0, 0)
|
||||||
self.setAutoFillBackground(True)
|
self.setAutoFillBackground(True)
|
||||||
|
|
||||||
qPalette = self.palette()
|
|
||||||
qPalette.setBrush(QPalette.Window, qPalette.base())
|
|
||||||
self.setPalette(qPalette)
|
|
||||||
|
|
||||||
fadeCol = qPalette.text().color()
|
|
||||||
buttonStyle = (
|
|
||||||
"QToolButton {{padding: {0}px; border: none; background: transparent;}} "
|
|
||||||
"QToolButton:hover {{border: none; background: rgba({1},{2},{3},0.2);}}"
|
|
||||||
).format(mPx, fadeCol.red(), fadeCol.green(), fadeCol.blue())
|
|
||||||
|
|
||||||
# Widget Label
|
# Widget Label
|
||||||
self.viewLabel = QLabel("<b>%s</b>" % self.tr("Novel Outline"))
|
self.viewLabel = QLabel("<b>%s</b>" % self.tr("Novel Outline"))
|
||||||
self.viewLabel.setContentsMargins(0, 0, 0, 0)
|
self.viewLabel.setContentsMargins(0, 0, 0, 0)
|
||||||
@@ -199,9 +196,7 @@ class GuiNovelToolBar(QWidget):
|
|||||||
# Refresh Button
|
# Refresh Button
|
||||||
self.tbRefresh = QToolButton(self)
|
self.tbRefresh = QToolButton(self)
|
||||||
self.tbRefresh.setToolTip(self.tr("Refresh"))
|
self.tbRefresh.setToolTip(self.tr("Refresh"))
|
||||||
self.tbRefresh.setIcon(self.mainTheme.getIcon("refresh"))
|
|
||||||
self.tbRefresh.setIconSize(QSize(iPx, iPx))
|
self.tbRefresh.setIconSize(QSize(iPx, iPx))
|
||||||
self.tbRefresh.setStyleSheet(buttonStyle)
|
|
||||||
self.tbRefresh.clicked.connect(self._refreshNovelTree)
|
self.tbRefresh.clicked.connect(self._refreshNovelTree)
|
||||||
|
|
||||||
# Novel Root Menu
|
# Novel Root Menu
|
||||||
@@ -211,9 +206,7 @@ class GuiNovelToolBar(QWidget):
|
|||||||
|
|
||||||
self.tbRoot = QToolButton(self)
|
self.tbRoot = QToolButton(self)
|
||||||
self.tbRoot.setToolTip(self.tr("Novel Root"))
|
self.tbRoot.setToolTip(self.tr("Novel Root"))
|
||||||
self.tbRoot.setIcon(self.mainTheme.getIcon(nwLabels.CLASS_ICON[nwItemClass.NOVEL]))
|
|
||||||
self.tbRoot.setIconSize(QSize(iPx, iPx))
|
self.tbRoot.setIconSize(QSize(iPx, iPx))
|
||||||
self.tbRoot.setStyleSheet(buttonStyle)
|
|
||||||
self.tbRoot.setMenu(self.mRoot)
|
self.tbRoot.setMenu(self.mRoot)
|
||||||
self.tbRoot.setPopupMode(QToolButton.InstantPopup)
|
self.tbRoot.setPopupMode(QToolButton.InstantPopup)
|
||||||
|
|
||||||
@@ -230,9 +223,7 @@ class GuiNovelToolBar(QWidget):
|
|||||||
|
|
||||||
self.tbMore = QToolButton(self)
|
self.tbMore = QToolButton(self)
|
||||||
self.tbMore.setToolTip(self.tr("More Options"))
|
self.tbMore.setToolTip(self.tr("More Options"))
|
||||||
self.tbMore.setIcon(self.mainTheme.getIcon("menu"))
|
|
||||||
self.tbMore.setIconSize(QSize(iPx, iPx))
|
self.tbMore.setIconSize(QSize(iPx, iPx))
|
||||||
self.tbMore.setStyleSheet(buttonStyle)
|
|
||||||
self.tbMore.setMenu(self.mMore)
|
self.tbMore.setMenu(self.mMore)
|
||||||
self.tbMore.setPopupMode(QToolButton.InstantPopup)
|
self.tbMore.setPopupMode(QToolButton.InstantPopup)
|
||||||
|
|
||||||
@@ -247,6 +238,8 @@ class GuiNovelToolBar(QWidget):
|
|||||||
|
|
||||||
self.setLayout(self.outerBox)
|
self.setLayout(self.outerBox)
|
||||||
|
|
||||||
|
self.updateTheme()
|
||||||
|
|
||||||
logger.debug("GuiNovelToolBar initialisation complete")
|
logger.debug("GuiNovelToolBar initialisation complete")
|
||||||
|
|
||||||
return
|
return
|
||||||
@@ -255,6 +248,33 @@ class GuiNovelToolBar(QWidget):
|
|||||||
# Methods
|
# Methods
|
||||||
##
|
##
|
||||||
|
|
||||||
|
def updateTheme(self):
|
||||||
|
"""Update theme elements.
|
||||||
|
"""
|
||||||
|
# Icons
|
||||||
|
|
||||||
|
self.tbRefresh.setIcon(self.mainTheme.getIcon("refresh"))
|
||||||
|
self.tbRoot.setIcon(self.mainTheme.getIcon(nwLabels.CLASS_ICON[nwItemClass.NOVEL]))
|
||||||
|
self.tbMore.setIcon(self.mainTheme.getIcon("menu"))
|
||||||
|
|
||||||
|
qPalette = self.palette()
|
||||||
|
qPalette.setBrush(QPalette.Window, qPalette.base())
|
||||||
|
self.setPalette(qPalette)
|
||||||
|
|
||||||
|
# StyleSheets
|
||||||
|
|
||||||
|
fadeCol = qPalette.text().color()
|
||||||
|
buttonStyle = (
|
||||||
|
"QToolButton {{padding: {0}px; border: none; background: transparent;}} "
|
||||||
|
"QToolButton:hover {{border: none; background: rgba({1},{2},{3},0.2);}}"
|
||||||
|
).format(self.mainConf.pxInt(2), fadeCol.red(), fadeCol.green(), fadeCol.blue())
|
||||||
|
|
||||||
|
self.tbRefresh.setStyleSheet(buttonStyle)
|
||||||
|
self.tbRoot.setStyleSheet(buttonStyle)
|
||||||
|
self.tbMore.setStyleSheet(buttonStyle)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
def clearContent(self):
|
def clearContent(self):
|
||||||
"""Run clearing project tasks.
|
"""Run clearing project tasks.
|
||||||
"""
|
"""
|
||||||
|
|||||||
+66
-41
@@ -119,6 +119,13 @@ class GuiProjectView(QWidget):
|
|||||||
# Methods
|
# Methods
|
||||||
##
|
##
|
||||||
|
|
||||||
|
def updateTheme(self):
|
||||||
|
"""Update theme elements.
|
||||||
|
"""
|
||||||
|
self.projBar.updateTheme()
|
||||||
|
self.populateTree()
|
||||||
|
return
|
||||||
|
|
||||||
def initSettings(self):
|
def initSettings(self):
|
||||||
"""Initialise GUI elements that depend on specific settings.
|
"""Initialise GUI elements that depend on specific settings.
|
||||||
"""
|
"""
|
||||||
@@ -213,16 +220,6 @@ class GuiProjectToolBar(QWidget):
|
|||||||
self.setContentsMargins(0, 0, 0, 0)
|
self.setContentsMargins(0, 0, 0, 0)
|
||||||
self.setAutoFillBackground(True)
|
self.setAutoFillBackground(True)
|
||||||
|
|
||||||
qPalette = self.palette()
|
|
||||||
qPalette.setBrush(QPalette.Window, qPalette.base())
|
|
||||||
self.setPalette(qPalette)
|
|
||||||
|
|
||||||
fadeCol = qPalette.text().color()
|
|
||||||
buttonStyle = (
|
|
||||||
"QToolButton {{padding: {0}px; border: none; background: transparent;}} "
|
|
||||||
"QToolButton:hover {{border: none; background: rgba({1},{2},{3},0.2);}}"
|
|
||||||
).format(mPx, fadeCol.red(), fadeCol.green(), fadeCol.blue())
|
|
||||||
|
|
||||||
# Widget Label
|
# Widget Label
|
||||||
self.viewLabel = QLabel("<b>%s</b>" % self.tr("Project Content"))
|
self.viewLabel = QLabel("<b>%s</b>" % self.tr("Project Content"))
|
||||||
self.viewLabel.setContentsMargins(0, 0, 0, 0)
|
self.viewLabel.setContentsMargins(0, 0, 0, 0)
|
||||||
@@ -234,78 +231,56 @@ class GuiProjectToolBar(QWidget):
|
|||||||
self.tbQuick = QToolButton(self)
|
self.tbQuick = QToolButton(self)
|
||||||
self.tbQuick.setToolTip("%s [Ctrl+L]" % self.tr("Quick Links"))
|
self.tbQuick.setToolTip("%s [Ctrl+L]" % self.tr("Quick Links"))
|
||||||
self.tbQuick.setShortcut("Ctrl+L")
|
self.tbQuick.setShortcut("Ctrl+L")
|
||||||
self.tbQuick.setIcon(self.mainTheme.getIcon("bookmark"))
|
|
||||||
self.tbQuick.setIconSize(QSize(iPx, iPx))
|
self.tbQuick.setIconSize(QSize(iPx, iPx))
|
||||||
self.tbQuick.setStyleSheet(buttonStyle)
|
|
||||||
self.tbQuick.setMenu(self.mQuick)
|
self.tbQuick.setMenu(self.mQuick)
|
||||||
self.tbQuick.setPopupMode(QToolButton.InstantPopup)
|
self.tbQuick.setPopupMode(QToolButton.InstantPopup)
|
||||||
|
|
||||||
# Move Buttons
|
# Move Buttons
|
||||||
self.tbMoveU = QToolButton(self)
|
self.tbMoveU = QToolButton(self)
|
||||||
self.tbMoveU.setToolTip("%s [Ctrl+Up]" % self.tr("Move Up"))
|
self.tbMoveU.setToolTip("%s [Ctrl+Up]" % self.tr("Move Up"))
|
||||||
self.tbMoveU.setIcon(self.mainTheme.getIcon("up"))
|
|
||||||
self.tbMoveU.setIconSize(QSize(iPx, iPx))
|
self.tbMoveU.setIconSize(QSize(iPx, iPx))
|
||||||
self.tbMoveU.setStyleSheet(buttonStyle)
|
|
||||||
self.tbMoveU.clicked.connect(lambda: self.projTree.moveTreeItem(-1))
|
self.tbMoveU.clicked.connect(lambda: self.projTree.moveTreeItem(-1))
|
||||||
|
|
||||||
self.tbMoveD = QToolButton(self)
|
self.tbMoveD = QToolButton(self)
|
||||||
self.tbMoveD.setToolTip("%s [Ctrl+Down]" % self.tr("Move Down"))
|
self.tbMoveD.setToolTip("%s [Ctrl+Down]" % self.tr("Move Down"))
|
||||||
self.tbMoveD.setIcon(self.mainTheme.getIcon("down"))
|
|
||||||
self.tbMoveD.setIconSize(QSize(iPx, iPx))
|
self.tbMoveD.setIconSize(QSize(iPx, iPx))
|
||||||
self.tbMoveD.setStyleSheet(buttonStyle)
|
|
||||||
self.tbMoveD.clicked.connect(lambda: self.projTree.moveTreeItem(1))
|
self.tbMoveD.clicked.connect(lambda: self.projTree.moveTreeItem(1))
|
||||||
|
|
||||||
# Add Item Menu
|
# Add Item Menu
|
||||||
self.mAdd = QMenu()
|
self.mAdd = QMenu()
|
||||||
|
|
||||||
self.aAddEmpty = self.mAdd.addAction(trConst(nwLabels.ITEM_DESCRIPTION["document"]))
|
self.aAddEmpty = self.mAdd.addAction(trConst(nwLabels.ITEM_DESCRIPTION["document"]))
|
||||||
self.aAddEmpty.setIcon(self.mainTheme.getIcon("proj_document"))
|
|
||||||
self.aAddEmpty.triggered.connect(
|
self.aAddEmpty.triggered.connect(
|
||||||
lambda: self.projTree.newTreeItem(nwItemType.FILE, hLevel=0, isNote=False)
|
lambda: self.projTree.newTreeItem(nwItemType.FILE, hLevel=0, isNote=False)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.aAddChap = self.mAdd.addAction(trConst(nwLabels.ITEM_DESCRIPTION["doc_h2"]))
|
self.aAddChap = self.mAdd.addAction(trConst(nwLabels.ITEM_DESCRIPTION["doc_h2"]))
|
||||||
self.aAddChap.setIcon(self.mainTheme.getIcon("proj_chapter"))
|
|
||||||
self.aAddChap.triggered.connect(
|
self.aAddChap.triggered.connect(
|
||||||
lambda: self.projTree.newTreeItem(nwItemType.FILE, hLevel=2, isNote=False)
|
lambda: self.projTree.newTreeItem(nwItemType.FILE, hLevel=2, isNote=False)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.aAddScene = self.mAdd.addAction(trConst(nwLabels.ITEM_DESCRIPTION["doc_h3"]))
|
self.aAddScene = self.mAdd.addAction(trConst(nwLabels.ITEM_DESCRIPTION["doc_h3"]))
|
||||||
self.aAddScene.setIcon(self.mainTheme.getIcon("proj_scene"))
|
|
||||||
self.aAddScene.triggered.connect(
|
self.aAddScene.triggered.connect(
|
||||||
lambda: self.projTree.newTreeItem(nwItemType.FILE, hLevel=3, isNote=False)
|
lambda: self.projTree.newTreeItem(nwItemType.FILE, hLevel=3, isNote=False)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.aAddNote = self.mAdd.addAction(trConst(nwLabels.ITEM_DESCRIPTION["note"]))
|
self.aAddNote = self.mAdd.addAction(trConst(nwLabels.ITEM_DESCRIPTION["note"]))
|
||||||
self.aAddNote.setIcon(self.mainTheme.getIcon("proj_note"))
|
|
||||||
self.aAddNote.triggered.connect(
|
self.aAddNote.triggered.connect(
|
||||||
lambda: self.projTree.newTreeItem(nwItemType.FILE, hLevel=1, isNote=True)
|
lambda: self.projTree.newTreeItem(nwItemType.FILE, hLevel=1, isNote=True)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.aAddFolder = self.mAdd.addAction(trConst(nwLabels.ITEM_DESCRIPTION["folder"]))
|
self.aAddFolder = self.mAdd.addAction(trConst(nwLabels.ITEM_DESCRIPTION["folder"]))
|
||||||
self.aAddFolder.setIcon(self.mainTheme.getIcon("proj_folder"))
|
|
||||||
self.aAddFolder.triggered.connect(
|
self.aAddFolder.triggered.connect(
|
||||||
lambda: self.projTree.newTreeItem(nwItemType.FOLDER)
|
lambda: self.projTree.newTreeItem(nwItemType.FOLDER)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.mAddRoot = self.mAdd.addMenu(trConst(nwLabels.ITEM_DESCRIPTION["root"]))
|
self.mAddRoot = self.mAdd.addMenu(trConst(nwLabels.ITEM_DESCRIPTION["root"]))
|
||||||
self._addRootFolderEntry(nwItemClass.NOVEL)
|
self._buildRootMenu()
|
||||||
self._addRootFolderEntry(nwItemClass.ARCHIVE)
|
|
||||||
self.mAddRoot.addSeparator()
|
|
||||||
self._addRootFolderEntry(nwItemClass.PLOT)
|
|
||||||
self._addRootFolderEntry(nwItemClass.CHARACTER)
|
|
||||||
self._addRootFolderEntry(nwItemClass.WORLD)
|
|
||||||
self._addRootFolderEntry(nwItemClass.TIMELINE)
|
|
||||||
self._addRootFolderEntry(nwItemClass.OBJECT)
|
|
||||||
self._addRootFolderEntry(nwItemClass.ENTITY)
|
|
||||||
self._addRootFolderEntry(nwItemClass.CUSTOM)
|
|
||||||
|
|
||||||
self.tbAdd = QToolButton(self)
|
self.tbAdd = QToolButton(self)
|
||||||
self.tbAdd.setToolTip("%s [Ctrl+N]" % self.tr("Add Item"))
|
self.tbAdd.setToolTip("%s [Ctrl+N]" % self.tr("Add Item"))
|
||||||
self.tbAdd.setShortcut("Ctrl+N")
|
self.tbAdd.setShortcut("Ctrl+N")
|
||||||
self.tbAdd.setIcon(self.mainTheme.getIcon("add"))
|
|
||||||
self.tbAdd.setIconSize(QSize(iPx, iPx))
|
self.tbAdd.setIconSize(QSize(iPx, iPx))
|
||||||
self.tbAdd.setStyleSheet(buttonStyle)
|
|
||||||
self.tbAdd.setMenu(self.mAdd)
|
self.tbAdd.setMenu(self.mAdd)
|
||||||
self.tbAdd.setPopupMode(QToolButton.InstantPopup)
|
self.tbAdd.setPopupMode(QToolButton.InstantPopup)
|
||||||
|
|
||||||
@@ -326,9 +301,7 @@ class GuiProjectToolBar(QWidget):
|
|||||||
|
|
||||||
self.tbMore = QToolButton(self)
|
self.tbMore = QToolButton(self)
|
||||||
self.tbMore.setToolTip(self.tr("More Options"))
|
self.tbMore.setToolTip(self.tr("More Options"))
|
||||||
self.tbMore.setIcon(self.mainTheme.getIcon("menu"))
|
|
||||||
self.tbMore.setIconSize(QSize(iPx, iPx))
|
self.tbMore.setIconSize(QSize(iPx, iPx))
|
||||||
self.tbMore.setStyleSheet(buttonStyle)
|
|
||||||
self.tbMore.setMenu(self.mMore)
|
self.tbMore.setMenu(self.mMore)
|
||||||
self.tbMore.setPopupMode(QToolButton.InstantPopup)
|
self.tbMore.setPopupMode(QToolButton.InstantPopup)
|
||||||
|
|
||||||
@@ -344,6 +317,7 @@ class GuiProjectToolBar(QWidget):
|
|||||||
self.outerBox.setSpacing(0)
|
self.outerBox.setSpacing(0)
|
||||||
|
|
||||||
self.setLayout(self.outerBox)
|
self.setLayout(self.outerBox)
|
||||||
|
self.updateTheme()
|
||||||
|
|
||||||
logger.debug("GuiProjectToolBar initialisation complete")
|
logger.debug("GuiProjectToolBar initialisation complete")
|
||||||
|
|
||||||
@@ -353,6 +327,41 @@ class GuiProjectToolBar(QWidget):
|
|||||||
# Methods
|
# Methods
|
||||||
##
|
##
|
||||||
|
|
||||||
|
def updateTheme(self):
|
||||||
|
"""Update theme elements.
|
||||||
|
"""
|
||||||
|
qPalette = self.palette()
|
||||||
|
qPalette.setBrush(QPalette.Window, qPalette.base())
|
||||||
|
self.setPalette(qPalette)
|
||||||
|
|
||||||
|
fadeCol = qPalette.text().color()
|
||||||
|
buttonStyle = (
|
||||||
|
"QToolButton {{padding: {0}px; border: none; background: transparent;}} "
|
||||||
|
"QToolButton:hover {{border: none; background: rgba({1},{2},{3},0.2);}}"
|
||||||
|
).format(self.mainConf.pxInt(2), fadeCol.red(), fadeCol.green(), fadeCol.blue())
|
||||||
|
|
||||||
|
self.tbQuick.setStyleSheet(buttonStyle)
|
||||||
|
self.tbMoveU.setStyleSheet(buttonStyle)
|
||||||
|
self.tbMoveD.setStyleSheet(buttonStyle)
|
||||||
|
self.tbAdd.setStyleSheet(buttonStyle)
|
||||||
|
self.tbMore.setStyleSheet(buttonStyle)
|
||||||
|
|
||||||
|
self.tbQuick.setIcon(self.mainTheme.getIcon("bookmark"))
|
||||||
|
self.tbMoveU.setIcon(self.mainTheme.getIcon("up"))
|
||||||
|
self.tbMoveD.setIcon(self.mainTheme.getIcon("down"))
|
||||||
|
self.aAddEmpty.setIcon(self.mainTheme.getIcon("proj_document"))
|
||||||
|
self.aAddChap.setIcon(self.mainTheme.getIcon("proj_chapter"))
|
||||||
|
self.aAddScene.setIcon(self.mainTheme.getIcon("proj_scene"))
|
||||||
|
self.aAddNote.setIcon(self.mainTheme.getIcon("proj_note"))
|
||||||
|
self.aAddFolder.setIcon(self.mainTheme.getIcon("proj_folder"))
|
||||||
|
self.tbAdd.setIcon(self.mainTheme.getIcon("add"))
|
||||||
|
self.tbMore.setIcon(self.mainTheme.getIcon("menu"))
|
||||||
|
|
||||||
|
self.buildQuickLinkMenu()
|
||||||
|
self._buildRootMenu()
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
def clearContent(self):
|
def clearContent(self):
|
||||||
"""Clear dynamic content on the tool bar.
|
"""Clear dynamic content on the tool bar.
|
||||||
"""
|
"""
|
||||||
@@ -379,13 +388,29 @@ class GuiProjectToolBar(QWidget):
|
|||||||
# Internal Functions
|
# Internal Functions
|
||||||
##
|
##
|
||||||
|
|
||||||
def _addRootFolderEntry(self, itemClass):
|
def _buildRootMenu(self):
|
||||||
"""Add a menu entry for a root folder of a given class.
|
"""Build the rood folder menu.
|
||||||
"""
|
"""
|
||||||
aNew = self.mAddRoot.addAction(trConst(nwLabels.CLASS_NAME[itemClass]))
|
def addClass(itemClass):
|
||||||
aNew.setIcon(self.mainTheme.getIcon(nwLabels.CLASS_ICON[itemClass]))
|
aNew = self.mAddRoot.addAction(trConst(nwLabels.CLASS_NAME[itemClass]))
|
||||||
aNew.triggered.connect(lambda: self.projTree.newTreeItem(nwItemType.ROOT, itemClass))
|
aNew.setIcon(self.mainTheme.getIcon(nwLabels.CLASS_ICON[itemClass]))
|
||||||
self.mAddRoot.addAction(aNew)
|
aNew.triggered.connect(lambda: self.projTree.newTreeItem(nwItemType.ROOT, itemClass))
|
||||||
|
self.mAddRoot.addAction(aNew)
|
||||||
|
return
|
||||||
|
|
||||||
|
self.mAddRoot.clear()
|
||||||
|
addClass(nwItemClass.NOVEL)
|
||||||
|
addClass(nwItemClass.ARCHIVE)
|
||||||
|
self.mAddRoot.addSeparator()
|
||||||
|
addClass(nwItemClass.PLOT)
|
||||||
|
addClass(nwItemClass.CHARACTER)
|
||||||
|
addClass(nwItemClass.WORLD)
|
||||||
|
addClass(nwItemClass.TIMELINE)
|
||||||
|
addClass(nwItemClass.OBJECT)
|
||||||
|
addClass(nwItemClass.ENTITY)
|
||||||
|
addClass(nwItemClass.CUSTOM)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
# END Class GuiProjectToolBar
|
# END Class GuiProjectToolBar
|
||||||
|
|
||||||
|
|||||||
@@ -130,7 +130,6 @@ class GuiTheme:
|
|||||||
|
|
||||||
self.updateFont()
|
self.updateFont()
|
||||||
self.updateTheme()
|
self.updateTheme()
|
||||||
self.iconCache.updateTheme()
|
|
||||||
|
|
||||||
# Icon Functions
|
# Icon Functions
|
||||||
self.getIcon = self.iconCache.getIcon
|
self.getIcon = self.iconCache.getIcon
|
||||||
@@ -220,6 +219,7 @@ class GuiTheme:
|
|||||||
else:
|
else:
|
||||||
self.cssFile = self.themeFile[:-5]+".css"
|
self.cssFile = self.themeFile[:-5]+".css"
|
||||||
self.loadTheme()
|
self.loadTheme()
|
||||||
|
self.iconCache.updateTheme()
|
||||||
|
|
||||||
self.syntaxFile = self._availSyntax.get(self.guiSyntax, None)
|
self.syntaxFile = self._availSyntax.get(self.guiSyntax, None)
|
||||||
if self.syntaxFile is None:
|
if self.syntaxFile is None:
|
||||||
@@ -287,6 +287,8 @@ class GuiTheme:
|
|||||||
self._setPalette(confParser, cnfSec, "highlightedtext", QPalette.HighlightedText)
|
self._setPalette(confParser, cnfSec, "highlightedtext", QPalette.HighlightedText)
|
||||||
self._setPalette(confParser, cnfSec, "link", QPalette.Link)
|
self._setPalette(confParser, cnfSec, "link", QPalette.Link)
|
||||||
self._setPalette(confParser, cnfSec, "linkvisited", QPalette.LinkVisited)
|
self._setPalette(confParser, cnfSec, "linkvisited", QPalette.LinkVisited)
|
||||||
|
else:
|
||||||
|
self._guiPalette = qApp.style().standardPalette()
|
||||||
|
|
||||||
# GUI
|
# GUI
|
||||||
cnfSec = "GUI"
|
cnfSec = "GUI"
|
||||||
@@ -578,6 +580,12 @@ class GuiIcons:
|
|||||||
if iconKey not in self._themeMap:
|
if iconKey not in self._themeMap:
|
||||||
logger.error("No icon file specified for '%s'", iconKey)
|
logger.error("No icon file specified for '%s'", iconKey)
|
||||||
|
|
||||||
|
# Refresh icons
|
||||||
|
for iconKey in self._qIcons:
|
||||||
|
logger.debug("Reloading icon: '%s'", iconKey)
|
||||||
|
qIcon = self._loadIcon(iconKey)
|
||||||
|
self._qIcons[iconKey] = qIcon
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
##
|
##
|
||||||
|
|||||||
@@ -61,7 +61,6 @@ class GuiViewsBar(QToolBar):
|
|||||||
self.setIconSize(QSize(iPx, iPx))
|
self.setIconSize(QSize(iPx, iPx))
|
||||||
self.setMaximumWidth(mPx)
|
self.setMaximumWidth(mPx)
|
||||||
self.setContentsMargins(0, 0, 0, 0)
|
self.setContentsMargins(0, 0, 0, 0)
|
||||||
self.setStyleSheet("QToolBar {border: 0px;}")
|
|
||||||
|
|
||||||
stretch = QWidget(self)
|
stretch = QWidget(self)
|
||||||
stretch.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
|
stretch.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
|
||||||
@@ -70,37 +69,31 @@ class GuiViewsBar(QToolBar):
|
|||||||
self.aProject = QAction(self.tr("Project"), self)
|
self.aProject = QAction(self.tr("Project"), self)
|
||||||
self.aProject.setFont(lblFont)
|
self.aProject.setFont(lblFont)
|
||||||
self.aProject.setToolTip(self.tr("Project Tree View"))
|
self.aProject.setToolTip(self.tr("Project Tree View"))
|
||||||
self.aProject.setIcon(self.mainTheme.getIcon("view_editor"))
|
|
||||||
self.aProject.triggered.connect(lambda: self.viewChangeRequested.emit(nwView.PROJECT))
|
self.aProject.triggered.connect(lambda: self.viewChangeRequested.emit(nwView.PROJECT))
|
||||||
|
|
||||||
self.aNovel = QAction(self.tr("Novel"), self)
|
self.aNovel = QAction(self.tr("Novel"), self)
|
||||||
self.aNovel.setFont(lblFont)
|
self.aNovel.setFont(lblFont)
|
||||||
self.aNovel.setToolTip(self.tr("Novel Tree View"))
|
self.aNovel.setToolTip(self.tr("Novel Tree View"))
|
||||||
self.aNovel.setIcon(self.mainTheme.getIcon("view_novel"))
|
|
||||||
self.aNovel.triggered.connect(lambda: self.viewChangeRequested.emit(nwView.NOVEL))
|
self.aNovel.triggered.connect(lambda: self.viewChangeRequested.emit(nwView.NOVEL))
|
||||||
|
|
||||||
self.aOutline = QAction(self.tr("Outline"), self)
|
self.aOutline = QAction(self.tr("Outline"), self)
|
||||||
self.aOutline.setFont(lblFont)
|
self.aOutline.setFont(lblFont)
|
||||||
self.aOutline.setToolTip(self.tr("Novel Outline View"))
|
self.aOutline.setToolTip(self.tr("Novel Outline View"))
|
||||||
self.aOutline.setIcon(self.mainTheme.getIcon("view_outline"))
|
|
||||||
self.aOutline.triggered.connect(lambda: self.viewChangeRequested.emit(nwView.OUTLINE))
|
self.aOutline.triggered.connect(lambda: self.viewChangeRequested.emit(nwView.OUTLINE))
|
||||||
|
|
||||||
self.aBuild = QAction(self.tr("Build"), self)
|
self.aBuild = QAction(self.tr("Build"), self)
|
||||||
self.aBuild.setFont(lblFont)
|
self.aBuild.setFont(lblFont)
|
||||||
self.aBuild.setToolTip(self.tr("Build Novel Project"))
|
self.aBuild.setToolTip(self.tr("Build Novel Project"))
|
||||||
self.aBuild.setIcon(self.mainTheme.getIcon("view_build"))
|
|
||||||
self.aBuild.triggered.connect(lambda: self.mainGui.showBuildProjectDialog())
|
self.aBuild.triggered.connect(lambda: self.mainGui.showBuildProjectDialog())
|
||||||
|
|
||||||
self.aDetails = QAction(self.tr("Details"), self)
|
self.aDetails = QAction(self.tr("Details"), self)
|
||||||
self.aDetails.setFont(lblFont)
|
self.aDetails.setFont(lblFont)
|
||||||
self.aDetails.setToolTip(self.tr("Project Details"))
|
self.aDetails.setToolTip(self.tr("Project Details"))
|
||||||
self.aDetails.setIcon(self.mainTheme.getIcon("proj_details"))
|
|
||||||
self.aDetails.triggered.connect(lambda: self.mainGui.showProjectDetailsDialog())
|
self.aDetails.triggered.connect(lambda: self.mainGui.showProjectDetailsDialog())
|
||||||
|
|
||||||
self.aStats = QAction(self.tr("Stats"), self)
|
self.aStats = QAction(self.tr("Stats"), self)
|
||||||
self.aStats.setFont(lblFont)
|
self.aStats.setFont(lblFont)
|
||||||
self.aStats.setToolTip(self.tr("Writing Statistics"))
|
self.aStats.setToolTip(self.tr("Writing Statistics"))
|
||||||
self.aStats.setIcon(self.mainTheme.getIcon("proj_stats"))
|
|
||||||
self.aStats.triggered.connect(lambda: self.mainGui.showWritingStatsDialog())
|
self.aStats.triggered.connect(lambda: self.mainGui.showWritingStatsDialog())
|
||||||
|
|
||||||
# Settings Menu
|
# Settings Menu
|
||||||
@@ -114,7 +107,6 @@ class GuiViewsBar(QToolBar):
|
|||||||
self.tbSettings = QToolButton(self)
|
self.tbSettings = QToolButton(self)
|
||||||
self.tbSettings.setFont(lblFont)
|
self.tbSettings.setFont(lblFont)
|
||||||
self.tbSettings.setText(self.tr("Settings"))
|
self.tbSettings.setText(self.tr("Settings"))
|
||||||
self.tbSettings.setIcon(self.mainTheme.getIcon("settings"))
|
|
||||||
self.tbSettings.setMenu(self.mSettings)
|
self.tbSettings.setMenu(self.mSettings)
|
||||||
self.tbSettings.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)
|
self.tbSettings.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)
|
||||||
self.tbSettings.setPopupMode(QToolButton.InstantPopup)
|
self.tbSettings.setPopupMode(QToolButton.InstantPopup)
|
||||||
@@ -129,8 +121,25 @@ class GuiViewsBar(QToolBar):
|
|||||||
self.addAction(self.aStats)
|
self.addAction(self.aStats)
|
||||||
self.addWidget(self.tbSettings)
|
self.addWidget(self.tbSettings)
|
||||||
|
|
||||||
|
self.updateTheme()
|
||||||
|
|
||||||
logger.debug("GuiViewsBar initialisation complete")
|
logger.debug("GuiViewsBar initialisation complete")
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def updateTheme(self):
|
||||||
|
"""Initialise GUI elements that depend on specific settings.
|
||||||
|
"""
|
||||||
|
self.setStyleSheet("QToolBar {border: 0px;}")
|
||||||
|
|
||||||
|
self.aProject.setIcon(self.mainTheme.getIcon("view_editor"))
|
||||||
|
self.aNovel.setIcon(self.mainTheme.getIcon("view_novel"))
|
||||||
|
self.aOutline.setIcon(self.mainTheme.getIcon("view_outline"))
|
||||||
|
self.aBuild.setIcon(self.mainTheme.getIcon("view_build"))
|
||||||
|
self.aDetails.setIcon(self.mainTheme.getIcon("proj_details"))
|
||||||
|
self.aStats.setIcon(self.mainTheme.getIcon("proj_stats"))
|
||||||
|
self.tbSettings.setIcon(self.mainTheme.getIcon("settings"))
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
# END Class GuiViewsBar
|
# END Class GuiViewsBar
|
||||||
|
|||||||
@@ -907,8 +907,15 @@ class GuiMain(QMainWindow):
|
|||||||
if dlgConf.result() == QDialog.Accepted:
|
if dlgConf.result() == QDialog.Accepted:
|
||||||
logger.debug("Applying new preferences")
|
logger.debug("Applying new preferences")
|
||||||
self.initMain()
|
self.initMain()
|
||||||
self.mainTheme.updateTheme()
|
|
||||||
self.saveDocument()
|
self.saveDocument()
|
||||||
|
|
||||||
|
self.mainTheme.updateTheme()
|
||||||
|
self.viewsBar.updateTheme()
|
||||||
|
self.projView.updateTheme()
|
||||||
|
self.novelView.updateTheme()
|
||||||
|
self.docEditor.updateTheme()
|
||||||
|
self.docViewer.updateTheme()
|
||||||
|
|
||||||
self.docEditor.initEditor()
|
self.docEditor.initEditor()
|
||||||
self.docViewer.initViewer()
|
self.docViewer.initViewer()
|
||||||
self.projView.initSettings()
|
self.projView.initSettings()
|
||||||
|
|||||||
Reference in New Issue
Block a user