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()