From 987740f7e9f03fbfa360358365725dca99715964 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Sat, 1 Jun 2024 13:35:22 +0200 Subject: [PATCH] Add dialogue highlighting to the viewer --- novelwriter/core/toqdoc.py | 28 +++++++++++++++++++--------- novelwriter/gui/docviewer.py | 3 +++ 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/novelwriter/core/toqdoc.py b/novelwriter/core/toqdoc.py index d40c4345..fc7d3b46 100644 --- a/novelwriter/core/toqdoc.py +++ b/novelwriter/core/toqdoc.py @@ -45,16 +45,18 @@ T_TextStyle = tuple[QTextBlockFormat, QTextCharFormat] class TextDocumentTheme: - text: QColor = QtBlack + text: QColor = QtBlack highlight: QColor = QtTransparent - head: QColor = QtBlack - comment: QColor = QtBlack - note: QColor = QtBlack - code: QColor = QtBlack - modifier: QColor = QtBlack - keyword: QColor = QtBlack - tag: QColor = QtBlack - optional: QColor = QtBlack + head: QColor = QtBlack + comment: QColor = QtBlack + note: QColor = QtBlack + code: QColor = QtBlack + modifier: QColor = QtBlack + keyword: QColor = QtBlack + tag: QColor = QtBlack + optional: QColor = QtBlack + dialog: QColor = QtBlack + altdialog: QColor = QtBlack def newBlock(cursor: QTextCursor, bFmt: QTextBlockFormat) -> None: @@ -340,6 +342,14 @@ class ToQTextDocument(Tokenizer): cFmt.setVerticalAlignment(QtVAlignSub) elif fmt == self.FMT_SUB_E: cFmt.setVerticalAlignment(QtVAlignNormal) + elif fmt == self.FMT_DL_B: + cFmt.setForeground(self._theme.dialog) + elif fmt == self.FMT_DL_E: + cFmt.setForeground(self._theme.text) + elif fmt == self.FMT_ADL_B: + cFmt.setForeground(self._theme.altdialog) + elif fmt == self.FMT_ADL_E: + cFmt.setForeground(self._theme.text) elif fmt == self.FMT_FNOTE: xFmt = QTextCharFormat(self._cCode) xFmt.setVerticalAlignment(QtVAlignSuper) diff --git a/novelwriter/gui/docviewer.py b/novelwriter/gui/docviewer.py index d73f0abb..63eb3edb 100644 --- a/novelwriter/gui/docviewer.py +++ b/novelwriter/gui/docviewer.py @@ -165,6 +165,8 @@ class GuiDocViewer(QTextBrowser): self._docTheme.keyword = SHARED.theme.colKey self._docTheme.tag = SHARED.theme.colTag self._docTheme.optional = SHARED.theme.colOpt + self._docTheme.dialog = SHARED.theme.colDialN + self._docTheme.altdialog = SHARED.theme.colDialA # Set default text margins self.document().setDocumentMargin(0) @@ -201,6 +203,7 @@ class GuiDocViewer(QTextBrowser): sPos = self.verticalScrollBar().value() qDoc = ToQTextDocument(SHARED.project) qDoc.setJustify(CONFIG.doJustify) + qDoc.setDialogueHighlight(True) qDoc.initDocument(CONFIG.textFont, self._docTheme) qDoc.setKeywords(True) qDoc.setComments(CONFIG.viewComments)