diff --git a/src/Model/Geometry/ProfileXYZ.py b/src/Model/Geometry/ProfileXYZ.py index 7936342aee3b547e13ea36c927edfd5e5a2877bf..bb3faa0b7eba7908f72b5eb4d004e94ec24cbab0 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 e8530b1a24faac926b642aeb9b53ac567811e4c8..cf547875e1afedce0d448f1f45655ff5e5f85858 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()