Added exit yes/no dialog

This commit is contained in:
Veronica K. B. Olsen
2019-05-25 19:59:43 +02:00
parent f986325f4e
commit 9dd956bc92
3 changed files with 21 additions and 7 deletions
+2 -3
View File
@@ -13,7 +13,7 @@
import logging import logging
import nw import nw
from PyQt5.QtWidgets import qApp, QMenuBar, QAction, QMessageBox from PyQt5.QtWidgets import QMenuBar, QAction, QMessageBox
from PyQt5.QtGui import QIcon from PyQt5.QtGui import QIcon
from nw.enum import nwItemType, nwItemClass, nwDocAction from nw.enum import nwItemType, nwItemClass, nwDocAction
@@ -91,8 +91,7 @@ class GuiMainMenu(QMenuBar):
def _menuExit(self): def _menuExit(self):
self.theParent.closeMain() self.theParent.closeMain()
qApp.quit() return
return True
def _toggleSpellCheck(self): def _toggleSpellCheck(self):
self.theProject.setSpellCheck(self.toolsSpellCheck.isChecked()) self.theProject.setSpellCheck(self.toolsSpellCheck.isChecked())
+16 -4
View File
@@ -14,7 +14,7 @@ import logging
import nw import nw
from os import path from os import path
from PyQt5.QtWidgets import QWidget, QMainWindow, QVBoxLayout, QFrame, QSplitter, QFileDialog, QStackedWidget, QShortcut, QMessageBox from PyQt5.QtWidgets import qApp, QWidget, QMainWindow, QVBoxLayout, QFrame, QSplitter, QFileDialog, QStackedWidget, QShortcut, QMessageBox
from PyQt5.QtGui import QIcon, QPixmap, QColor from PyQt5.QtGui import QIcon, QPixmap, QColor
from PyQt5.QtCore import Qt, QTimer from PyQt5.QtCore import Qt, QTimer
@@ -428,7 +428,17 @@ class GuiMain(QMainWindow):
# Main Window Actions # Main Window Actions
## ##
def closeMain(self): def closeMain(self, isYes=False):
if not isYes:
msgBox = QMessageBox()
msgRes = msgBox.question(
self, "Exit",
"Do you want to exit %s?" % nw.__package__
)
if msgRes != QMessageBox.Yes:
return False
logger.info("Exiting %s" % nw.__package__) logger.info("Exiting %s" % nw.__package__)
if self._takeDocumentAction(): if self._takeDocumentAction():
self.saveDocument() self.saveDocument()
@@ -439,7 +449,10 @@ class GuiMain(QMainWindow):
self.mainConf.setMainPanePos(self.splitMain.sizes()) self.mainConf.setMainPanePos(self.splitMain.sizes())
self.mainConf.setDocPanePos(self.splitView.sizes()) self.mainConf.setDocPanePos(self.splitView.sizes())
self.mainConf.saveConfig() self.mainConf.saveConfig()
return
qApp.quit()
return True
def setFocus(self, paneNo): def setFocus(self, paneNo):
if paneNo == 1: if paneNo == 1:
@@ -526,7 +539,6 @@ class GuiMain(QMainWindow):
def closeEvent(self, theEvent): def closeEvent(self, theEvent):
self.closeMain() self.closeMain()
QMainWindow.closeEvent(self,theEvent)
return return
## ##
+3
View File
@@ -155,6 +155,7 @@ def testMainWindows(qtbot, nwTempGUI, nwRef):
sceneFile = path.join(nwTempGUI,"data_3","1489056e0916_main.nwd") sceneFile = path.join(nwTempGUI,"data_3","1489056e0916_main.nwd")
assert cmpFiles(sceneFile, path.join(nwRef,"gui","1_1489056e0916_main.nwd")) assert cmpFiles(sceneFile, path.join(nwRef,"gui","1_1489056e0916_main.nwd"))
nwGUI.closeMain(True)
# qtbot.stopForInteraction() # qtbot.stopForInteraction()
@pytest.mark.gui @pytest.mark.gui
@@ -216,6 +217,7 @@ def testProjectEditor(qtbot, nwTempGUI, nwRef):
projFile = path.join(nwTempGUI,"nwProject.nwx") projFile = path.join(nwTempGUI,"nwProject.nwx")
assert cmpFiles(projFile, path.join(nwRef,"gui","2_nwProject.nwx"), [2]) assert cmpFiles(projFile, path.join(nwRef,"gui","2_nwProject.nwx"), [2])
nwGUI.closeMain(True)
# qtbot.stopForInteraction() # qtbot.stopForInteraction()
@pytest.mark.gui @pytest.mark.gui
@@ -261,4 +263,5 @@ def testItemEditor(qtbot, nwTempGUI, nwRef):
projFile = path.join(nwTempGUI,"nwProject.nwx") projFile = path.join(nwTempGUI,"nwProject.nwx")
assert cmpFiles(projFile, path.join(nwRef,"gui","3_nwProject.nwx"), [2]) assert cmpFiles(projFile, path.join(nwRef,"gui","3_nwProject.nwx"), [2])
nwGUI.closeMain(True)
# qtbot.stopForInteraction() # qtbot.stopForInteraction()