diff --git a/src/View/Scenarios/GraphWidget.py b/src/View/Scenarios/GraphWidget.py index 4bd1267e..6b444272 100644 --- a/src/View/Scenarios/GraphWidget.py +++ b/src/View/Scenarios/GraphWidget.py @@ -34,6 +34,8 @@ from PyQt5.QtWidgets import ( QGraphicsItem, QGraphicsTextItem, QMenu, ) +from View.WaitingDialog import WaitingDialog + from View.Scenarios.UndoCommand import * from View.Scenarios.ContextMenu import ( DefaultMenu, ScenarioMenu, @@ -366,6 +368,14 @@ class GraphWidget(QGraphicsView): self.update() super(GraphWidget, self).mouseMoveEvent(event) + def exec_with_waiting_window(self, fn, action_str): + dlg = WaitingDialog( + payload_fn=fn, + title=action_str, + parent=self.parent + ) + dlg.exec_() + # Contextual menu def contextMenuEvent(self, event): @@ -397,15 +407,18 @@ class GraphWidget(QGraphicsView): if type(item) is not ScenarioItem: return - self._study.save() - self._study.reload_from_scenario(item.scenario) + def fn(): + self._study.save() + self._study.reload_from_scenario(item.scenario) + self.exec_with_waiting_window(fn, "select_scenario") self.changeScenario.emit(self.sender()) def new_scenario(self, pos): - self._study.save() - - scenario = self._study.new_scenario_from_current() - scenario.set_pos(pos.x(), pos.y()) + def fn(): + self._study.save() + scenario = self._study.new_scenario_from_current() + scenario.set_pos(pos.x(), pos.y()) + self.exec_with_waiting_window(fn, "new_scenario") self.changeScenario.emit(self.sender())