Re-enable item selection

This commit is contained in:
Veronica Berglyd Olsen
2024-11-17 22:41:45 +01:00
parent ef42e1956c
commit 7991b9b27c
3 changed files with 152 additions and 81 deletions
+17 -1
View File
@@ -154,13 +154,19 @@ class ProjectNode:
class ProjectModel(QAbstractItemModel):
__slots__ = ("_root", "_map")
__slots__ = ("_tree", "_root")
def __init__(self, tree: NWTree) -> None:
super().__init__(None)
logger.debug("Create: ProjectModel")
self._tree = tree
self._root = ProjectNode(NWItem(tree._project, ""))
return
def __del__(self) -> None:
logger.debug("Delete: ProjectModel")
return
@property
def root(self) -> ProjectNode:
return self._root
@@ -220,6 +226,16 @@ class ProjectModel(QAbstractItemModel):
return index.internalPointer()
return None
def indexFromHandle(self, handle: str | None) -> QModelIndex:
"""Get the index representing a node in the model."""
if handle and (node := self._tree.nodes.get(handle)):
return self.createIndex(node.row(), 0, node)
return QModelIndex()
def indexFromNode(self, node: ProjectNode) -> QModelIndex:
"""Get the index representing a node in the model."""
return self.createIndex(node.row(), 0, node)
##
# Methods
##
+4
View File
@@ -98,6 +98,10 @@ class NWTree:
def model(self) -> ProjectModel:
return self._model
@property
def nodes(self) -> dict[str, ProjectNode]:
return self._nodes
##
# Class Methods
##