Merge the two methods in the shared class to save editor content

This commit is contained in:
Veronica Berglyd Olsen
2024-06-16 15:23:22 +02:00
parent e9e7fae40e
commit 7c33c949cb
5 changed files with 16 additions and 23 deletions
+3 -3
View File
@@ -997,7 +997,7 @@ class GuiProjectTree(QTreeWidget):
trItemP.takeChild(tIndex) trItemP.takeChild(tIndex)
for dHandle in reversed(self.getTreeFromHandle(tHandle)): for dHandle in reversed(self.getTreeFromHandle(tHandle)):
SHARED.closeDocument(dHandle) SHARED.closeEditor(dHandle)
SHARED.project.removeItem(dHandle) SHARED.project.removeItem(dHandle)
self._treeMap.pop(dHandle, None) self._treeMap.pop(dHandle, None)
@@ -1404,7 +1404,7 @@ class GuiProjectTree(QTreeWidget):
return False return False
# Save the open document first, in case it's part of merge # Save the open document first, in case it's part of merge
SHARED.saveDocument() SHARED.saveEditor()
# Create merge object, and append docs # Create merge object, and append docs
docMerger = DocMerger(SHARED.project) docMerger = DocMerger(SHARED.project)
@@ -1805,7 +1805,7 @@ class _TreeContextMenu(QMenu):
def _itemHeader(self) -> None: def _itemHeader(self) -> None:
"""Check if there is a header that can be used for rename.""" """Check if there is a header that can be used for rename."""
SHARED.ensureEditorSaved(self._handle) SHARED.saveEditor()
if hItem := SHARED.project.index.getItemHeading(self._handle, "T0001"): if hItem := SHARED.project.index.getItemHeading(self._handle, "T0001"):
action = self.addAction(self.tr("Rename to Heading")) action = self.addAction(self.tr("Rename to Heading"))
action.triggered.connect( action.triggered.connect(
+1 -1
View File
@@ -259,7 +259,7 @@ class GuiProjectSearch(QWidget):
if not self._blocked: if not self._blocked:
QApplication.setOverrideCursor(QCursor(Qt.CursorShape.WaitCursor)) QApplication.setOverrideCursor(QCursor(Qt.CursorShape.WaitCursor))
start = time() start = time()
SHARED.saveDocument() SHARED.saveEditor()
self._blocked = True self._blocked = True
self._map = {} self._map = {}
self.searchResult.clear() self.searchResult.clear()
+10 -17
View File
@@ -172,15 +172,21 @@ class SharedData(QObject):
logger.debug("Thread Pool Max Count: %d", QThreadPool.globalInstance().maxThreadCount()) logger.debug("Thread Pool Max Count: %d", QThreadPool.globalInstance().maxThreadCount())
return return
def closeDocument(self, tHandle: str | None = None) -> None: def closeEditor(self, tHandle: str | None = None) -> None:
"""Close the document editor, optionally a specific document.""" """Close the document editor, optionally a specific document."""
if tHandle is None or tHandle == self.mainGui.docEditor.docHandle: if tHandle is None or tHandle == self.mainGui.docEditor.docHandle:
self.mainGui.closeDocument() self.mainGui.closeDocument()
return return
def saveDocument(self) -> None: def saveEditor(self, tHandle: str | None = None) -> None:
"""Forward save document call to main GUI.""" """Save editor content, optionally a specific document."""
self.mainGui.saveDocument() 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 return
def openProject(self, path: str | Path, clearLock: bool = False) -> bool: def openProject(self, path: str | Path, clearLock: bool = False) -> bool:
@@ -216,19 +222,6 @@ class SharedData(QObject):
self._resetIdleTimer() self._resetIdleTimer()
return 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: def updateSpellCheckLanguage(self, reload: bool = False) -> None:
"""Update the active spell check language from settings.""" """Update the active spell check language from settings."""
from novelwriter import CONFIG from novelwriter import CONFIG
+1 -1
View File
@@ -327,7 +327,7 @@ class GuiManuscriptBuild(NDialog):
return False return False
# Make sure editor content is saved before we start # Make sure editor content is saved before we start
SHARED.saveDocument() SHARED.saveEditor()
docBuild = NWBuildDocument(SHARED.project, self._build) docBuild = NWBuildDocument(SHARED.project, self._build)
docBuild.queueAll() docBuild.queueAll()
+1 -1
View File
@@ -325,7 +325,7 @@ class GuiManuscript(NToolDialog):
start = time() start = time()
# Make sure editor content is saved before we start # Make sure editor content is saved before we start
SHARED.ensureEditorSaved(None) SHARED.saveEditor()
docBuild = NWBuildDocument(SHARED.project, build) docBuild = NWBuildDocument(SHARED.project, build)
docBuild.queueAll() docBuild.queueAll()