Don't highlight dialogue in notes

This commit is contained in:
Veronica Berglyd Olsen
2024-06-01 12:41:42 +02:00
parent 208c4fb8ba
commit 80811ebf44
+20 -7
View File
@@ -59,8 +59,8 @@ BLOCK_TITLE = 4
class GuiDocHighlighter(QSyntaxHighlighter): class GuiDocHighlighter(QSyntaxHighlighter):
__slots__ = ( __slots__ = (
"_tHandle", "_isInactive", "_spellCheck", "_spellErr", "_hStyles", "_tHandle", "_isNovel", "_isInactive", "_spellCheck", "_spellErr",
"_txtRules", "_cmnRules", "_hStyles", "_minRules", "_txtRules", "_cmnRules",
) )
def __init__(self, document: QTextDocument) -> None: def __init__(self, document: QTextDocument) -> None:
@@ -69,11 +69,13 @@ class GuiDocHighlighter(QSyntaxHighlighter):
logger.debug("Create: GuiDocHighlighter") logger.debug("Create: GuiDocHighlighter")
self._tHandle = None self._tHandle = None
self._isNovel = False
self._isInactive = False self._isInactive = False
self._spellCheck = False self._spellCheck = False
self._spellErr = QTextCharFormat() self._spellErr = QTextCharFormat()
self._hStyles: dict[str, QTextCharFormat] = {} self._hStyles: dict[str, QTextCharFormat] = {}
self._minRules: list[tuple[QRegularExpression, dict[int, QTextCharFormat]]] = []
self._txtRules: list[tuple[QRegularExpression, dict[int, QTextCharFormat]]] = [] self._txtRules: list[tuple[QRegularExpression, dict[int, QTextCharFormat]]] = []
self._cmnRules: list[tuple[QRegularExpression, dict[int, QTextCharFormat]]] = [] self._cmnRules: list[tuple[QRegularExpression, dict[int, QTextCharFormat]]] = []
@@ -137,6 +139,7 @@ class GuiDocHighlighter(QSyntaxHighlighter):
hlRule = { hlRule = {
0: self._hStyles["mspaces"], 0: self._hStyles["mspaces"],
} }
self._minRules.append((rxRule, hlRule))
self._txtRules.append((rxRule, hlRule)) self._txtRules.append((rxRule, hlRule))
self._cmnRules.append((rxRule, hlRule)) self._cmnRules.append((rxRule, hlRule))
@@ -146,6 +149,7 @@ class GuiDocHighlighter(QSyntaxHighlighter):
hlRule = { hlRule = {
0: self._hStyles["nobreak"], 0: self._hStyles["nobreak"],
} }
self._minRules.append((rxRule, hlRule))
self._txtRules.append((rxRule, hlRule)) self._txtRules.append((rxRule, hlRule))
self._cmnRules.append((rxRule, hlRule)) self._cmnRules.append((rxRule, hlRule))
@@ -204,6 +208,7 @@ class GuiDocHighlighter(QSyntaxHighlighter):
2: self._hStyles["italic"], 2: self._hStyles["italic"],
3: self._hStyles["markup"], 3: self._hStyles["markup"],
} }
self._minRules.append((rxRule, hlRule))
self._txtRules.append((rxRule, hlRule)) self._txtRules.append((rxRule, hlRule))
self._cmnRules.append((rxRule, hlRule)) self._cmnRules.append((rxRule, hlRule))
@@ -215,6 +220,7 @@ class GuiDocHighlighter(QSyntaxHighlighter):
2: self._hStyles["bold"], 2: self._hStyles["bold"],
3: self._hStyles["markup"], 3: self._hStyles["markup"],
} }
self._minRules.append((rxRule, hlRule))
self._txtRules.append((rxRule, hlRule)) self._txtRules.append((rxRule, hlRule))
self._cmnRules.append((rxRule, hlRule)) self._cmnRules.append((rxRule, hlRule))
@@ -226,6 +232,7 @@ class GuiDocHighlighter(QSyntaxHighlighter):
2: self._hStyles["strike"], 2: self._hStyles["strike"],
3: self._hStyles["markup"], 3: self._hStyles["markup"],
} }
self._minRules.append((rxRule, hlRule))
self._txtRules.append((rxRule, hlRule)) self._txtRules.append((rxRule, hlRule))
self._cmnRules.append((rxRule, hlRule)) self._cmnRules.append((rxRule, hlRule))
@@ -235,6 +242,7 @@ class GuiDocHighlighter(QSyntaxHighlighter):
hlRule = { hlRule = {
1: self._hStyles["code"], 1: self._hStyles["code"],
} }
self._minRules.append((rxRule, hlRule))
self._txtRules.append((rxRule, hlRule)) self._txtRules.append((rxRule, hlRule))
self._cmnRules.append((rxRule, hlRule)) self._cmnRules.append((rxRule, hlRule))
@@ -246,6 +254,7 @@ class GuiDocHighlighter(QSyntaxHighlighter):
2: self._hStyles["value"], 2: self._hStyles["value"],
3: self._hStyles["code"], 3: self._hStyles["code"],
} }
self._minRules.append((rxRule, hlRule))
self._txtRules.append((rxRule, hlRule)) self._txtRules.append((rxRule, hlRule))
self._cmnRules.append((rxRule, hlRule)) self._cmnRules.append((rxRule, hlRule))
@@ -255,6 +264,7 @@ class GuiDocHighlighter(QSyntaxHighlighter):
hlRule = { hlRule = {
1: self._hStyles["markup"], 1: self._hStyles["markup"],
} }
self._minRules.append((rxRule, hlRule))
self._txtRules.append((rxRule, hlRule)) self._txtRules.append((rxRule, hlRule))
# Auto-Replace Tags # Auto-Replace Tags
@@ -263,6 +273,7 @@ class GuiDocHighlighter(QSyntaxHighlighter):
hlRule = { hlRule = {
0: self._hStyles["replace"], 0: self._hStyles["replace"],
} }
self._minRules.append((rxRule, hlRule))
self._txtRules.append((rxRule, hlRule)) self._txtRules.append((rxRule, hlRule))
self._cmnRules.append((rxRule, hlRule)) self._cmnRules.append((rxRule, hlRule))
@@ -280,9 +291,11 @@ class GuiDocHighlighter(QSyntaxHighlighter):
def setHandle(self, tHandle: str) -> None: def setHandle(self, tHandle: str) -> None:
"""Set the handle of the currently highlighted document.""" """Set the handle of the currently highlighted document."""
self._tHandle = tHandle self._tHandle = tHandle
self._isInactive = ( self._isNovel = False
item.isInactiveClass() if (item := SHARED.project.tree[tHandle]) else False self._isInactive = False
) if item := SHARED.project.tree[tHandle]:
self._isNovel = item.isDocumentLayout()
self._isInactive = item.isInactiveClass()
logger.debug("Syntax highlighter enabled for item '%s'", tHandle) logger.debug("Syntax highlighter enabled for item '%s'", tHandle)
return return
@@ -397,7 +410,7 @@ class GuiDocHighlighter(QSyntaxHighlighter):
elif text.startswith("["): # Special Command elif text.startswith("["): # Special Command
self.setCurrentBlockState(BLOCK_TEXT) self.setCurrentBlockState(BLOCK_TEXT)
hRules = self._txtRules hRules = self._txtRules if self._isNovel else self._minRules
sText = text.rstrip().lower() sText = text.rstrip().lower()
if sText in ("[newpage]", "[new page]", "[vspace]"): if sText in ("[newpage]", "[new page]", "[vspace]"):
@@ -414,7 +427,7 @@ class GuiDocHighlighter(QSyntaxHighlighter):
else: # Text Paragraph else: # Text Paragraph
self.setCurrentBlockState(BLOCK_TEXT) self.setCurrentBlockState(BLOCK_TEXT)
hRules = self._txtRules hRules = self._txtRules if self._isNovel else self._minRules
if hRules: if hRules:
for rX, hRule in hRules: for rX, hRule in hRules: