From acd4d44a9e38ee2eecd07721d1d96abc63478c2d Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Sun, 26 Feb 2023 10:30:25 +0100 Subject: [PATCH 1/3] Fix reference panel links (#1378) --- novelwriter/gui/docviewer.py | 7 ++++--- tests/test_gui/test_gui_docviewer.py | 13 +++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/novelwriter/gui/docviewer.py b/novelwriter/gui/docviewer.py index c111f6a1..2449688d 100644 --- a/novelwriter/gui/docviewer.py +++ b/novelwriter/gui/docviewer.py @@ -1201,17 +1201,18 @@ class GuiDocViewDetails(QScrollArea): return ## - # Internal Functions + # Private Slots ## + @pyqtSlot(str) def _linkClicked(self, theLink): """Capture the link-click and forward it to the document viewer class for handling. """ logger.debug("Clicked link: '%s'", theLink) - if len(theLink) == 21: + if len(theLink) >= 13: tHandle = theLink[:13] - tAnchor = theLink[13:] + tAnchor = theLink[13:] or None self.mainGui.viewDocument(tHandle, tAnchor) return diff --git a/tests/test_gui/test_gui_docviewer.py b/tests/test_gui/test_gui_docviewer.py index 02f6002f..14cf66d0 100644 --- a/tests/test_gui/test_gui_docviewer.py +++ b/tests/test_gui/test_gui_docviewer.py @@ -171,6 +171,19 @@ def testGuiViewer_Main(qtbot, monkeypatch, nwGUI, nwLipsum): assert nwGUI.docViewer.loadText("846352075de7d") is False assert nwGUI.docViewer.toPlainText() == "An error occurred while generating the preview." + # Check reference panel (issue #1378) + assert nwGUI.viewDocument("4c4f28287af27") is True + assert nwGUI.docViewer.toPlainText().startswith("Nobody Owens") + + nwGUI.viewMeta._linkClicked("fb609cd8319dc") + assert nwGUI.docViewer.toPlainText().startswith("Chapter One") + + nwGUI.viewMeta._linkClicked("88243afbe5ed8#T0001") + assert nwGUI.docViewer.toPlainText().startswith("Scene One") + + nwGUI.viewMeta._linkClicked("88243afbe5ed8#ABCD") + assert nwGUI.docViewer.toPlainText().startswith("Scene One") + # qtbot.stop() # END Test testGuiViewer_Main From 1952906829951e0904ddff5fc89209d29fab4352 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Sun, 26 Feb 2023 10:35:14 +0100 Subject: [PATCH 2/3] Switch focus to tree when creating new item (#1376) --- novelwriter/gui/projtree.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/novelwriter/gui/projtree.py b/novelwriter/gui/projtree.py index d2cf564a..25bbba47 100644 --- a/novelwriter/gui/projtree.py +++ b/novelwriter/gui/projtree.py @@ -39,7 +39,7 @@ from PyQt5.QtWidgets import ( QVBoxLayout, QWidget ) -from novelwriter.enum import nwDocMode, nwItemType, nwItemClass, nwItemLayout, nwAlert +from novelwriter.enum import nwDocMode, nwItemType, nwItemClass, nwItemLayout, nwAlert, nwWidget from novelwriter.constants import nwHeaders, nwUnicode, trConst, nwLabels from novelwriter.core.coretools import DocMerger, DocSplitter from novelwriter.dialogs.docmerge import GuiDocMerge @@ -630,6 +630,7 @@ class GuiProjectTree(QTreeWidget): # Add the new item to the project tree self.revealNewTreeItem(tHandle, nHandle=nHandle, wordCount=True) + self.mainGui.switchFocus(nwWidget.TREE) return True From 4ff8c6a26f73d0ed4993623372bc355dd7fbd146 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Sun, 26 Feb 2023 10:56:06 +0100 Subject: [PATCH 3/3] Don't set project tree focus when setting selected handle (#1369) --- novelwriter/gui/projtree.py | 1 - 1 file changed, 1 deletion(-) diff --git a/novelwriter/gui/projtree.py b/novelwriter/gui/projtree.py index 25bbba47..df29903b 100644 --- a/novelwriter/gui/projtree.py +++ b/novelwriter/gui/projtree.py @@ -1088,7 +1088,6 @@ class GuiProjectTree(QTreeWidget): if tItem is None: return False - self.setFocus() if tHandle in self._treeMap: self.setCurrentItem(self._treeMap[tHandle])