Skip to content

Commit 714ac1d

Browse files
committed
Trying warning box to fix the pytest hang
1 parent 844d509 commit 714ac1d

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

cq_editor/main_window.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -219,17 +219,20 @@ def closeEvent(self, event):
219219

220220
if self.components["editor"].document().isModified():
221221

222-
dlg = QMessageBox(self)
223-
dlg.setWindowTitle("Unsaved changes")
224-
dlg.setText("Save changes before closing?")
225-
dlg.setStandardButtons(
226-
QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel
222+
rv = QMessageBox.warning(
223+
self,
224+
"Unsaved changes",
225+
"Save changes before closing?",
226+
QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel,
227+
QMessageBox.Save,
227228
)
228-
dlg.setDefaultButton(QMessageBox.Save)
229-
rv = dlg.exec_()
230229

231230
if rv == QMessageBox.Save:
232231
self.components["editor"].save()
232+
if self.components["editor"].document().isModified():
233+
# Save As was cancelled - abort the close.
234+
event.ignore()
235+
return
233236
event.accept()
234237
super(MainWindow, self).closeEvent(event)
235238
elif rv == QMessageBox.Discard:

tests/test_app.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ def main_clean(qtbot, mocker):
162162
def main_clean_do_not_close(qtbot, mocker):
163163

164164
mocker.patch.object(QMessageBox, "question", return_value=QMessageBox.No)
165-
mocker.patch.object(QMessageBox, "exec_", return_value=QMessageBox.Cancel)
165+
mocker.patch.object(QMessageBox, "warning", return_value=QMessageBox.Cancel)
166166

167167
win = MainWindow()
168168
win.show()
@@ -180,7 +180,7 @@ def main_clean_do_not_close(qtbot, mocker):
180180
def main_multi(qtbot, mocker):
181181

182182
mocker.patch.object(QMessageBox, "question", return_value=QMessageBox.Yes)
183-
mocker.patch.object(QMessageBox, "exec_", return_value=QMessageBox.Discard)
183+
mocker.patch.object(QMessageBox, "warning", return_value=QMessageBox.Discard)
184184
mocker.patch.object(QFileDialog, "getSaveFileName", return_value=("out.step", ""))
185185

186186
win = MainWindow()

0 commit comments

Comments
 (0)