HS: Use profiles name instead of RK (select only).

compare_results
Pierre-Antoine Rouby 2024-09-30 17:07:11 +02:00
parent d417fe96c4
commit 5c7edbef8a
2 changed files with 28 additions and 2 deletions

View File

@ -253,6 +253,15 @@ class ProfileXYZ(Profile, SQLSubModel):
return point
def display_name(self):
name = ""
if self.name != "":
name += f"{self.name} "
name += f"({self.rk})"
return name
def x(self):
return [point.x for point in self.points]

View File

@ -65,7 +65,8 @@ class ComboBoxDelegate(QItemDelegate):
if reach is not None:
val = list(
map(
lambda rk: str(rk), reach.reach.get_rk()
lambda p: p.display_name(),
reach.reach.profiles
)
)
else:
@ -89,7 +90,23 @@ class ComboBoxDelegate(QItemDelegate):
def setModelData(self, editor, model, index):
text = str(editor.currentText())
model.setData(index, text)
if self._mode == "rk":
reach = self._data.hydraulic_structures\
.get(index.row())\
.input_reach
profiles = list(
filter(
lambda p: p.display_name() == text,
reach.reach.profiles
)
)
value = profiles[0].rk if len(profiles) > 0 else None
else:
value = text
model.setData(index, value)
editor.close()
editor.deleteLater()