Extend colour label widget to accept two colour states
This commit is contained in:
@@ -75,7 +75,7 @@ class GuiAbout(NDialog):
|
|||||||
|
|
||||||
# Credits
|
# Credits
|
||||||
self.lblCredits = NColourLabel(
|
self.lblCredits = NColourLabel(
|
||||||
self.tr("Credits"), scale=1.6, parent=self, bold=True
|
self.tr("Credits"), self, scale=1.6, bold=True
|
||||||
)
|
)
|
||||||
|
|
||||||
self.txtCredits = QTextBrowser(self)
|
self.txtCredits = QTextBrowser(self)
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ class GuiDocMerge(NDialog):
|
|||||||
self.headLabel.setFont(SHARED.theme.guiFontB)
|
self.headLabel.setFont(SHARED.theme.guiFontB)
|
||||||
self.helpLabel = NColourLabel(
|
self.helpLabel = NColourLabel(
|
||||||
self.tr("Drag and drop items to change the order, or uncheck to exclude."),
|
self.tr("Drag and drop items to change the order, or uncheck to exclude."),
|
||||||
SHARED.theme.helpText, parent=self, wrap=True
|
self, color=SHARED.theme.helpText, wrap=True
|
||||||
)
|
)
|
||||||
|
|
||||||
iPx = SHARED.theme.baseIconHeight
|
iPx = SHARED.theme.baseIconHeight
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ class GuiDocSplit(NDialog):
|
|||||||
self.headLabel.setFont(SHARED.theme.guiFontB)
|
self.headLabel.setFont(SHARED.theme.guiFontB)
|
||||||
self.helpLabel = NColourLabel(
|
self.helpLabel = NColourLabel(
|
||||||
self.tr("Select the maximum level to split into files."),
|
self.tr("Select the maximum level to split into files."),
|
||||||
SHARED.theme.helpText, parent=self, wrap=True
|
self, color=SHARED.theme.helpText, wrap=True
|
||||||
)
|
)
|
||||||
|
|
||||||
# Values
|
# Values
|
||||||
|
|||||||
@@ -66,8 +66,8 @@ class GuiPreferences(NDialog):
|
|||||||
|
|
||||||
# Title
|
# Title
|
||||||
self.titleLabel = NColourLabel(
|
self.titleLabel = NColourLabel(
|
||||||
self.tr("Preferences"), SHARED.theme.helpText,
|
self.tr("Preferences"), self, color=SHARED.theme.helpText,
|
||||||
parent=self, scale=NColourLabel.HEADER_SCALE, indent=CONFIG.pxInt(4)
|
scale=NColourLabel.HEADER_SCALE, indent=CONFIG.pxInt(4)
|
||||||
)
|
)
|
||||||
|
|
||||||
# Search Box
|
# Search Box
|
||||||
|
|||||||
@@ -76,8 +76,8 @@ class GuiProjectSettings(NDialog):
|
|||||||
|
|
||||||
# Title
|
# Title
|
||||||
self.titleLabel = NColourLabel(
|
self.titleLabel = NColourLabel(
|
||||||
self.tr("Project Settings"), SHARED.theme.helpText,
|
self.tr("Project Settings"), self, color=SHARED.theme.helpText,
|
||||||
parent=self, scale=NColourLabel.HEADER_SCALE, indent=CONFIG.pxInt(4)
|
scale=NColourLabel.HEADER_SCALE, indent=CONFIG.pxInt(4)
|
||||||
)
|
)
|
||||||
|
|
||||||
# SideBar
|
# SideBar
|
||||||
@@ -345,7 +345,7 @@ class _StatusPage(NFixedPage):
|
|||||||
|
|
||||||
# Title
|
# Title
|
||||||
self.pageTitle = NColourLabel(
|
self.pageTitle = NColourLabel(
|
||||||
pageLabel, SHARED.theme.helpText, parent=self,
|
pageLabel, self, color=SHARED.theme.helpText,
|
||||||
scale=NColourLabel.HEADER_SCALE
|
scale=NColourLabel.HEADER_SCALE
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -637,8 +637,8 @@ class _ReplacePage(NFixedPage):
|
|||||||
|
|
||||||
# Title
|
# Title
|
||||||
self.pageTitle = NColourLabel(
|
self.pageTitle = NColourLabel(
|
||||||
self.tr("Text Auto-Replace for Preview and Build"),
|
self.tr("Text Auto-Replace for Preview and Build"), self,
|
||||||
SHARED.theme.helpText, parent=self, scale=NColourLabel.HEADER_SCALE
|
color=SHARED.theme.helpText, scale=NColourLabel.HEADER_SCALE
|
||||||
)
|
)
|
||||||
|
|
||||||
# List Box
|
# List Box
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ class GuiWordList(NDialog):
|
|||||||
|
|
||||||
# Header
|
# Header
|
||||||
self.headLabel = NColourLabel(
|
self.headLabel = NColourLabel(
|
||||||
self.tr("Project Word List"), SHARED.theme.helpText, parent=self,
|
self.tr("Project Word List"), self, color=SHARED.theme.helpText,
|
||||||
scale=NColourLabel.HEADER_SCALE
|
scale=NColourLabel.HEADER_SCALE
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ class NScrollableForm(QScrollArea):
|
|||||||
|
|
||||||
if helpText:
|
if helpText:
|
||||||
qHelp = NColourLabel(
|
qHelp = NColourLabel(
|
||||||
str(helpText), color=self._helpCol, parent=self,
|
str(helpText), self, color=self._helpCol,
|
||||||
scale=self._fontScale, wrap=True, indent=self._indent
|
scale=self._fontScale, wrap=True, indent=self._indent
|
||||||
)
|
)
|
||||||
labelBox = QVBoxLayout()
|
labelBox = QVBoxLayout()
|
||||||
@@ -252,11 +252,20 @@ class NColourLabel(QLabel):
|
|||||||
HELP_SCALE = DEFAULT_SCALE
|
HELP_SCALE = DEFAULT_SCALE
|
||||||
HEADER_SCALE = 1.25
|
HEADER_SCALE = 1.25
|
||||||
|
|
||||||
def __init__(self, text: str, color: QColor | None = None, parent: QWidget | None = None,
|
_state = None
|
||||||
scale: float = HELP_SCALE, wrap: bool = False, indent: int = 0,
|
|
||||||
bold: bool = False) -> None:
|
def __init__(
|
||||||
|
self, text: str, parent: QWidget, *,
|
||||||
|
color: QColor | None = None, faded: QColor | None = None,
|
||||||
|
scale: float = HELP_SCALE, wrap: bool = False, indent: int = 0,
|
||||||
|
bold: bool = False
|
||||||
|
) -> None:
|
||||||
super().__init__(text, parent=parent)
|
super().__init__(text, parent=parent)
|
||||||
|
|
||||||
|
default = self.palette().windowText().color()
|
||||||
|
self._color = color or default
|
||||||
|
self._faded = faded or default
|
||||||
|
|
||||||
font = self.font()
|
font = self.font()
|
||||||
font.setPointSizeF(scale*font.pointSizeF())
|
font.setPointSizeF(scale*font.pointSizeF())
|
||||||
font.setWeight(QFont.Weight.Bold if bold else QFont.Weight.Normal)
|
font.setWeight(QFont.Weight.Bold if bold else QFont.Weight.Normal)
|
||||||
@@ -268,9 +277,20 @@ class NColourLabel(QLabel):
|
|||||||
self.setFont(font)
|
self.setFont(font)
|
||||||
self.setIndent(indent)
|
self.setIndent(indent)
|
||||||
self.setWordWrap(wrap)
|
self.setWordWrap(wrap)
|
||||||
|
self.setColorState(True)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def setColorState(self, state: bool) -> None:
|
||||||
|
"""Change the colour state."""
|
||||||
|
if self._state is not state:
|
||||||
|
self._state = state
|
||||||
|
print("State:", state, type(self.parent()).__name__)
|
||||||
|
colour = self.palette()
|
||||||
|
colour.setColor(QPalette.ColorRole.WindowText, self._color if state else self._faded)
|
||||||
|
self.setPalette(colour)
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
class NWrappedWidgetBox(QHBoxLayout):
|
class NWrappedWidgetBox(QHBoxLayout):
|
||||||
"""Extension: A Text-Wrapped Widget Box
|
"""Extension: A Text-Wrapped Widget Box
|
||||||
|
|||||||
@@ -215,7 +215,7 @@ class GuiOutlineToolBar(QToolBar):
|
|||||||
|
|
||||||
# Novel Selector
|
# Novel Selector
|
||||||
self.novelLabel = NColourLabel(
|
self.novelLabel = NColourLabel(
|
||||||
self.tr("Outline of"), parent=self, scale=NColourLabel.HEADER_SCALE, bold=True
|
self.tr("Outline of"), self, scale=NColourLabel.HEADER_SCALE, bold=True
|
||||||
)
|
)
|
||||||
self.novelLabel.setContentsMargins(0, 0, CONFIG.pxInt(12), 0)
|
self.novelLabel.setContentsMargins(0, 0, CONFIG.pxInt(12), 0)
|
||||||
|
|
||||||
|
|||||||
@@ -98,8 +98,8 @@ class GuiBuildSettings(NToolDialog):
|
|||||||
|
|
||||||
# Title
|
# Title
|
||||||
self.titleLabel = NColourLabel(
|
self.titleLabel = NColourLabel(
|
||||||
self.tr("Manuscript Build Settings"), SHARED.theme.helpText,
|
self.tr("Manuscript Build Settings"), self, color=SHARED.theme.helpText,
|
||||||
parent=self, scale=NColourLabel.HEADER_SCALE, indent=CONFIG.pxInt(4)
|
scale=NColourLabel.HEADER_SCALE, indent=CONFIG.pxInt(4)
|
||||||
)
|
)
|
||||||
|
|
||||||
# Settings Name
|
# Settings Name
|
||||||
|
|||||||
@@ -68,8 +68,8 @@ class GuiNovelDetails(NNonBlockingDialog):
|
|||||||
|
|
||||||
# Title
|
# Title
|
||||||
self.titleLabel = NColourLabel(
|
self.titleLabel = NColourLabel(
|
||||||
self.tr("Novel Details"), SHARED.theme.helpText,
|
self.tr("Novel Details"), self, color=SHARED.theme.helpText,
|
||||||
parent=self, scale=NColourLabel.HEADER_SCALE, indent=CONFIG.pxInt(4)
|
scale=NColourLabel.HEADER_SCALE, indent=CONFIG.pxInt(4)
|
||||||
)
|
)
|
||||||
|
|
||||||
# Novel Selector
|
# Novel Selector
|
||||||
@@ -199,8 +199,8 @@ class _OverviewPage(NScrollablePage):
|
|||||||
|
|
||||||
# Project Info
|
# Project Info
|
||||||
self.projLabel = NColourLabel(
|
self.projLabel = NColourLabel(
|
||||||
self.tr("Project"), SHARED.theme.helpText,
|
self.tr("Project"), self, color=SHARED.theme.helpText,
|
||||||
parent=self, scale=NColourLabel.HEADER_SCALE
|
scale=NColourLabel.HEADER_SCALE
|
||||||
)
|
)
|
||||||
|
|
||||||
self.projName = QLabel("", self)
|
self.projName = QLabel("", self)
|
||||||
@@ -223,8 +223,8 @@ class _OverviewPage(NScrollablePage):
|
|||||||
|
|
||||||
# Novel Info
|
# Novel Info
|
||||||
self.novelLabel = NColourLabel(
|
self.novelLabel = NColourLabel(
|
||||||
self.tr("Selected Novel"), SHARED.theme.helpText,
|
self.tr("Selected Novel"), self, color=SHARED.theme.helpText,
|
||||||
parent=self, scale=NColourLabel.HEADER_SCALE
|
scale=NColourLabel.HEADER_SCALE
|
||||||
)
|
)
|
||||||
|
|
||||||
self.novelName = QLabel("", self)
|
self.novelName = QLabel("", self)
|
||||||
@@ -315,8 +315,8 @@ class _ContentsPage(NFixedPage):
|
|||||||
|
|
||||||
# Title
|
# Title
|
||||||
self.contentLabel = NColourLabel(
|
self.contentLabel = NColourLabel(
|
||||||
self.tr("Table of Contents"), SHARED.theme.helpText,
|
self.tr("Table of Contents"), self, color=SHARED.theme.helpText,
|
||||||
parent=self, scale=NColourLabel.HEADER_SCALE
|
scale=NColourLabel.HEADER_SCALE
|
||||||
)
|
)
|
||||||
|
|
||||||
# Contents Tree
|
# Contents Tree
|
||||||
|
|||||||
Reference in New Issue
Block a user