From db1cda65c3c05ea8008ce69ed7ed0d4e1be7453f Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Mon, 3 Apr 2023 22:06:57 +0200 Subject: [PATCH] Add check for root class before allowing adding novel documents in project tree new item (#1404) --- novelwriter/gui/projtree.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/novelwriter/gui/projtree.py b/novelwriter/gui/projtree.py index 380c9e92..82b3c3a1 100644 --- a/novelwriter/gui/projtree.py +++ b/novelwriter/gui/projtree.py @@ -38,6 +38,7 @@ from PyQt5.QtWidgets import ( QMenu, QShortcut, QSizePolicy, QToolButton, QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget ) +from novelwriter.core.item import NWItem from novelwriter.enum import nwDocMode, nwItemType, nwItemClass, nwItemLayout, nwAlert, nwWidget from novelwriter.constants import nwHeaders, nwUnicode, trConst, nwLabels @@ -108,6 +109,9 @@ class GuiProjectView(QWidget): self.keyContext.setContext(Qt.WidgetShortcut) self.keyContext.activated.connect(lambda: self.projTree.openContextOnSelected()) + # Signals + self.selectedItemChanged.connect(self.projBar._treeSelectionChanged) + # Function Mappings self.emptyTrash = self.projTree.emptyTrash self.requestDeleteItem = self.projTree.requestDeleteItem @@ -418,6 +422,23 @@ class GuiProjectToolBar(QWidget): return + ## + # Slots + ## + + @pyqtSlot(str) + def _treeSelectionChanged(self, tHandle): + """Toggle the visibility of the new item enties for novel + documents. They should only be visible if novel documents can + actually be added. + """ + nwItem = self.theProject.tree[tHandle] + allowDoc = isinstance(nwItem, NWItem) and nwItem.documentAllowed() + self.aAddEmpty.setVisible(allowDoc) + self.aAddChap.setVisible(allowDoc) + self.aAddScene.setVisible(allowDoc) + return + # END Class GuiProjectToolBar