From b60ce68fcd1ed0bf5891b6c9c0ede6a0a8c42ee5 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Fri, 18 Apr 2025 18:20:13 +0200 Subject: [PATCH] Also record keyboard selections as a selection change --- novelwriter/gui/projtree.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/novelwriter/gui/projtree.py b/novelwriter/gui/projtree.py index 8cbe502e..38279808 100644 --- a/novelwriter/gui/projtree.py +++ b/novelwriter/gui/projtree.py @@ -510,7 +510,6 @@ class GuiProjectTree(QTreeView): self.customContextMenuRequested.connect(self.openContextMenu) # Connect signals - self.clicked.connect(self._onSingleClick) self.doubleClicked.connect(self._onDoubleClick) self.collapsed.connect(self._onNodeCollapsed) self.expanded.connect(self._onNodeExpanded) @@ -560,6 +559,9 @@ class GuiProjectTree(QTreeView): def loadModel(self) -> None: """Load and prepare a new project model.""" + if selectModelOld := self.selectionModel(): + selectModelOld.disconnect() + self.setModel(SHARED.project.tree.model) # Lock the column sizes @@ -575,6 +577,9 @@ class GuiProjectTree(QTreeView): header.resizeSection(ProjectNode.C_ACTIVE, iPx + 6) header.resizeSection(ProjectNode.C_STATUS, iPx + 6) + if selectModelNew := self.selectionModel(): + selectModelNew.currentChanged.connect(self._onSelectionChange) + self.restoreExpandedState() return @@ -970,10 +975,10 @@ class GuiProjectTree(QTreeView): # Private Slots ## - @pyqtSlot(QModelIndex) - def _onSingleClick(self, index: QModelIndex) -> None: + @pyqtSlot(QModelIndex, QModelIndex) + def _onSelectionChange(self, current: QModelIndex, previous: QModelIndex) -> None: """The user changed which item is selected.""" - if node := self._getNode(index): + if node := self._getNode(current): self.projView.selectedItemChanged.emit(node.item.itemHandle) return