Handle novel model refresh scenarios

This commit is contained in:
Veronica Berglyd Olsen
2025-03-22 20:25:34 +01:00
parent edf765f91f
commit 9990ebf193
8 changed files with 62 additions and 8 deletions
+9 -1
View File
@@ -60,7 +60,7 @@ class NWTree:
also used for file names.
"""
__slots__ = ("_project", "_model", "_items", "_nodes", "_trash")
__slots__ = ("_project", "_model", "_items", "_nodes", "_trash", "_ready")
def __init__(self, project: NWProject) -> None:
self._project = project
@@ -68,6 +68,7 @@ class NWTree:
self._items: dict[str, NWItem] = {}
self._nodes: dict[str, ProjectNode] = {}
self._trash = None
self._ready = False
logger.debug("Ready: NWTree")
return
@@ -249,6 +250,7 @@ class NWTree:
logger.error("Not all items could be added to project tree")
self._trash = self._getTrashNode()
self._ready = True
self._model.endInsertRows()
self._model.layoutChanged.emit()
@@ -278,6 +280,12 @@ class NWTree:
self._model.layoutChanged.emit()
return
def novelStructureChanged(self, tHandle: str) -> None:
"""Emit a novel structure change signal."""
if self._ready:
SHARED.novelStructureChanged.emit(tHandle)
return
def checkConsistency(self, prefix: str) -> tuple[int, int]:
"""Check the project tree consistency. Also check the content
folder and add back files that were discovered but were not