LC: Use KP delegation.

setup.py
Pierre-Antoine Rouby 2024-05-15 15:18:33 +02:00
parent 653a26fee1
commit 2f93d1a83f
2 changed files with 39 additions and 4 deletions

View File

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

View File

@ -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,