From d922436ada65947ecd4b250e1bbe17e104ecd5c1 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby Date: Thu, 21 May 2026 16:26:51 +0200 Subject: [PATCH] Scenario: Add Discard option to scenario switching dialog. --- src/View/Scenarios/GraphWidget.py | 15 ++++++++++----- src/View/Translate.py | 1 + 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/View/Scenarios/GraphWidget.py b/src/View/Scenarios/GraphWidget.py index 0fff07d3..8b8ea3fa 100644 --- a/src/View/Scenarios/GraphWidget.py +++ b/src/View/Scenarios/GraphWidget.py @@ -426,30 +426,35 @@ class GraphWidget(QGraphicsView): dlg.setWindowTitle(self._trad["mb_save_title"]) dlg.setText(self._trad["mb_save_msg"]) - opt = QMessageBox.Save | QMessageBox.Cancel + opt = QMessageBox.Cancel | QMessageBox.Save | QMessageBox.Discard dlg.setStandardButtons(opt) dlg.setIcon(QMessageBox.Warning) dlg.button(QMessageBox.Save).setText(self._trad["Save"]) + dlg.button(QMessageBox.Discard).setText(self._trad["Don't save"]) dlg.button(QMessageBox.Cancel).setText(self._trad["Cancel"]) res = dlg.exec() if res == QMessageBox.Save: - return True + return "Save" elif res == QMessageBox.Cancel: - return False + return "Cancel" + else: + return "Discard" def select_scenario(self, item): if type(item) is not ScenarioItem: return - must_saved = self.dialog_save() + must_save = self.dialog_save() + if must_save == "Cancel": + return def fn(): self._close_other_window() - if must_saved: + if must_save == "Save": self._study.save() self._undo.push( diff --git a/src/View/Translate.py b/src/View/Translate.py index 82f29b50..c0872a74 100644 --- a/src/View/Translate.py +++ b/src/View/Translate.py @@ -281,6 +281,7 @@ class MainTranslate(UnitTranslate): self._dict["No"] = _translate("MainWindow", "No") self._dict["Cancel"] = _translate("MainWindow", "Cancel") self._dict["Save"] = _translate("MainWindow", "Save") + self._dict["Don't save"] = _translate("MainWindow", "Don't save") self._dict["Close"] = _translate("MainWindow", "Close") self._dict["Solver"] = _translate("MainWindow", "Solver")