From dc265e57f3d9a8d1fa9316ec7ecce34ca28ebd8c Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Sat, 11 Jan 2025 18:30:53 +0100 Subject: [PATCH 1/2] Store previous selection before clear in novel selector widget --- novelwriter/extensions/novelselector.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/novelwriter/extensions/novelselector.py b/novelwriter/extensions/novelselector.py index 3504896e..c490fb42 100644 --- a/novelwriter/extensions/novelselector.py +++ b/novelwriter/extensions/novelselector.py @@ -90,12 +90,13 @@ class NovelSelector(QComboBox): @pyqtSlot() def refreshNovelList(self) -> None: """Rebuild the list of novel items.""" + cHandle = self.currentData() + self._blockSignal = True self._firstHandle = None self.clear() icon = SHARED.theme.getIcon(nwLabels.CLASS_ICON[nwItemClass.NOVEL]) - handle = self.currentData() for tHandle, nwItem in SHARED.project.tree.iterRoots(nwItemClass.NOVEL): if self._listFormat: name = self._listFormat.format(nwItem.itemName) @@ -110,7 +111,7 @@ class NovelSelector(QComboBox): self.insertSeparator(self.count()) self.addItem(icon, self.tr("All Novel Folders"), "") - self.setHandle(handle) + self.setHandle(cHandle) self.setEnabled(self.count() > 1) self._blockSignal = False From d7d211baf2d3a0afc69fe3b1f048ee46a1313be3 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Sat, 11 Jan 2025 18:35:07 +0100 Subject: [PATCH 2/2] Fix empty selection model bug (#2173) --- novelwriter/gui/projtree.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/novelwriter/gui/projtree.py b/novelwriter/gui/projtree.py index 564c4d66..db04e3dd 100644 --- a/novelwriter/gui/projtree.py +++ b/novelwriter/gui/projtree.py @@ -1020,7 +1020,9 @@ class GuiProjectTree(QTreeView): def _clearSelection(self) -> None: """Clear the currently selected items.""" self.clearSelection() - self.selectionModel().clearCurrentIndex() + if model := self.selectionModel(): + # Selection model can be None (#2173) + model.clearCurrentIndex() return def _selectedRows(self) -> list[QModelIndex]: