From 2f93d1a83f3e5a3c814bd2ede366bc8d776c66eb Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Wed, 15 May 2024 15:18:33 +0200 Subject: [PATCH] LC: Use KP delegation. --- src/View/LateralContribution/Table.py | 23 +++++++++++++++++++++-- src/View/LateralContribution/Window.py | 20 ++++++++++++++++++-- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/src/View/LateralContribution/Table.py b/src/View/LateralContribution/Table.py index 3b632392..c6684f6c 100644 --- a/src/View/LateralContribution/Table.py +++ b/src/View/LateralContribution/Table.py @@ -63,6 +63,14 @@ class ComboBoxDelegate(QItemDelegate): self._tab = tab self._trad = trad + @property + def data(self): + return self._data + + @data.setter + def data(self, data): + self._data = data + def createEditor(self, parent, option, index): self.editor = QComboBox(parent) long_types = self._trad.get_dict("long_types") @@ -78,6 +86,17 @@ class ComboBoxDelegate(QItemDelegate): ) ) self.editor.addItems(lst) + elif self._mode == "kp": + if self._data is None: + self.editor.addItems( + ["0"] + ) + else: + self.editor.addItems( + list( + map(str, self._data.reach.get_kp()) + ) + ) else: self.editor.addItems( [self._trad['not_associated']] + @@ -136,9 +155,9 @@ class TableModel(PamhyrTableModel): return self._trad['not_associated'] return n.name elif self._headers[column] == "begin_kp": - return self._lst.get(self._tab, row).begin_kp + return str(self._lst.get(self._tab, row).begin_kp) elif self._headers[column] == "end_kp": - return self._lst.get(self._tab, row).end_kp + return str(self._lst.get(self._tab, row).end_kp) return QVariant() diff --git a/src/View/LateralContribution/Window.py b/src/View/LateralContribution/Window.py index 48ec3cc2..879955bb 100644 --- a/src/View/LateralContribution/Window.py +++ b/src/View/LateralContribution/Window.py @@ -88,6 +88,8 @@ class LateralContributionWindow(PamhyrWindow): def setup_table(self): self._table = {} + self._delegate_kp = [] + for t in ["liquid", "solid", "suspenssion"]: self._delegate_type = ComboBoxDelegate( data=self._study.river, @@ -96,6 +98,16 @@ class LateralContributionWindow(PamhyrWindow): trad=self._trad, parent=self ) + + delegate_kp = ComboBoxDelegate( + data=None, + mode="kp", + tab=t, + trad=self._trad, + parent=self + ) + self._delegate_kp.append(delegate_kp) + self._delegate_edge = ComboBoxDelegate( data=self._study.river, mode="edge", @@ -112,6 +124,8 @@ class LateralContributionWindow(PamhyrWindow): delegates={ "type": self._delegate_type, "edge": self._delegate_edge, + "begin_kp": delegate_kp, + "end_kp": delegate_kp, }, data=self._study.river, undo=self._undo_stack, @@ -185,8 +199,7 @@ class LateralContributionWindow(PamhyrWindow): highlight = None if len(rows) > 0: - edge = self._study\ - .river\ + edge = self._study.river\ .lateral_contribution\ .get(tab, rows[0])\ .edge @@ -195,6 +208,9 @@ class LateralContributionWindow(PamhyrWindow): lc = self._lcs.get(tab, rows[0]) highlight = (lc.begin_kp, lc.end_kp) + for delegate in self._delegate_kp: + delegate.data = edge + self.plot = PlotXY( canvas=self.canvas, data=data, -- GitLab