Re-enable item selection
This commit is contained in:
@@ -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
|
||||
##
|
||||
|
||||
@@ -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
|
||||
##
|
||||
|
||||
Reference in New Issue
Block a user