From d93b3aa79f6c5612caed84f542471dea0739a99a Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Sat, 12 Nov 2022 18:59:09 +0100 Subject: [PATCH] Always save project when closing --- novelwriter/core/project.py | 10 ---------- novelwriter/guimain.py | 30 +++++++++++++--------------- tests/test_core/test_core_project.py | 2 -- 3 files changed, 14 insertions(+), 28 deletions(-) diff --git a/novelwriter/core/project.py b/novelwriter/core/project.py index bb26ff5e..b60cbbc6 100644 --- a/novelwriter/core/project.py +++ b/novelwriter/core/project.py @@ -74,7 +74,6 @@ class NWProject(QObject): # Project Status self._projOpened = 0 # The time stamp of when the project file was opened self._projChanged = False # The project has unsaved changes - self._projAltered = False # The project has been altered this session self._lockedBy = None # Data on which computer has the project open self._projFiles = [] # A list of all files in the content folder on load @@ -118,10 +117,6 @@ class NWProject(QObject): def projChanged(self): return self._projChanged - @property - def projAltered(self): - return self._projAltered - @property def projFiles(self): return self._projFiles @@ -236,7 +231,6 @@ class NWProject(QObject): # Project Status self._projOpened = 0 self._projChanged = False - self._projAltered = False # Project Tree self._storage.clear() @@ -375,7 +369,6 @@ class NWProject(QObject): self.updateWordCounts() self._projOpened = time() - self._projAltered = False self._storage.writeLockFile() self.setProjectChanged(False) @@ -559,9 +552,6 @@ class NWProject(QObject): if isinstance(value, bool): self._projChanged = value self.projectStatusChanged.emit(self._projChanged) - if value: - # If we've changed the project at all, this should be True - self._projAltered = True return self._projChanged ## diff --git a/novelwriter/guimain.py b/novelwriter/guimain.py index 56ba564f..6a25e528 100644 --- a/novelwriter/guimain.py +++ b/novelwriter/guimain.py @@ -404,22 +404,20 @@ class GuiMain(QMainWindow): if self.docEditor.docChanged(): self.saveDocument() - if self.theProject.projAltered: - saveOK = self.saveProject() - doBackup = False - if self.theProject.data.doBackup and self.mainConf.backupOnClose: - doBackup = True - if self.mainConf.askBeforeBackup: - msgYes = self.askQuestion( - self.tr("Backup Project"), - self.tr("Backup the current project?") - ) - if not msgYes: - doBackup = False - if doBackup: - self.theProject.backupProject(False) - else: - saveOK = True + saveOK = self.saveProject() + doBackup = False + if self.theProject.data.doBackup and self.mainConf.backupOnClose: + doBackup = True + if self.mainConf.askBeforeBackup: + msgYes = self.askQuestion( + self.tr("Backup Project"), + self.tr("Backup the current project?") + ) + if not msgYes: + doBackup = False + + if doBackup: + self.theProject.backupProject(False) if saveOK: self.closeDocument() diff --git a/tests/test_core/test_core_project.py b/tests/test_core/test_core_project.py index 1f3dc73e..52b68859 100644 --- a/tests/test_core/test_core_project.py +++ b/tests/test_core/test_core_project.py @@ -516,11 +516,9 @@ def testCoreProject_Methods(monkeypatch, mockGUI, fncPath, mockRnd): # Spell check theProject.setProjectChanged(False) - theProject._projAltered = False theProject.data.setSpellCheck(True) theProject.data.setSpellCheck(False) assert theProject.projChanged is True - assert theProject.projAltered is True assert theProject.projOpened > 0 # Spell language