From 6067c9af0e85361fa2c11e14f362ce701760d4fc Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Tue, 8 Sep 2020 23:13:49 +0200 Subject: [PATCH] Middle mouse clicking a document in the tree view opens it for viewing --- nw/gui/projtree.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/nw/gui/projtree.py b/nw/gui/projtree.py index 2eaf832c..36130b1f 100644 --- a/nw/gui/projtree.py +++ b/nw/gui/projtree.py @@ -662,13 +662,28 @@ class GuiProjectTree(QTreeWidget): def mousePressEvent(self, theEvent): """Overload mousePressEvent to clear selection if clicking the - mouse in a blank area of the tree view. + mouse in a blank area of the tree view, and to load a document + for viewing if the suer middle clicked. """ QTreeWidget.mousePressEvent(self, theEvent) - selItem = self.indexAt(theEvent.pos()) - if not selItem.isValid(): - self.clearSelection() + if theEvent.button() == Qt.LeftButton: + selItem = self.indexAt(theEvent.pos()) + if not selItem.isValid(): + self.clearSelection() + + elif theEvent.button() == Qt.MiddleButton: + selItem = self.itemAt(theEvent.pos()) + if not isinstance(selItem, QTreeWidgetItem): + return + + tHandle = selItem.data(self.C_NAME, Qt.UserRole) + tItem = self.theProject.projTree[tHandle] + if tItem is None: + return + + if tItem.itemType == nwItemType.FILE: + self.theParent.viewDocument(tHandle) return