diff --git a/src/View/InitialConditions/PlotDischarge.py b/src/View/InitialConditions/PlotDischarge.py index 7c43c1e5..5ab0b501 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 82946e84..a9f4c6ad 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 e1ab44f4..1119e9d8 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)