From 5c7edbef8a7b23630409cde2f781cd9bd9dac291 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Mon, 30 Sep 2024 17:07:11 +0200 Subject: [PATCH] HS: Use profiles name instead of RK (select only). --- src/Model/Geometry/ProfileXYZ.py | 9 +++++++++ src/View/HydraulicStructures/Table.py | 21 +++++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/Model/Geometry/ProfileXYZ.py b/src/Model/Geometry/ProfileXYZ.py index 7936342a..bb3faa0b 100644 --- a/src/Model/Geometry/ProfileXYZ.py +++ b/src/Model/Geometry/ProfileXYZ.py @@ -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] diff --git a/src/View/HydraulicStructures/Table.py b/src/View/HydraulicStructures/Table.py index e8530b1a..cf547875 100644 --- a/src/View/HydraulicStructures/Table.py +++ b/src/View/HydraulicStructures/Table.py @@ -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() -- GitLab