From ea247c581435dece9dcb8b3296b0ca1536f8516f Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Sun, 16 Jun 2024 00:31:02 +0200 Subject: [PATCH] Remember new project folder last used path (#1930) --- novelwriter/config.py | 8 ++++---- novelwriter/tools/welcome.py | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/novelwriter/config.py b/novelwriter/config.py index f9cd6a08..cd456428 100644 --- a/novelwriter/config.py +++ b/novelwriter/config.py @@ -919,15 +919,15 @@ class RecentPaths: def loadCache(self) -> bool: """Load the cache file for recent projects.""" self._data = {} - cacheFile = self._conf.dataPath(nwFiles.RECENT_PATH) if cacheFile.is_file(): try: with open(cacheFile, mode="r", encoding="utf-8") as inFile: data = json.load(inFile) - for key, path in data.items(): - if isinstance(path, str) and key in self.KEYS: - data[key] = path + if isinstance(data, dict): + for key, path in data.items(): + if key in self.KEYS and isinstance(path, str): + self._data[key] = path except Exception: logger.error("Could not load recent paths cache") logException() diff --git a/novelwriter/tools/welcome.py b/novelwriter/tools/welcome.py index a4405d1b..c2c516bf 100644 --- a/novelwriter/tools/welcome.py +++ b/novelwriter/tools/welcome.py @@ -221,7 +221,6 @@ class GuiWelcome(NDialog): def _browseForProject(self) -> None: """Browse for a project to open.""" if path := SHARED.getProjectPath(self, path=CONFIG.lastPath("project"), allowZip=False): - CONFIG.setLastPath("project", path) self._openProjectPath(path) return @@ -550,7 +549,7 @@ class _NewProjectForm(QWidget): def __init__(self, parent: QWidget) -> None: super().__init__(parent=parent) - self._basePath = CONFIG.homePath() + self._basePath = CONFIG.lastPath("project") self._fillMode = self.FILL_BLANK self._copyPath = None @@ -726,12 +725,13 @@ class _NewProjectForm(QWidget): @pyqtSlot() def _doBrowse(self) -> None: """Select a project folder.""" - if projDir := QFileDialog.getExistingDirectory( + if path := QFileDialog.getExistingDirectory( self, self.tr("Select Project Folder"), str(self._basePath), options=QFileDialog.Option.ShowDirsOnly ): - self._basePath = Path(projDir) + self._basePath = Path(path) self._updateProjPath() + CONFIG.setLastPath("project", path) return @pyqtSlot()