From b17b5d32c213c5ae1d9c6b8044942a910511e95f Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Sat, 25 Nov 2023 18:53:11 +0100 Subject: [PATCH] Allow double-clicking in viewer panel --- novelwriter/gui/docviewerpanel.py | 18 ++++++++++++++++++ tests/test_gui/test_gui_docviewerpanel.py | 8 ++++++++ 2 files changed, 26 insertions(+) diff --git a/novelwriter/gui/docviewerpanel.py b/novelwriter/gui/docviewerpanel.py index c8f56fd6..3d6bdfdd 100644 --- a/novelwriter/gui/docviewerpanel.py +++ b/novelwriter/gui/docviewerpanel.py @@ -231,6 +231,7 @@ class _ViewPanelBackRefs(QTreeWidget): # Signals self.clicked.connect(self._treeItemClicked) + self.doubleClicked.connect(self._treeItemDoubleClicked) return @@ -271,6 +272,14 @@ class _ViewPanelBackRefs(QTreeWidget): self._parent.openDocumentRequest.emit(tHandle, nwDocMode.VIEW, "", True) return + @pyqtSlot("QModelIndex") + def _treeItemDoubleClicked(self, index: QModelIndex) -> None: + """Emit follow tag signal on user double click.""" + tHandle = index.siblingAtColumn(self.C_DATA).data(self.D_HANDLE) + if index.column() == self.C_DOC: + self._parent.openDocumentRequest.emit(tHandle, nwDocMode.VIEW, "", True) + return + ## # Internal Functions ## @@ -356,6 +365,7 @@ class _ViewPanelKeyWords(QTreeWidget): # Signals self.clicked.connect(self._treeItemClicked) + self.doubleClicked.connect(self._treeItemDoubleClicked) return @@ -436,4 +446,12 @@ class _ViewPanelKeyWords(QTreeWidget): self._parent.loadDocumentTagRequest.emit(tag, nwDocMode.VIEW) return + @pyqtSlot("QModelIndex") + def _treeItemDoubleClicked(self, index: QModelIndex) -> None: + """Emit follow tag signal on user double click.""" + tag = index.siblingAtColumn(self.C_DATA).data(self.D_TAG) + if index.column() == self.C_NAME: + self._parent.loadDocumentTagRequest.emit(tag, nwDocMode.VIEW) + return + # END Class _ViewPanelKeyWords diff --git a/tests/test_gui/test_gui_docviewerpanel.py b/tests/test_gui/test_gui_docviewerpanel.py index 1ff773ae..da43c4f3 100644 --- a/tests/test_gui/test_gui_docviewerpanel.py +++ b/tests/test_gui/test_gui_docviewerpanel.py @@ -102,6 +102,12 @@ def testGuiViewerPanel_BackRefs(qtbot, monkeypatch, nwGUI, projPath, mockRnd): tabBackRefs._treeItemClicked(tabBackRefs.model().index(0, tabBackRefs.C_VIEW)) assert nwGUI.docViewer.docHandle == C.hSceneDoc + # Double-Click + nwGUI.viewDocument(hJane) + assert nwGUI.docViewer.docHandle == hJane + tabBackRefs._treeItemDoubleClicked(tabBackRefs.model().index(0, tabBackRefs.C_DOC)) + assert nwGUI.docViewer.docHandle == C.hSceneDoc + # qtbot.stop() # END Test testGuiViewerPanel_BackRefs @@ -189,6 +195,8 @@ def testGuiViewerPanel_Tags(qtbot, monkeypatch, caplog, nwGUI, projPath, mockRnd assert nwGUI.docViewer.docHandle == C.hSceneDoc charTab._treeItemClicked(charTab.model().index(1, charTab.C_VIEW)) assert nwGUI.docViewer.docHandle == hJohn + charTab._treeItemDoubleClicked(charTab.model().index(0, charTab.C_NAME)) + assert nwGUI.docViewer.docHandle == hJane # qtbot.stop()