From 8ca21c413f3d27c809eef6ebdaafe235db3069ac Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Tue, 21 May 2024 10:51:34 +0200 Subject: [PATCH] IC: Fix display update and optimized discharge plot update. --- src/View/InitialConditions/PlotDischarge.py | 29 ++++++++++++++++++--- src/View/InitialConditions/Window.py | 7 ++++- 2 files changed, 32 insertions(+), 4 deletions(-) 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() -- GitLab