diff --git a/novelwriter/shared.py b/novelwriter/shared.py index be323386..77d85cd7 100644 --- a/novelwriter/shared.py +++ b/novelwriter/shared.py @@ -204,6 +204,19 @@ class SharedData(QObject): self._resetIdleTimer() return + def ensureEditorSaved(self, tHandle: str | None) -> None: + """Ensure that the editor content is saved. Optionally, only if + it is a specific handle. + """ + docEditor = self.mainGui.docEditor + if ( + self.hasProject and docEditor.docHandle + and (tHandle is None or tHandle == docEditor.docHandle) + ): + logger.debug("Saving editor document before action") + docEditor.saveText() + return + def updateSpellCheckLanguage(self, reload: bool = False) -> None: """Update the active spell check language from settings.""" from novelwriter import CONFIG diff --git a/novelwriter/tools/manuscript.py b/novelwriter/tools/manuscript.py index 0d32457d..5f29a08f 100644 --- a/novelwriter/tools/manuscript.py +++ b/novelwriter/tools/manuscript.py @@ -343,7 +343,7 @@ class GuiManuscript(NDialog): return # Make sure editor content is saved before we start - SHARED.mainGui.saveDocument() + SHARED.ensureEditorSaved(None) docBuild = NWBuildDocument(SHARED.project, build) docBuild.setPreviewMode(True)