From c6120fcf7c6ff1d0380c510e51733265fcc872f9 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Mon, 17 May 2021 16:57:49 +0200 Subject: [PATCH] Make some GuiDocViewer variables private --- nw/gui/docviewer.py | 67 +++++++++++++++++----------- nw/guimain.py | 2 +- tests/test_gui/test_gui_docviewer.py | 10 ++--- tests/test_gui/test_gui_mainmenu.py | 6 +-- tests/test_gui/test_gui_noveltree.py | 8 ++-- tests/test_gui/test_gui_outline.py | 2 +- 6 files changed, 56 insertions(+), 39 deletions(-) diff --git a/nw/gui/docviewer.py b/nw/gui/docviewer.py index 3eb4cdb4..52e44b5d 100644 --- a/nw/gui/docviewer.py +++ b/nw/gui/docviewer.py @@ -58,9 +58,12 @@ class GuiDocViewer(QTextBrowser): self.theParent = theParent self.theTheme = theParent.theTheme self.theProject = theParent.theProject - self.theHandle = None - self.qDocument = self.document() + # Internal Variables + self._docHandle = None + self._qDocument = self.document() + + # Settings self.setMinimumWidth(self.mainConf.pxInt(300)) self.setAutoFillBackground(True) self.setOpenExternalLinks(False) @@ -90,8 +93,8 @@ class GuiDocViewer(QTextBrowser): """ self.clear() self.setSearchPaths([""]) - self.theHandle = None - self.docHeader.setTitleFromHandle(self.theHandle) + self._docHandle = None + self.docHeader.setTitleFromHandle(self._docHandle) return True def initViewer(self): @@ -103,7 +106,7 @@ class GuiDocViewer(QTextBrowser): theFont = QFont() if self.mainConf.textFont is None: # If none is defined, set the default back to config - self.mainConf.textFont = self.qDocument.defaultFont().family() + self.mainConf.textFont = self._qDocument.defaultFont().family() theFont.setFamily(self.mainConf.textFont) theFont.setPointSize(self.mainConf.textSize) self.setFont(theFont) @@ -124,11 +127,11 @@ class GuiDocViewer(QTextBrowser): self.docFooter.matchColours() # Set default text margins - self.qDocument.setDocumentMargin(0) + self._qDocument.setDocumentMargin(0) theOpt = QTextOption() if self.mainConf.doJustify: theOpt.setAlignment(Qt.AlignJustify) - self.qDocument.setDefaultTextOption(theOpt) + self._qDocument.setDefaultTextOption(theOpt) # Scroll bars if self.mainConf.hideVScroll: @@ -148,7 +151,7 @@ class GuiDocViewer(QTextBrowser): self.setTabStopWidth(self.mainConf.getTabWidth()) # If we have a document open, we should reload it in case the font changed - if self.theHandle is not None: + if self._docHandle is not None: self.reloadText() return True @@ -205,11 +208,11 @@ class GuiDocViewer(QTextBrowser): theCursor = self.textCursor() theCursor.insertText("\t") - if self.theHandle == tHandle: + if self._docHandle == tHandle: self.verticalScrollBar().setValue(sPos) - self.theHandle = tHandle + self._docHandle = tHandle self.theProject.setLastViewed(tHandle) - self.docHeader.setTitleFromHandle(self.theHandle) + self.docHeader.setTitleFromHandle(self._docHandle) self.updateDocMargins() # Make sure the main GUI knows we changed the content @@ -225,13 +228,13 @@ class GuiDocViewer(QTextBrowser): def reloadText(self): """Reload the text in the current document. """ - self.loadText(self.theHandle, updateHistory=False) + self.loadText(self._docHandle, updateHistory=False) return def redrawText(self): """Redraw the text by marking the document content as "dirty". """ - self.qDocument.markContentsDirty(0, self.qDocument.characterCount()) + self._qDocument.markContentsDirty(0, self._qDocument.characterCount()) self.updateDocMargins() return @@ -265,7 +268,7 @@ class GuiDocViewer(QTextBrowser): document. """ logger.verbose("Requesting action: %s" % theAction.name) - if self.theHandle is None: + if self._docHandle is None: logger.error("No document open") return False if theAction == nwDocAction.CUT: @@ -337,11 +340,21 @@ class GuiDocViewer(QTextBrowser): """Called when an item label is changed to check if the document title bar needs updating, """ - if tHandle == self.theHandle: - self.docHeader.setTitleFromHandle(self.theHandle) + if tHandle == self._docHandle: + self.docHeader.setTitleFromHandle(self._docHandle) self.updateDocMargins() return + ## + # Properties + ## + + def docHandle(self): + """Return the handle of the currently open document. Returns + None if no document is open. + """ + return self._docHandle + ## # Setters ## @@ -363,7 +376,7 @@ class GuiDocViewer(QTextBrowser): if not isinstance(theLine, int): return False if theLine >= 0: - theBlock = self.qDocument.findBlockByLineNumber(theLine) + theBlock = self._qDocument.findBlockByLineNumber(theLine) if theBlock: self.setCursorPosition(theBlock.position()) logger.verbose("Cursor moved to line %d" % theLine) @@ -553,7 +566,7 @@ class GuiDocViewer(QTextBrowser): mColG = self.theTheme.colMod[1], mColB = self.theTheme.colMod[2], ) - self.qDocument.setDefaultStyleSheet(styleSheet) + self._qDocument.setDefaultStyleSheet(styleSheet) return True @@ -707,7 +720,9 @@ class GuiDocViewHeader(QWidget): self.theParent = docViewer.theParent self.theProject = docViewer.theProject self.theTheme = docViewer.theTheme - self.theHandle = None + + # Internal Variables + self._docHandle = None fPx = int(0.9*self.theTheme.fontPixelSize) hSp = self.mainConf.pxInt(6) @@ -825,7 +840,7 @@ class GuiDocViewHeader(QWidget): """Sets the document title from the handle, or alternatively, set the whole document path. """ - self.theHandle = tHandle + self._docHandle = tHandle if tHandle is None: self.theTitle.setText("") self.backButton.setVisible(False) @@ -876,7 +891,7 @@ class GuiDocViewHeader(QWidget): def _refreshDocument(self): """Reload the content of the document. """ - if self.docViewer.theHandle == self.theParent.docEditor.docHandle(): + if self.docViewer.docHandle() == self.theParent.docEditor.docHandle(): self.theParent.saveDocument() self.docViewer.reloadText() return @@ -889,7 +904,7 @@ class GuiDocViewHeader(QWidget): """Capture a click on the title and ensure that the item is selected in the project tree. """ - self.theParent.treeView.setSelectedHandle(self.theHandle, doScroll=True) + self.theParent.treeView.setSelectedHandle(self._docHandle, doScroll=True) return # END Class GuiDocViewHeader @@ -911,7 +926,9 @@ class GuiDocViewFooter(QWidget): self.theParent = docViewer.theParent self.theTheme = docViewer.theTheme self.viewMeta = docViewer.theParent.viewMeta - self.theHandle = None + + # Internal Variables + self._docHandle = None fPx = int(0.9*self.theTheme.fontPixelSize) bSp = self.mainConf.pxInt(2) @@ -1097,8 +1114,8 @@ class GuiDocViewFooter(QWidget): """ logger.verbose("Reference sticky is %s" % str(theState)) self.docViewer.stickyRef = theState - if not theState and self.docViewer.theHandle is not None: - self.viewMeta.refreshReferences(self.docViewer.theHandle) + if not theState and self.docViewer.docHandle() is not None: + self.viewMeta.refreshReferences(self.docViewer.docHandle()) return def _doToggleComments(self, theState): diff --git a/nw/guimain.py b/nw/guimain.py index f3f8ba7e..e0f5c42b 100644 --- a/nw/guimain.py +++ b/nw/guimain.py @@ -1251,7 +1251,7 @@ class GuiMain(QMainWindow): if self.splitView.isVisible(): self.splitView.setVisible(False) - elif self.docViewer.theHandle is not None: + elif self.docViewer.docHandle() is not None: self.splitView.setVisible(True) return True diff --git a/tests/test_gui/test_gui_docviewer.py b/tests/test_gui/test_gui_docviewer.py index ed77dcc4..8af6ccbc 100644 --- a/tests/test_gui/test_gui_docviewer.py +++ b/tests/test_gui/test_gui_docviewer.py @@ -58,7 +58,7 @@ def testGuiViewer_Main(qtbot, monkeypatch, nwGUI, nwLipsum): theItem = nwGUI.treeView._getTreeItem("88243afbe5ed8") theRect = nwGUI.treeView.visualItemRect(theItem) qtbot.mouseClick(nwGUI.treeView.viewport(), Qt.MidButton, pos=theRect.center()) - assert nwGUI.docViewer.theHandle == "88243afbe5ed8" + assert nwGUI.docViewer.docHandle() == "88243afbe5ed8" # Reload the text origText = nwGUI.docViewer.toPlainText() @@ -112,7 +112,7 @@ def testGuiViewer_Main(qtbot, monkeypatch, nwGUI, nwLipsum): # Close document nwGUI.docViewer.docHeader._closeDocument() - assert nwGUI.docViewer.theHandle is None + assert nwGUI.docViewer.docHandle() is None # Action on no document assert not nwGUI.docViewer.docAction(nwDocAction.COPY) @@ -127,13 +127,13 @@ def testGuiViewer_Main(qtbot, monkeypatch, nwGUI, nwLipsum): theRect = nwGUI.docViewer.cursorRect() # qtbot.mouseClick(nwGUI.docViewer.viewport(), Qt.LeftButton, pos=theRect.center(), delay=100) nwGUI.docViewer._linkClicked(QUrl("#char=Bod")) - assert nwGUI.docViewer.theHandle == "4c4f28287af27" + assert nwGUI.docViewer.docHandle() == "4c4f28287af27" # Click mouse nav buttons qtbot.mouseClick(nwGUI.docViewer.viewport(), Qt.BackButton, pos=theRect.center(), delay=100) - assert nwGUI.docViewer.theHandle == "88243afbe5ed8" + assert nwGUI.docViewer.docHandle() == "88243afbe5ed8" qtbot.mouseClick(nwGUI.docViewer.viewport(), Qt.ForwardButton, pos=theRect.center(), delay=100) - assert nwGUI.docViewer.theHandle == "4c4f28287af27" + assert nwGUI.docViewer.docHandle() == "4c4f28287af27" # Scroll bar default on empty document nwGUI.docViewer.clear() diff --git a/tests/test_gui/test_gui_mainmenu.py b/tests/test_gui/test_gui_mainmenu.py index 2c718704..9b9af54d 100644 --- a/tests/test_gui/test_gui_mainmenu.py +++ b/tests/test_gui/test_gui_mainmenu.py @@ -337,17 +337,17 @@ def testGuiMenu_ContextMenus(qtbot, monkeypatch, nwGUI, nwLipsum): # Navigation History assert nwGUI.viewDocument("04468803b92e1") - assert nwGUI.docViewer.theHandle == "04468803b92e1" + assert nwGUI.docViewer.docHandle() == "04468803b92e1" assert nwGUI.docViewer.docHeader.backButton.isEnabled() assert not nwGUI.docViewer.docHeader.forwardButton.isEnabled() qtbot.mouseClick(nwGUI.docViewer.docHeader.backButton, Qt.LeftButton) - assert nwGUI.docViewer.theHandle == "4c4f28287af27" + assert nwGUI.docViewer.docHandle() == "4c4f28287af27" assert not nwGUI.docViewer.docHeader.backButton.isEnabled() assert nwGUI.docViewer.docHeader.forwardButton.isEnabled() qtbot.mouseClick(nwGUI.docViewer.docHeader.forwardButton, Qt.LeftButton) - assert nwGUI.docViewer.theHandle == "04468803b92e1" + assert nwGUI.docViewer.docHandle() == "04468803b92e1" assert nwGUI.docViewer.docHeader.backButton.isEnabled() assert not nwGUI.docViewer.docHeader.forwardButton.isEnabled() diff --git a/tests/test_gui/test_gui_noveltree.py b/tests/test_gui/test_gui_noveltree.py index b6618569..57f83fe5 100644 --- a/tests/test_gui/test_gui_noveltree.py +++ b/tests/test_gui/test_gui_noveltree.py @@ -104,19 +104,19 @@ def testGuiNovelTree_TreeItems(qtbot, caplog, monkeypatch, nwGUI, nwMinimal): # Open item with middle mouse button scItem.setSelected(True) assert scItem.isSelected() - assert nwGUI.docViewer.theHandle is None + assert nwGUI.docViewer.docHandle() is None qtbot.mouseClick(vPort, Qt.MiddleButton, pos=vPort.rect().center(), delay=10) - assert nwGUI.docViewer.theHandle is None + assert nwGUI.docViewer.docHandle() is None scRect = nwTree.visualItemRect(scItem) oldData = scItem.data(nwTree.C_TITLE, Qt.UserRole) scItem.setData(nwTree.C_TITLE, Qt.UserRole, (None, "", "")) qtbot.mouseClick(vPort, Qt.MiddleButton, pos=scRect.center(), delay=10) - assert nwGUI.docViewer.theHandle is None + assert nwGUI.docViewer.docHandle() is None scItem.setData(nwTree.C_TITLE, Qt.UserRole, oldData) qtbot.mouseClick(vPort, Qt.MiddleButton, pos=scRect.center(), delay=10) - assert nwGUI.docViewer.theHandle == "8c659a11cd429" + assert nwGUI.docViewer.docHandle() == "8c659a11cd429" ## # Populate Tree diff --git a/tests/test_gui/test_gui_outline.py b/tests/test_gui/test_gui_outline.py index 53724636..507ad410 100644 --- a/tests/test_gui/test_gui_outline.py +++ b/tests/test_gui/test_gui_outline.py @@ -85,7 +85,7 @@ def testGuiOutline_Main(qtbot, monkeypatch, nwGUI, nwLipsum): # Click POV Link assert nwGUI.projMeta.povKeyValue.text() == "Bod" nwGUI.projMeta._tagClicked("#pov=Bod") - assert nwGUI.docViewer.theHandle == "4c4f28287af27" + assert nwGUI.docViewer.docHandle() == "4c4f28287af27" # qtbot.stopForInteraction()