From 44adc42fa6043055bf0c43fd719743fc31384a57 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Fri, 1 Mar 2024 22:15:28 +0100 Subject: [PATCH] Make sure manuscript preview always preserves tabs --- novelwriter/core/docbuild.py | 24 ++++++++++++++++++++---- novelwriter/tools/manuscript.py | 3 ++- tests/test_core/test_core_docbuild.py | 3 ++- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/novelwriter/core/docbuild.py b/novelwriter/core/docbuild.py index 924a038a..d3e10987 100644 --- a/novelwriter/core/docbuild.py +++ b/novelwriter/core/docbuild.py @@ -52,15 +52,16 @@ class NWBuildDocument: manuscript, based on a build definition object (BuildSettings). """ - __slots__ = ("_project", "_build", "_queue", "_error", "_cache", "_count") + __slots__ = ("_project", "_build", "_queue", "_error", "_cache", "_count", "_preview") - def __init__(self, project: NWProject, build: BuildSettings, doCount: bool = False) -> None: + def __init__(self, project: NWProject, build: BuildSettings) -> None: self._project = project self._build = build self._queue = [] self._error = None self._cache = None - self._count = doCount + self._count = False + self._preview = False return ## @@ -80,6 +81,21 @@ class NWBuildDocument: """ return self._cache + ## + # Setters + ## + + def setCountEnabled(self, state: bool) -> None: + """Turn on/off stats counting for builds.""" + self._count = state + return + + def setPreviewMode(self, state: bool) -> None: + """Set the preview mode of the build. Implies count mode.""" + self._preview = state + self._count = state + return + ## # Special Methods ## @@ -161,7 +177,7 @@ class NWBuildDocument: else: yield i, False - if not self._build.getBool("html.preserveTabs"): + if not (self._build.getBool("html.preserveTabs") or self._preview): makeObj.replaceTabs() self._error = None diff --git a/novelwriter/tools/manuscript.py b/novelwriter/tools/manuscript.py index 65926c1d..393b0e0a 100644 --- a/novelwriter/tools/manuscript.py +++ b/novelwriter/tools/manuscript.py @@ -337,7 +337,8 @@ class GuiManuscript(QDialog): if build is None: return - docBuild = NWBuildDocument(SHARED.project, build, doCount=True) + docBuild = NWBuildDocument(SHARED.project, build) + docBuild.setPreviewMode(True) docBuild.queueAll() self.docPreview.beginNewBuild(len(docBuild)) diff --git a/tests/test_core/test_core_docbuild.py b/tests/test_core/test_core_docbuild.py index 991b378f..9a10ec75 100644 --- a/tests/test_core/test_core_docbuild.py +++ b/tests/test_core/test_core_docbuild.py @@ -83,7 +83,8 @@ def testCoreDocBuild_OpenDocument(monkeypatch, mockGUI, prjLipsum, fncPath, tstP build = BuildSettings() build.unpack(BUILD_CONF) - docBuild = NWBuildDocument(project, build, doCount=True) + docBuild = NWBuildDocument(project, build) + docBuild.setCountEnabled(True) docBuild.queueAll() assert len(docBuild) == 21