diff --git a/src/View/Scenarios/GraphWidget.py b/src/View/Scenarios/GraphWidget.py index 2766d6b9..7405bef0 100644 --- a/src/View/Scenarios/GraphWidget.py +++ b/src/View/Scenarios/GraphWidget.py @@ -31,7 +31,7 @@ from PyQt5.QtGui import ( ) from PyQt5.QtWidgets import ( QApplication, QGraphicsScene, QGraphicsView, - QGraphicsItem, QGraphicsTextItem, QMenu, + QGraphicsItem, QGraphicsTextItem, QMenu, QMessageBox, ) from View.WaitingDialog import WaitingDialog @@ -410,13 +410,37 @@ class GraphWidget(QGraphicsView): ) m.run() + def dialog_save(self): + dlg = QMessageBox(self) + + dlg.setWindowTitle(self._trad["mb_save_title"]) + dlg.setText(self._trad["mb_save_msg"]) + opt = QMessageBox.Save | QMessageBox.Cancel + + dlg.setStandardButtons(opt) + dlg.setIcon(QMessageBox.Warning) + dlg.button(QMessageBox.Save).setText(self._trad["Save"]) + dlg.button(QMessageBox.Cancel).setText(self._trad["Cancel"]) + + res = dlg.exec() + + if res == QMessageBox.Save: + return True + elif res == QMessageBox.Cancel: + return False + def select_scenario(self, item): if type(item) is not ScenarioItem: return + must_saved = self.dialog_save() + def fn(): self._close_other_window() - self._study.save() + + if must_saved: + self._study.save() + self._undo.push( SelectScenariosCommand( self._study, diff --git a/src/View/Scenarios/translate.py b/src/View/Scenarios/translate.py index 4d1f929b..99bc5b25 100644 --- a/src/View/Scenarios/translate.py +++ b/src/View/Scenarios/translate.py @@ -66,3 +66,10 @@ class ScenariosTranslate(MainTranslate): self._dict["redo_waiting"] = _translate( "Scenarios", "Redo ..." ) + + self._dict["mb_save_title"] = _translate( + "Scenarios", "Save scenarios before scenarios switching" + ) + self._dict["mb_save_msg"] = _translate( + "Scenarios", "Save scenarios before scenarios switching ?" + )