diff --git a/novelwriter/extensions/configlayout.py b/novelwriter/extensions/configlayout.py index 53354b4b..42a2e29c 100644 --- a/novelwriter/extensions/configlayout.py +++ b/novelwriter/extensions/configlayout.py @@ -281,13 +281,28 @@ class NColourLabel(QLabel): return + def setTextColors(self, *, color: QColor | None = None, faded: QColor | None = None) -> None: + """Set or update the text colours.""" + self._color = color or self._color + self._faded = faded or self._faded + self._refeshTextColor() + return + def setColorState(self, state: bool) -> None: """Change the colour state.""" if self._state is not state: self._state = state - colour = self.palette() - colour.setColor(QPalette.ColorRole.WindowText, self._color if state else self._faded) - self.setPalette(colour) + self._refeshTextColor() + return + + def _refeshTextColor(self) -> None: + """Refresh the colour of the text on the label.""" + palette = self.palette() + palette.setColor( + QPalette.ColorRole.WindowText, + self._color if self._state else self._faded, + ) + self.setPalette(palette) return diff --git a/novelwriter/gui/doceditor.py b/novelwriter/gui/doceditor.py index 39adc29d..7722339b 100644 --- a/novelwriter/gui/doceditor.py +++ b/novelwriter/gui/doceditor.py @@ -2919,10 +2919,10 @@ class GuiDocEditHeader(QWidget): palette.setColor(QPalette.ColorRole.Window, SHARED.theme.colBack) palette.setColor(QPalette.ColorRole.WindowText, SHARED.theme.colText) palette.setColor(QPalette.ColorRole.Text, SHARED.theme.colText) - self.setPalette(palette) - self.itemTitle.setPalette(palette) - + self.itemTitle.setTextColors( + color=palette.windowText().color(), faded=SHARED.theme.fadedText + ) return def changeFocusState(self, state: bool) -> None: diff --git a/novelwriter/gui/docviewer.py b/novelwriter/gui/docviewer.py index b28411ab..f013db0b 100644 --- a/novelwriter/gui/docviewer.py +++ b/novelwriter/gui/docviewer.py @@ -741,7 +741,9 @@ class GuiDocViewHeader(QWidget): palette.setColor(QPalette.ColorRole.WindowText, SHARED.theme.colText) palette.setColor(QPalette.ColorRole.Text, SHARED.theme.colText) self.setPalette(palette) - self.itemTitle.setPalette(palette) + self.itemTitle.setTextColors( + color=palette.windowText().color(), faded=SHARED.theme.fadedText + ) return def changeFocusState(self, state: bool) -> None: diff --git a/novelwriter/gui/outline.py b/novelwriter/gui/outline.py index 3a411f35..054f0fb4 100644 --- a/novelwriter/gui/outline.py +++ b/novelwriter/gui/outline.py @@ -268,6 +268,7 @@ class GuiOutlineToolBar(QToolBar): self.aExport.setIcon(SHARED.theme.getIcon("export")) self.tbColumns.setIcon(SHARED.theme.getIcon("menu")) self.tbColumns.setStyleSheet("QToolButton::menu-indicator {image: none;}") + self.novelLabel.setTextColors(color=self.palette().windowText().color()) return def populateNovelList(self) -> None: