Merge branch 'release'

This commit is contained in:
Veronica Berglyd Olsen
2024-07-14 16:43:43 +02:00
3 changed files with 9 additions and 1 deletions
+1
View File
@@ -356,6 +356,7 @@ class NWProject:
self.setProjectChanged(False) self.setProjectChanged(False)
self._valid = True self._valid = True
self._state = NWProjectState.READY self._state = NWProjectState.READY
self._storage.lockSession() # Lock only after a successful open. See issue #1977.
SHARED.newStatusMessage(self.tr("Opened Project: {0}").format(self._data.name)) SHARED.newStatusMessage(self.tr("Opened Project: {0}").format(self._data.name))
+6 -1
View File
@@ -235,7 +235,6 @@ class NWStorage:
if child.is_dir() and child.name.startswith("data_"): if child.is_dir() and child.name.startswith("data_"):
legacy.legacyDataFolder(basePath, child) legacy.legacyDataFolder(basePath, child)
self._writeLockFile()
self._ready = True self._ready = True
return NWStorageOpen.READY return NWStorageOpen.READY
@@ -249,6 +248,12 @@ class NWStorage:
return True return True
return True return True
def lockSession(self) -> None:
"""Lock the session when the project is successfully opened."""
if self._ready:
self._writeLockFile()
return
def closeSession(self) -> None: def closeSession(self) -> None:
"""Run tasks related to closing the session.""" """Run tasks related to closing the session."""
self._clearLockFile() self._clearLockFile()
+2
View File
@@ -142,7 +142,9 @@ def testCoreStorage_InitProjectStorage(monkeypatch, mockGUI, fncPath, mockRnd):
storage.clear() storage.clear()
# Open twice, where second should fail due to lockfile # Open twice, where second should fail due to lockfile
# Note that locking is only possible after a successful open
assert storage.initProjectStorage(fncPath) == NWStorageOpen.READY assert storage.initProjectStorage(fncPath) == NWStorageOpen.READY
storage.lockSession()
assert storage.initProjectStorage(fncPath) == NWStorageOpen.LOCKED assert storage.initProjectStorage(fncPath) == NWStorageOpen.LOCKED
assert isinstance(storage.lockStatus, list) assert isinstance(storage.lockStatus, list)
assert len(storage.lockStatus) == 4 assert len(storage.lockStatus) == 4