Commit 2f93d1a8 authored by Pierre-Antoine Rouby's avatar Pierre-Antoine Rouby
Browse files

LC: Use KP delegation.

No related merge requests found
Pipeline #55331 passed with stages
in 3 minutes and 25 seconds
Showing with 39 additions and 4 deletions
+39 -4
...@@ -63,6 +63,14 @@ class ComboBoxDelegate(QItemDelegate): ...@@ -63,6 +63,14 @@ class ComboBoxDelegate(QItemDelegate):
self._tab = tab self._tab = tab
self._trad = trad 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): def createEditor(self, parent, option, index):
self.editor = QComboBox(parent) self.editor = QComboBox(parent)
long_types = self._trad.get_dict("long_types") long_types = self._trad.get_dict("long_types")
...@@ -78,6 +86,17 @@ class ComboBoxDelegate(QItemDelegate): ...@@ -78,6 +86,17 @@ class ComboBoxDelegate(QItemDelegate):
) )
) )
self.editor.addItems(lst) 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: else:
self.editor.addItems( self.editor.addItems(
[self._trad['not_associated']] + [self._trad['not_associated']] +
...@@ -136,9 +155,9 @@ class TableModel(PamhyrTableModel): ...@@ -136,9 +155,9 @@ class TableModel(PamhyrTableModel):
return self._trad['not_associated'] return self._trad['not_associated']
return n.name return n.name
elif self._headers[column] == "begin_kp": 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": 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() return QVariant()
......
...@@ -88,6 +88,8 @@ class LateralContributionWindow(PamhyrWindow): ...@@ -88,6 +88,8 @@ class LateralContributionWindow(PamhyrWindow):
def setup_table(self): def setup_table(self):
self._table = {} self._table = {}
self._delegate_kp = []
for t in ["liquid", "solid", "suspenssion"]: for t in ["liquid", "solid", "suspenssion"]:
self._delegate_type = ComboBoxDelegate( self._delegate_type = ComboBoxDelegate(
data=self._study.river, data=self._study.river,
...@@ -96,6 +98,16 @@ class LateralContributionWindow(PamhyrWindow): ...@@ -96,6 +98,16 @@ class LateralContributionWindow(PamhyrWindow):
trad=self._trad, trad=self._trad,
parent=self 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( self._delegate_edge = ComboBoxDelegate(
data=self._study.river, data=self._study.river,
mode="edge", mode="edge",
...@@ -112,6 +124,8 @@ class LateralContributionWindow(PamhyrWindow): ...@@ -112,6 +124,8 @@ class LateralContributionWindow(PamhyrWindow):
delegates={ delegates={
"type": self._delegate_type, "type": self._delegate_type,
"edge": self._delegate_edge, "edge": self._delegate_edge,
"begin_kp": delegate_kp,
"end_kp": delegate_kp,
}, },
data=self._study.river, data=self._study.river,
undo=self._undo_stack, undo=self._undo_stack,
...@@ -185,8 +199,7 @@ class LateralContributionWindow(PamhyrWindow): ...@@ -185,8 +199,7 @@ class LateralContributionWindow(PamhyrWindow):
highlight = None highlight = None
if len(rows) > 0: if len(rows) > 0:
edge = self._study\ edge = self._study.river\
.river\
.lateral_contribution\ .lateral_contribution\
.get(tab, rows[0])\ .get(tab, rows[0])\
.edge .edge
...@@ -195,6 +208,9 @@ class LateralContributionWindow(PamhyrWindow): ...@@ -195,6 +208,9 @@ class LateralContributionWindow(PamhyrWindow):
lc = self._lcs.get(tab, rows[0]) lc = self._lcs.get(tab, rows[0])
highlight = (lc.begin_kp, lc.end_kp) highlight = (lc.begin_kp, lc.end_kp)
for delegate in self._delegate_kp:
delegate.data = edge
self.plot = PlotXY( self.plot = PlotXY(
canvas=self.canvas, canvas=self.canvas,
data=data, data=data,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment