diff --git a/src/View/LateralContribution/Table.py b/src/View/LateralContribution/Table.py index 3b632392c0cfc081e1a9162aa1d08c681aa1ab7a..c6684f6c7ff34b5bf7f274b8f2d690667d92de3a 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 48ec3cc2e4505b73b4ccd87f3118b207e7c228d7..879955bbb72c7657a903d96c51e5c5ad13dd442c 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,