Also record keyboard selections as a selection change

This commit is contained in:
Veronica Berglyd Olsen
2025-04-18 18:20:13 +02:00
parent bec414a405
commit b60ce68fcd
+9 -4
View File
@@ -510,7 +510,6 @@ class GuiProjectTree(QTreeView):
self.customContextMenuRequested.connect(self.openContextMenu) self.customContextMenuRequested.connect(self.openContextMenu)
# Connect signals # Connect signals
self.clicked.connect(self._onSingleClick)
self.doubleClicked.connect(self._onDoubleClick) self.doubleClicked.connect(self._onDoubleClick)
self.collapsed.connect(self._onNodeCollapsed) self.collapsed.connect(self._onNodeCollapsed)
self.expanded.connect(self._onNodeExpanded) self.expanded.connect(self._onNodeExpanded)
@@ -560,6 +559,9 @@ class GuiProjectTree(QTreeView):
def loadModel(self) -> None: def loadModel(self) -> None:
"""Load and prepare a new project model.""" """Load and prepare a new project model."""
if selectModelOld := self.selectionModel():
selectModelOld.disconnect()
self.setModel(SHARED.project.tree.model) self.setModel(SHARED.project.tree.model)
# Lock the column sizes # Lock the column sizes
@@ -575,6 +577,9 @@ class GuiProjectTree(QTreeView):
header.resizeSection(ProjectNode.C_ACTIVE, iPx + 6) header.resizeSection(ProjectNode.C_ACTIVE, iPx + 6)
header.resizeSection(ProjectNode.C_STATUS, iPx + 6) header.resizeSection(ProjectNode.C_STATUS, iPx + 6)
if selectModelNew := self.selectionModel():
selectModelNew.currentChanged.connect(self._onSelectionChange)
self.restoreExpandedState() self.restoreExpandedState()
return return
@@ -970,10 +975,10 @@ class GuiProjectTree(QTreeView):
# Private Slots # Private Slots
## ##
@pyqtSlot(QModelIndex) @pyqtSlot(QModelIndex, QModelIndex)
def _onSingleClick(self, index: QModelIndex) -> None: def _onSelectionChange(self, current: QModelIndex, previous: QModelIndex) -> None:
"""The user changed which item is selected.""" """The user changed which item is selected."""
if node := self._getNode(index): if node := self._getNode(current):
self.projView.selectedItemChanged.emit(node.item.itemHandle) self.projView.selectedItemChanged.emit(node.item.itemHandle)
return return