diff --git a/novelwriter/core/project.py b/novelwriter/core/project.py index 2a78f9eb..592e52f1 100644 --- a/novelwriter/core/project.py +++ b/novelwriter/core/project.py @@ -255,14 +255,13 @@ class NWProject(QObject): build the tree of project items. """ self.clearProject() + logger.info("Opening project: %s", projPath) 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) - # Project Lock # ============ diff --git a/novelwriter/core/storage.py b/novelwriter/core/storage.py index 6d250e12..f664ddfa 100644 --- a/novelwriter/core/storage.py +++ b/novelwriter/core/storage.py @@ -507,21 +507,24 @@ class _LegacyStorage: logger.info("Converting: %s", optsOld) with open(optsOld, mode="r", encoding="utf-8") as fObj: data = json.load(fObj) - - # Convert Outline Values - state = {} - outline = data.get("GuiOutline", {}) - hidden = outline.get("columnHidden", {}) - width = outline.get("columnWidth", {}) - for key in outline.get("headerOrder", []): - state[key] = [hidden.get(key, False), width.get(key, 100)] - data["columnState"] = state + if "GuiOutline" in data: + # Convert Outline Values + state = {} + outline = data.get("GuiOutline", {}) + hidden = outline.get("columnHidden", {}) + width = outline.get("columnWidth", {}) + for key in outline.get("headerOrder", []): + state[key] = [hidden.get(key, False), width.get(key, 100)] + data["GuiOutline"]["columnState"] = state with open(optsNew, mode="w", encoding="utf-8") as fObj: json.dump({"novelWriter.guiOptions": data}, fObj, indent=2) - # If we're here, we remove the old file + # If we're here, we remove the old file, and then we reload + # the converted file and save it again optsOld.unlink() + self._project.options.loadSettings() + self._project.options.saveSettings() except Exception: logger.error("Failed to convert old options file") diff --git a/tests/test_core/test_core_storage.py b/tests/test_core/test_core_storage.py index 50db40c8..38871beb 100644 --- a/tests/test_core/test_core_storage.py +++ b/tests/test_core/test_core_storage.py @@ -466,7 +466,7 @@ def testCoreStorage_OldFormatConvert(monkeypatch, mockGUI, fncPath): assert data["novelWriter.guiOptions"]["GuiProjectSettings"] == { "winWidth": 570, "winHeight": 375 } - assert data["novelWriter.guiOptions"]["columnState"] == { + assert data["novelWriter.guiOptions"]["GuiOutline"]["columnState"] == { "TITLE": [False, 325], "LEVEL": [True, 40], "LABEL": [False, 267],