From 565350fcfb963266d5e958262a840bb98d06e07a Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Wed, 15 Nov 2023 21:14:40 +0100 Subject: [PATCH] Clean up tree item updates --- novelwriter/gui/doceditor.py | 3 --- novelwriter/gui/docviewerpanel.py | 4 ++-- novelwriter/gui/projtree.py | 9 +++++++-- novelwriter/guimain.py | 2 ++ 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/novelwriter/gui/doceditor.py b/novelwriter/gui/doceditor.py index a83dae05..170fcc86 100644 --- a/novelwriter/gui/doceditor.py +++ b/novelwriter/gui/doceditor.py @@ -500,10 +500,7 @@ class GuiDocEditor(QPlainTextEdit): else: self.novelStructureChanged.emit() - # ToDo: This should be a signal if oldHeader != newHeader: - self.mainGui.projView.setTreeItemValues(tHandle) - self.mainGui.itemDetails.updateViewBox(tHandle) self.docFooter.updateInfo() # Update the status bar diff --git a/novelwriter/gui/docviewerpanel.py b/novelwriter/gui/docviewerpanel.py index 3bba1124..ea5382de 100644 --- a/novelwriter/gui/docviewerpanel.py +++ b/novelwriter/gui/docviewerpanel.py @@ -221,11 +221,11 @@ class _ViewPanelBackRefs(QTreeWidget): def refreshDocument(self, tHandle: str) -> None: """Refresh document meta data.""" - print("Ping") iItem = SHARED.project.index.getItemData(tHandle) if iItem: for sTitle, hItem in iItem.items(): - self._setTreeItemValues(tHandle, sTitle, hItem) + if f"{tHandle}:{sTitle}" in self._treeMap: + self._setTreeItemValues(tHandle, sTitle, hItem) return ## diff --git a/novelwriter/gui/projtree.py b/novelwriter/gui/projtree.py index 7137d65a..a4f18357 100644 --- a/novelwriter/gui/projtree.py +++ b/novelwriter/gui/projtree.py @@ -142,7 +142,6 @@ class GuiProjectView(QWidget): # Function Mappings self.emptyTrash = self.projTree.emptyTrash self.requestDeleteItem = self.projTree.requestDeleteItem - self.setTreeItemValues = self.projTree.setTreeItemValues self.propagateCount = self.projTree.propagateCount self.getSelectedHandle = self.projTree.getSelectedHandle self.setSelectedHandle = self.projTree.setSelectedHandle @@ -210,6 +209,12 @@ class GuiProjectView(QWidget): # Public Slots ## + @pyqtSlot(str) + def updateItemValues(self, tHandle: str) -> None: + """Update tree item""" + self.projTree.setTreeItemValues(tHandle) + return + @pyqtSlot(str, int, int, int) def updateCounts(self, tHandle: str, cCount: int, wCount: int, pCount: int) -> None: """Slot for updating the word count of a specific item.""" @@ -431,7 +436,7 @@ class GuiProjectToolBar(QWidget): return ## - # Slots + # Private Slots ## @pyqtSlot(str) diff --git a/novelwriter/guimain.py b/novelwriter/guimain.py index ecabc2c0..9e794027 100644 --- a/novelwriter/guimain.py +++ b/novelwriter/guimain.py @@ -245,6 +245,8 @@ class GuiMain(QMainWindow): SHARED.spellLanguageChanged.connect(self.mainStatus.setLanguage) SHARED.indexChangedTags.connect(self.docViewerPanel.updateChangedTags) SHARED.indexScannedDocument.connect(self.docViewerPanel.projectItemChanged) + SHARED.indexScannedDocument.connect(self.projView.updateItemValues) + SHARED.indexScannedDocument.connect(self.itemDetails.updateViewBox) self.mainMenu.requestDocAction.connect(self._passDocumentAction) self.mainMenu.requestDocInsert.connect(self._passDocumentInsert)