Block welcome dialog open button when project list is not visible
This commit is contained in:
@@ -108,7 +108,7 @@ class GuiWelcome(QDialog):
|
||||
# =======
|
||||
|
||||
self.btnBox = QDialogButtonBox(QDialogButtonBox.Open | QDialogButtonBox.Cancel, self)
|
||||
self.btnBox.accepted.connect(self.tabOpen.openSelectedItem)
|
||||
self.btnBox.accepted.connect(self._openSelectedItem)
|
||||
self.btnBox.rejected.connect(self.close)
|
||||
|
||||
self.newButton = self.btnBox.addButton(self.tr("New Project"), QDialogButtonBox.ActionRole)
|
||||
@@ -195,6 +195,13 @@ class GuiWelcome(QDialog):
|
||||
self._openProjectPath(path)
|
||||
return
|
||||
|
||||
@pyqtSlot()
|
||||
def _openSelectedItem(self) -> None:
|
||||
"""Open the currently selected project item."""
|
||||
if self.mainStack.currentWidget() == self.tabOpen:
|
||||
self.tabOpen.openSelectedItem()
|
||||
return
|
||||
|
||||
@pyqtSlot(Path)
|
||||
def _openProjectPath(self, path: Path) -> None:
|
||||
"""Emit a project open signal."""
|
||||
|
||||
@@ -27,7 +27,7 @@ from datetime import datetime
|
||||
from pytestqt.qtbot import QtBot
|
||||
|
||||
from PyQt5.QtCore import QPoint, Qt
|
||||
from PyQt5.QtWidgets import QAction, QFileDialog, QMenu
|
||||
from PyQt5.QtWidgets import QAction, QDialogButtonBox, QFileDialog, QMenu
|
||||
|
||||
from novelwriter import CONFIG, SHARED
|
||||
from novelwriter.enum import nwItemClass
|
||||
@@ -103,7 +103,7 @@ def testToolWelcome_Open(qtbot: QtBot, monkeypatch, nwGUI, fncPath):
|
||||
qtbot.mouseClick(vPort, Qt.MouseButton.LeftButton, pos=posTwo, delay=10)
|
||||
assert tabOpen.selectedPath.text() == "Path: /stuff/project_one"
|
||||
|
||||
# Double Click item
|
||||
# Double click item
|
||||
qtbot.mouseClick(vPort, Qt.MouseButton.LeftButton, pos=posTwo, delay=10)
|
||||
with monkeypatch.context() as mp:
|
||||
mp.setattr(welcome, "close", lambda *a: None)
|
||||
@@ -111,6 +111,14 @@ def testToolWelcome_Open(qtbot: QtBot, monkeypatch, nwGUI, fncPath):
|
||||
qtbot.mouseDClick(vPort, Qt.MouseButton.LeftButton, pos=posTwo, delay=10)
|
||||
assert signal.args and signal.args[0] == Path("/stuff/project_one")
|
||||
|
||||
# Press open button
|
||||
qtbot.mouseClick(vPort, Qt.MouseButton.LeftButton, pos=posTwo, delay=10)
|
||||
with monkeypatch.context() as mp:
|
||||
mp.setattr(welcome, "close", lambda *a: None)
|
||||
with qtbot.waitSignal(welcome.openProjectRequest, timeout=5000) as signal:
|
||||
welcome.btnBox.button(QDialogButtonBox.StandardButton.Open).click()
|
||||
assert signal.args and signal.args[0] == Path("/stuff/project_one")
|
||||
|
||||
# Context Menu
|
||||
def getMenuForPos(pos: QPoint) -> QMenu | None:
|
||||
nonlocal tabOpen
|
||||
|
||||
Reference in New Issue
Block a user