diff --git a/src/View/InitialConditions/PlotDischarge.py b/src/View/InitialConditions/PlotDischarge.py index 7c43c1e557815071c4908de1de08783b1034cc91..5ab0b5012677c7e7b549bf302834b4f2e757ed0b 100644 --- a/src/View/InitialConditions/PlotDischarge.py +++ b/src/View/InitialConditions/PlotDischarge.py @@ -52,18 +52,41 @@ class PlotDischarge(PamhyrPlot): self._init = True def draw_data(self): - kp = self.data.reach.reach.get_kp() + self.line_discharge = [] if len(self.data) != 0: kp = self.data.get_kp() discharge = self.data.get_discharge() - self.line_kp_zmin = self.canvas.axes.plot( + line, = self.canvas.axes.plot( kp, discharge, color=self.color_plot, **self.plot_default_kargs ) + self.line_discharge.append(line) @timer def update(self, ind=None): - self.draw() + if not self._init: + self.draw() + + self.update_data() + + self.update_idle() + + def update_data(self): + if len(self.data) == len(self.line_discharge): + kp = self.data.get_kp() + discharge = self.data.get_discharge() + + line, = self.canvas.axes.plot( + kp, discharge, + color=self.color_plot, + **self.plot_default_kargs + ) + self.line_discharge.append(line) + else: + for line in self.line_discharge: + line.remove() + + self._draw_data() diff --git a/src/View/InitialConditions/Window.py b/src/View/InitialConditions/Window.py index 82946e84d2bb6c0b48fe16a8742c77039709742b..a9f4c6adbbca142b1aebc9b0bbf1ad30aa4ac3e0 100644 --- a/src/View/InitialConditions/Window.py +++ b/src/View/InitialConditions/Window.py @@ -194,8 +194,13 @@ class InitialConditionsWindow(PamhyrWindow): return rows[0].row() def update(self): + self.update(propagate=False) + + def _update(self, propagate=True): self._update_plot() - self._propagate_update(key=Modules.INITIAL_CONDITION) + + if propagate: + self._propagate_update(key=Modules.INITIAL_CONDITION) def _update_plot(self): self.plot_1.draw() diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py index e1ab44f49d5e4f126659c65f8de4105d9efecccd..1119e9d80cd1a2dd1087b6811b1a98a8bddc30d3 100644 --- a/src/View/MainWindow.py +++ b/src/View/MainWindow.py @@ -448,8 +448,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): if Modules.CONFIG in keys: self._do_update_config() - if Modules.STUDY in keys: - self._tab_widget_info.update() + self._do_propagate_update_info_tab(keys) logger.debug(f"Propagation of {keys}") for _, window in self.sub_win_list: @@ -458,6 +457,18 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): self._tab_widget_checker.update(modules=keys) + def _do_propagate_update_info_tab(self, keys): + modules = Modules.modelling_list() + modules.append(Modules.STUDY) + + has_info_mod = reduce( + lambda acc, m: acc or (m in keys), + modules, False + ) + + if has_info_mod: + self._tab_widget_info.update() + def _do_propagate_update_rec(self, window, keys): for _, win in window.sub_win_list: win._propagated_update(key=keys)