Merge branch 'testing' into dev

This commit is contained in:
Veronica K. B. Olsen
2021-03-28 15:23:16 +02:00
11 changed files with 127 additions and 45 deletions
+1
View File
@@ -7,6 +7,7 @@
*.egg-info *.egg-info
setup.iss setup.iss
novelwriter.desktop novelwriter.desktop
novelWriter.pyw
i18n/*.qm i18n/*.qm
i18n/*.qph i18n/*.qph
+34
View File
@@ -1,5 +1,39 @@
# novelWriter Changelog # novelWriter Changelog
## Version 1.2.2 [2021-03-28]
### Release Notes
This patch release is a bug fix release addressing some inconsistencies and issues with the
document header buttons when Focus Mode is active. The keyboard shortcuts for search and replace
should now also work in Focus Mode. In addition, the setup script for novelWriter has been improved
when installing on Windows.
### Detailed Changelog
**Bugfixes**
* The way Focus Mode worked when activated through the menu and through the document header button
were inconsistent. The header button would deactivate the edit, search and close buttons, while
the menu entry would not. These two methods now call the same set of functions to ensure the
behaviour is consistent. PR #717.
* Closing the document while in Focus Mode now ends Focus Mode. Previously, the editor would be
left stuck in Focus Mode with no way to exit. PR #717.
**User Interface**
* The keyboard shortcuts for the search and replace tool now also work in Focus Mode. Previously,
the menu entries and their shortcuts were deactivated in this mode. Issue #716. PR #717.
**Installation**
* The setup script command do build minimal install archive files now also generate SHA 256 sum
files. PR #724.
* The setup script will now copy the `novelWriter.py` file to `novelWriter.pyw` if it doesn't exist
when the `win-install` command is run. Issue #727. PR #728.
----
## Version 1.2.1 [2021-03-21] ## Version 1.2.1 [2021-03-21]
### Release Notes ### Release Notes
+11 -2
View File
@@ -3,6 +3,17 @@
<body> <body>
<h2>Release Notes for 1.2.2</h2>
<p><i>Released on 28 March 2021</i></p>
<p>This patch release is a bug fix release addressing some inconsistencies and issues with the
document header buttons when Focus Mode is active. The keyboard shortcuts for search and replace
should now also work in Focus Mode. In addition, the setup script for novelWriter has been improved
when installing on Windows.</p>
<p><i>See also the <a href="https://github.com/vkbo/novelWriter/releases">Releases</a> page.</i></p>
<hr/>
<h2>Release Notes for 1.2.1</h2> <h2>Release Notes for 1.2.1</h2>
<p><i>Released on 21 March 2021</i></p> <p><i>Released on 21 March 2021</i></p>
<p>This patch release is a bug fix release addressing issues with the document editor's search and <p>This patch release is a bug fix release addressing issues with the document editor's search and
@@ -10,8 +21,6 @@ replace tool. Due to some recently added restrictions on when various tools are
on which part of the main window has the user's focus, the search tool keyboard shortcuts and on which part of the main window has the user's focus, the search tool keyboard shortcuts and
buttons were blocked when they shouldn't. This release resolves these issues.</p> buttons were blocked when they shouldn't. This release resolves these issues.</p>
<p><i>See also the <a href="https://github.com/vkbo/novelWriter/releases">Releases</a> page.</i></p>
<hr/> <hr/>
<h2>Release Notes for 1.2</h2> <h2>Release Notes for 1.2</h2>
+2 -1
View File
@@ -5,7 +5,7 @@ from nw.constants.constants import (
) )
from nw.constants.enum import ( from nw.constants.enum import (
nwAlert, nwDocAction, nwItemClass, nwItemLayout, nwItemType, nwOutline, nwAlert, nwDocAction, nwItemClass, nwItemLayout, nwItemType, nwOutline,
nwDocInsert nwDocInsert, nwWidget
) )
__all__ = [ __all__ = [
@@ -26,4 +26,5 @@ __all__ = [
"nwItemType", "nwItemType",
"nwOutline", "nwOutline",
"nwDocInsert", "nwDocInsert",
"nwWidget",
] ]
+9
View File
@@ -112,6 +112,15 @@ class nwAlert(Enum):
# END Enum nwAlert # END Enum nwAlert
class nwWidget(Enum):
TREE = 1
EDITOR = 2
VIEWER = 3
OUTLINE = 4
# END Enum nwWidget
class nwOutline(Enum): class nwOutline(Enum):
TITLE = 0 TITLE = 0
+11 -13
View File
@@ -2223,7 +2223,6 @@ class GuiDocEditHeader(QWidget):
fPx = int(0.9*self.theTheme.fontPixelSize) fPx = int(0.9*self.theTheme.fontPixelSize)
hSp = self.mainConf.pxInt(6) hSp = self.mainConf.pxInt(6)
self.buttonSize = fPx + hSp
# Main Widget Settings # Main Widget Settings
self.setAutoFillBackground(True) self.setAutoFillBackground(True)
@@ -2369,6 +2368,17 @@ class GuiDocEditHeader(QWidget):
return True return True
def updateFocusMode(self):
"""Update the minimise/maximise icon of the Focus Mode button.
This function is called by the GuiMain class via the
toggleFocusMode function and should not be activated directly.
"""
if self.theParent.isFocusMode:
self.minmaxButton.setIcon(self.theTheme.getIcon("minimise"))
else:
self.minmaxButton.setIcon(self.theTheme.getIcon("maximise"))
return
## ##
# Slots # Slots
## ##
@@ -2399,18 +2409,6 @@ class GuiDocEditHeader(QWidget):
"""Switch on or off Focus Mode. """Switch on or off Focus Mode.
""" """
self.theParent.toggleFocusMode() self.theParent.toggleFocusMode()
if self.theParent.isFocusMode:
self.minmaxButton.setIcon(self.theTheme.getIcon("minimise"))
self.setContentsMargins(self.buttonSize, 0, 0, 0)
self.editButton.setVisible(False)
self.searchButton.setVisible(False)
self.closeButton.setVisible(False)
else:
self.minmaxButton.setIcon(self.theTheme.getIcon("maximise"))
self.setContentsMargins(0, 0, 0, 0)
self.editButton.setVisible(True)
self.searchButton.setVisible(True)
self.closeButton.setVisible(True)
return return
## ##
+5 -5
View File
@@ -33,7 +33,7 @@ from PyQt5.QtWidgets import QMenuBar, QAction
from nw.constants import ( from nw.constants import (
trConst, nwItemType, nwItemClass, nwDocAction, nwDocInsert, nwKeyWords, trConst, nwItemType, nwItemClass, nwDocAction, nwDocInsert, nwKeyWords,
nwLabels, nwUnicode nwLabels, nwUnicode, nwWidget
) )
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -471,28 +471,28 @@ class GuiMainMenu(QMenuBar):
self.aFocusTree = QAction(self.tr("Focus Project Tree"), self) self.aFocusTree = QAction(self.tr("Focus Project Tree"), self)
self.aFocusTree.setStatusTip(self.tr("Move focus to project tree")) self.aFocusTree.setStatusTip(self.tr("Move focus to project tree"))
self.aFocusTree.setShortcut("Alt+1") self.aFocusTree.setShortcut("Alt+1")
self.aFocusTree.triggered.connect(lambda: self.theParent.setFocus(1)) self.aFocusTree.triggered.connect(lambda: self.theParent.switchFocus(nwWidget.TREE))
self.viewMenu.addAction(self.aFocusTree) self.viewMenu.addAction(self.aFocusTree)
# View > Document Pane 1 # View > Document Pane 1
self.aFocusEditor = QAction(self.tr("Focus Document Editor"), self) self.aFocusEditor = QAction(self.tr("Focus Document Editor"), self)
self.aFocusEditor.setStatusTip(self.tr("Move focus to left document pane")) self.aFocusEditor.setStatusTip(self.tr("Move focus to left document pane"))
self.aFocusEditor.setShortcut("Alt+2") self.aFocusEditor.setShortcut("Alt+2")
self.aFocusEditor.triggered.connect(lambda: self.theParent.setFocus(2)) self.aFocusEditor.triggered.connect(lambda: self.theParent.switchFocus(nwWidget.EDITOR))
self.viewMenu.addAction(self.aFocusEditor) self.viewMenu.addAction(self.aFocusEditor)
# View > Document Pane 2 # View > Document Pane 2
self.aFocusView = QAction(self.tr("Focus Document Viewer"), self) self.aFocusView = QAction(self.tr("Focus Document Viewer"), self)
self.aFocusView.setStatusTip(self.tr("Move focus to right document pane")) self.aFocusView.setStatusTip(self.tr("Move focus to right document pane"))
self.aFocusView.setShortcut("Alt+3") self.aFocusView.setShortcut("Alt+3")
self.aFocusView.triggered.connect(lambda: self.theParent.setFocus(3)) self.aFocusView.triggered.connect(lambda: self.theParent.switchFocus(nwWidget.VIEWER))
self.viewMenu.addAction(self.aFocusView) self.viewMenu.addAction(self.aFocusView)
# View > Outline # View > Outline
self.aFocusOutline = QAction(self.tr("Focus Outline"), self) self.aFocusOutline = QAction(self.tr("Focus Outline"), self)
self.aFocusOutline.setStatusTip(self.tr("Move focus to outline")) self.aFocusOutline.setStatusTip(self.tr("Move focus to outline"))
self.aFocusOutline.setShortcut("Alt+4") self.aFocusOutline.setShortcut("Alt+4")
self.aFocusOutline.triggered.connect(lambda: self.theParent.setFocus(4)) self.aFocusOutline.triggered.connect(lambda: self.theParent.switchFocus(nwWidget.OUTLINE))
self.viewMenu.addAction(self.aFocusOutline) self.viewMenu.addAction(self.aFocusOutline)
# View > Separator # View > Separator
+24 -10
View File
@@ -46,7 +46,7 @@ from nw.gui import (
GuiProjectTree, GuiProjectWizard, GuiTheme, GuiWordList, GuiWritingStats GuiProjectTree, GuiProjectWizard, GuiTheme, GuiWordList, GuiWritingStats
) )
from nw.core import NWProject, NWDoc, NWIndex from nw.core import NWProject, NWDoc, NWIndex
from nw.constants import nwItemType, nwItemClass, nwAlert, nwLists from nw.constants import nwItemType, nwItemClass, nwAlert, nwLists, nwWidget
from nw.common import getGuiItem, hexToInt from nw.common import getGuiItem, hexToInt
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -567,6 +567,10 @@ class GuiMain(QMainWindow):
logger.error("No project open") logger.error("No project open")
return False return False
# Disable focus mode if it is active
if self.isFocusMode:
self.toggleFocusMode()
self.docEditor.saveCursorPosition() self.docEditor.saveCursorPosition()
if self.docEditor.docChanged: if self.docEditor.docChanged:
self.saveDocument() self.saveDocument()
@@ -813,10 +817,10 @@ class GuiMain(QMainWindow):
return False return False
if tHandle is None: if tHandle is None:
if self.treeView.hasFocus(): if self.docEditor.anyFocus() or self.isFocusMode:
tHandle = self.treeView.getSelectedHandle()
elif self.docEditor.hasFocus():
tHandle = self.docEditor.theHandle tHandle = self.docEditor.theHandle
else:
tHandle = self.treeView.getSelectedHandle()
if tHandle is None: if tHandle is None:
logger.warning("No item selected") logger.warning("No item selected")
@@ -1176,18 +1180,18 @@ class GuiMain(QMainWindow):
return True return True
def setFocus(self, paneNo): def switchFocus(self, paneNo):
"""Switch focus between main GUI views. """Switch focus between main GUI views.
""" """
if paneNo == 1: if paneNo == nwWidget.TREE:
self.treeView.setFocus() self.treeView.setFocus()
elif paneNo == 2: elif paneNo == nwWidget.EDITOR:
self.mainTabs.setCurrentWidget(self.splitDocs) self.mainTabs.setCurrentWidget(self.splitDocs)
self.docEditor.setFocus() self.docEditor.setFocus()
elif paneNo == 3: elif paneNo == nwWidget.VIEWER:
self.mainTabs.setCurrentWidget(self.splitDocs) self.mainTabs.setCurrentWidget(self.splitDocs)
self.docViewer.setFocus() self.docViewer.setFocus()
elif paneNo == 4: elif paneNo == nwWidget.OUTLINE:
self.mainTabs.setCurrentWidget(self.splitOutline) self.mainTabs.setCurrentWidget(self.splitOutline)
self.projView.setFocus() self.projView.setFocus()
return return
@@ -1224,6 +1228,7 @@ class GuiMain(QMainWindow):
if self.isFocusMode: if self.isFocusMode:
logger.debug("Activating Focus Mode") logger.debug("Activating Focus Mode")
self.mainTabs.setCurrentWidget(self.splitDocs) self.mainTabs.setCurrentWidget(self.splitDocs)
self.switchFocus(nwWidget.EDITOR)
else: else:
logger.debug("Deactivating Focus Mode") logger.debug("Deactivating Focus Mode")
@@ -1235,6 +1240,7 @@ class GuiMain(QMainWindow):
hideDocFooter = self.isFocusMode and self.mainConf.hideFocusFooter hideDocFooter = self.isFocusMode and self.mainConf.hideFocusFooter
self.docEditor.docFooter.setVisible(not hideDocFooter) self.docEditor.docFooter.setVisible(not hideDocFooter)
self.docEditor.docHeader.updateFocusMode()
if self.splitView.isVisible(): if self.splitView.isVisible():
self.splitView.setVisible(False) self.splitView.setVisible(False)
@@ -1272,11 +1278,12 @@ class GuiMain(QMainWindow):
""" """
# Project # Project
self.addAction(self.mainMenu.aSaveProject) self.addAction(self.mainMenu.aSaveProject)
self.addAction(self.mainMenu.aEditItem)
self.addAction(self.mainMenu.aExitNW) self.addAction(self.mainMenu.aExitNW)
# Document # Document
self.addAction(self.mainMenu.aSaveDoc) self.addAction(self.mainMenu.aSaveDoc)
self.addAction(self.mainMenu.aFileDetails) self.addAction(self.mainMenu.aCloseDoc)
# Edit # Edit
self.addAction(self.mainMenu.aEditUndo) self.addAction(self.mainMenu.aEditUndo)
@@ -1320,6 +1327,13 @@ class GuiMain(QMainWindow):
for mAction, _ in self.mainMenu.mInsKWItems.values(): for mAction, _ in self.mainMenu.mInsKWItems.values():
self.addAction(mAction) self.addAction(mAction)
# Search
self.addAction(self.mainMenu.aFind)
self.addAction(self.mainMenu.aReplace)
self.addAction(self.mainMenu.aFindNext)
self.addAction(self.mainMenu.aFindPrev)
self.addAction(self.mainMenu.aReplaceNext)
# Format # Format
self.addAction(self.mainMenu.aFmtEmph) self.addAction(self.mainMenu.aFmtEmph)
self.addAction(self.mainMenu.aFmtStrong) self.addAction(self.mainMenu.aFmtStrong)
+16 -2
View File
@@ -291,7 +291,8 @@ def makeMinimalPackage(targetOS):
else: else:
targName = "" targName = ""
outFile = os.path.join("dist", f"novelWriter-{__version__}-minimal{targName}.zip") zipFile = f"novelWriter-{__version__}-minimal{targName}.zip"
outFile = os.path.join("dist", zipFile)
if os.path.isfile(outFile): if os.path.isfile(outFile):
os.unlink(outFile) os.unlink(outFile)
@@ -332,7 +333,17 @@ def makeMinimalPackage(targetOS):
zipObj.write(aFile) zipObj.write(aFile)
print("") print("")
print("Built file: %s" % outFile) print("Created File: %s" % outFile)
try:
shaFile = open(outFile+".sha256", mode="w")
subprocess.call(["sha256sum", zipFile], stdout=shaFile, cwd="dist")
shaFile.close()
print("SHA256 Sum: %s" % (outFile+".sha256"))
except Exception as e:
print("Could not generate sha256 file")
print(str(e))
print("") print("")
return return
@@ -710,6 +721,9 @@ def winInstall():
targetPy = os.path.join(targetDir, "novelWriter.pyw") targetPy = os.path.join(targetDir, "novelWriter.pyw")
targetIcon = os.path.join(targetDir, "nw", "assets", "icons", "novelwriter.ico") targetIcon = os.path.join(targetDir, "nw", "assets", "icons", "novelwriter.ico")
if not os.path.isfile(targetPy):
shutil.copy2(os.path.join(targetDir, "novelWriter.py"), targetPy)
print("Collecting Info ...") print("Collecting Info ...")
print("Desktop Folder: %s" % desktopDir) print("Desktop Folder: %s" % desktopDir)
print("Start Menu Folder: %s" % startMenuDir) print("Start Menu Folder: %s" % startMenuDir)
+10 -10
View File
@@ -33,7 +33,7 @@ from PyQt5.QtWidgets import QAction, QMessageBox, QDialog
from nw.gui.itemeditor import GuiItemEditor from nw.gui.itemeditor import GuiItemEditor
from nw.gui.doceditor import GuiDocEditor from nw.gui.doceditor import GuiDocEditor
from nw.gui.projtree import GuiProjectTree from nw.gui.projtree import GuiProjectTree
from nw.constants import nwItemType, nwDocAction from nw.constants import nwItemType, nwDocAction, nwWidget
keyDelay = 2 keyDelay = 2
typeDelay = 1 typeDelay = 1
@@ -117,14 +117,14 @@ def testGuiEditor_Main(qtbot, monkeypatch, nwGUI, fncDir, fncProj, refDir, outDi
nwGUI.mainConf.autoScroll = True nwGUI.mainConf.autoScroll = True
# Add a Character File # Add a Character File
nwGUI.setFocus(1) nwGUI.switchFocus(nwWidget.TREE)
nwGUI.treeView.clearSelection() nwGUI.treeView.clearSelection()
nwGUI.treeView._getTreeItem("71ee45a3c0db9").setSelected(True) nwGUI.treeView._getTreeItem("71ee45a3c0db9").setSelected(True)
nwGUI.treeView.newTreeItem(nwItemType.FILE, None) nwGUI.treeView.newTreeItem(nwItemType.FILE, None)
assert nwGUI.openSelectedItem() assert nwGUI.openSelectedItem()
# Type something into the document # Type something into the document
nwGUI.setFocus(2) nwGUI.switchFocus(nwWidget.EDITOR)
qtbot.keyClick(nwGUI.docEditor, "a", modifier=Qt.ControlModifier, delay=keyDelay) qtbot.keyClick(nwGUI.docEditor, "a", modifier=Qt.ControlModifier, delay=keyDelay)
for c in "# Jane Doe": for c in "# Jane Doe":
qtbot.keyClick(nwGUI.docEditor, c, delay=typeDelay) qtbot.keyClick(nwGUI.docEditor, c, delay=typeDelay)
@@ -139,14 +139,14 @@ def testGuiEditor_Main(qtbot, monkeypatch, nwGUI, fncDir, fncProj, refDir, outDi
qtbot.keyClick(nwGUI.docEditor, Qt.Key_Return, delay=keyDelay) qtbot.keyClick(nwGUI.docEditor, Qt.Key_Return, delay=keyDelay)
# Add a Plot File # Add a Plot File
nwGUI.setFocus(1) nwGUI.switchFocus(nwWidget.TREE)
nwGUI.treeView.clearSelection() nwGUI.treeView.clearSelection()
nwGUI.treeView._getTreeItem("44cb730c42048").setSelected(True) nwGUI.treeView._getTreeItem("44cb730c42048").setSelected(True)
nwGUI.treeView.newTreeItem(nwItemType.FILE, None) nwGUI.treeView.newTreeItem(nwItemType.FILE, None)
assert nwGUI.openSelectedItem() assert nwGUI.openSelectedItem()
# Type something into the document # Type something into the document
nwGUI.setFocus(2) nwGUI.switchFocus(nwWidget.EDITOR)
qtbot.keyClick(nwGUI.docEditor, "a", modifier=Qt.ControlModifier, delay=keyDelay) qtbot.keyClick(nwGUI.docEditor, "a", modifier=Qt.ControlModifier, delay=keyDelay)
for c in "# Main Plot": for c in "# Main Plot":
qtbot.keyClick(nwGUI.docEditor, c, delay=typeDelay) qtbot.keyClick(nwGUI.docEditor, c, delay=typeDelay)
@@ -161,7 +161,7 @@ def testGuiEditor_Main(qtbot, monkeypatch, nwGUI, fncDir, fncProj, refDir, outDi
qtbot.keyClick(nwGUI.docEditor, Qt.Key_Return, delay=keyDelay) qtbot.keyClick(nwGUI.docEditor, Qt.Key_Return, delay=keyDelay)
# Add a World File # Add a World File
nwGUI.setFocus(1) nwGUI.switchFocus(nwWidget.TREE)
nwGUI.treeView.clearSelection() nwGUI.treeView.clearSelection()
nwGUI.treeView._getTreeItem("811786ad1ae74").setSelected(True) nwGUI.treeView._getTreeItem("811786ad1ae74").setSelected(True)
nwGUI.treeView.newTreeItem(nwItemType.FILE, None) nwGUI.treeView.newTreeItem(nwItemType.FILE, None)
@@ -173,7 +173,7 @@ def testGuiEditor_Main(qtbot, monkeypatch, nwGUI, fncDir, fncProj, refDir, outDi
nwGUI.docEditor.replaceText("") nwGUI.docEditor.replaceText("")
# Type something into the document # Type something into the document
nwGUI.setFocus(2) nwGUI.switchFocus(nwWidget.EDITOR)
qtbot.keyClick(nwGUI.docEditor, "a", modifier=Qt.ControlModifier, delay=keyDelay) qtbot.keyClick(nwGUI.docEditor, "a", modifier=Qt.ControlModifier, delay=keyDelay)
for c in "# Main Location": for c in "# Main Location":
qtbot.keyClick(nwGUI.docEditor, c, delay=typeDelay) qtbot.keyClick(nwGUI.docEditor, c, delay=typeDelay)
@@ -192,7 +192,7 @@ def testGuiEditor_Main(qtbot, monkeypatch, nwGUI, fncDir, fncProj, refDir, outDi
nwGUI._autoSaveProject() nwGUI._autoSaveProject()
# Select the 'New Scene' file # Select the 'New Scene' file
nwGUI.setFocus(1) nwGUI.switchFocus(nwWidget.TREE)
nwGUI.treeView.clearSelection() nwGUI.treeView.clearSelection()
nwGUI.treeView._getTreeItem("73475cb40a568").setExpanded(True) nwGUI.treeView._getTreeItem("73475cb40a568").setExpanded(True)
nwGUI.treeView._getTreeItem("31489056e0916").setExpanded(True) nwGUI.treeView._getTreeItem("31489056e0916").setExpanded(True)
@@ -200,7 +200,7 @@ def testGuiEditor_Main(qtbot, monkeypatch, nwGUI, fncDir, fncProj, refDir, outDi
assert nwGUI.openSelectedItem() assert nwGUI.openSelectedItem()
# Type something into the document # Type something into the document
nwGUI.setFocus(2) nwGUI.switchFocus(nwWidget.EDITOR)
qtbot.keyClick(nwGUI.docEditor, "a", modifier=Qt.ControlModifier, delay=keyDelay) qtbot.keyClick(nwGUI.docEditor, "a", modifier=Qt.ControlModifier, delay=keyDelay)
for c in "# Novel": for c in "# Novel":
qtbot.keyClick(nwGUI.docEditor, c, delay=typeDelay) qtbot.keyClick(nwGUI.docEditor, c, delay=typeDelay)
@@ -300,7 +300,7 @@ def testGuiEditor_Main(qtbot, monkeypatch, nwGUI, fncDir, fncProj, refDir, outDi
qtbot.wait(stepDelay) qtbot.wait(stepDelay)
# Open and view the edited document # Open and view the edited document
nwGUI.setFocus(3) nwGUI.switchFocus(nwWidget.VIEWER)
assert nwGUI.openDocument("0e17daca5f3e1") assert nwGUI.openDocument("0e17daca5f3e1")
assert nwGUI.viewDocument("0e17daca5f3e1") assert nwGUI.viewDocument("0e17daca5f3e1")
qtbot.wait(stepDelay) qtbot.wait(stepDelay)
+4 -2
View File
@@ -28,7 +28,9 @@ from PyQt5.QtGui import QTextCursor, QTextBlock
from PyQt5.QtWidgets import QAction, QFileDialog, QMessageBox from PyQt5.QtWidgets import QAction, QFileDialog, QMessageBox
from nw.gui.doceditor import GuiDocEditor from nw.gui.doceditor import GuiDocEditor
from nw.constants import nwUnicode, nwDocAction, nwDocInsert, nwKeyWords from nw.constants import (
nwUnicode, nwDocAction, nwDocInsert, nwKeyWords, nwWidget
)
keyDelay = 2 keyDelay = 2
typeDelay = 1 typeDelay = 1
@@ -366,7 +368,7 @@ def testGuiMenu_Insert(qtbot, monkeypatch, nwGUI, fncDir, fncProj):
assert nwGUI.treeView._getTreeItem("0e17daca5f3e1") is not None assert nwGUI.treeView._getTreeItem("0e17daca5f3e1") is not None
nwGUI.setFocus(1) nwGUI.switchFocus(nwWidget.TREE)
nwGUI.treeView.clearSelection() nwGUI.treeView.clearSelection()
nwGUI.treeView._getTreeItem("0e17daca5f3e1").setSelected(True) nwGUI.treeView._getTreeItem("0e17daca5f3e1").setSelected(True)
assert nwGUI.openSelectedItem() assert nwGUI.openSelectedItem()