From 8749321614fa8f08a01e73581c9bf2b44e71637d Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Fri, 23 Dec 2022 12:28:30 +0100 Subject: [PATCH] Block opening a non-new project in a non-existing location (#1300) --- novelwriter/core/project.py | 3 +++ novelwriter/core/storage.py | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/novelwriter/core/project.py b/novelwriter/core/project.py index 64c0b148..a9b22312 100644 --- a/novelwriter/core/project.py +++ b/novelwriter/core/project.py @@ -251,6 +251,9 @@ class NWProject(QObject): """ self.clearProject() if not self._storage.openProjectInPlace(projPath): + self.mainGui.makeAlert(self.tr( + "Could not open project with path: {0}" + ).format(projPath), nwAlert.ERROR) return False logger.info("Opening project: %s", projPath) diff --git a/novelwriter/core/storage.py b/novelwriter/core/storage.py index 9d0746c4..3d23efbc 100644 --- a/novelwriter/core/storage.py +++ b/novelwriter/core/storage.py @@ -102,6 +102,10 @@ class NWStorage: # but it can point to a folder containing files inPath = inPath.parent + if not (inPath.is_dir() or newProject): + # If the project is not new, the folder must already exist. + return False + self._storagePath = inPath self._runtimePath = inPath self._lockFilePath = inPath / nwFiles.PROJ_LOCK @@ -114,7 +118,9 @@ class NWStorage: return True def openProjectArchive(self, path): # pragma: no cover - pass + """Placeholder for later implementation. See #977. + """ + return False def runPostSaveTasks(self, autoSave=False): # pragma: no cover """Run tasks after the project has been saved.