diff --git a/src/View/BoundaryCondition/Edit/GenerateDialog.py b/src/View/BoundaryCondition/Edit/GenerateDialog.py
new file mode 100644
index 00000000..3b07a4d0
--- /dev/null
+++ b/src/View/BoundaryCondition/Edit/GenerateDialog.py
@@ -0,0 +1,68 @@
+# GenerateDialog.py -- Pamhyr
+# Copyright (C) 2023-2024 INRAE
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+# -*- coding: utf-8 -*-
+
+from View.Tools.PamhyrWindow import PamhyrDialog
+
+from PyQt5.QtGui import (
+ QKeySequence,
+)
+
+from PyQt5.QtCore import (
+ Qt, QVariant, QAbstractTableModel,
+)
+
+from PyQt5.QtWidgets import (
+ QDialogButtonBox, QComboBox, QUndoStack, QShortcut,
+ QDoubleSpinBox, QCheckBox, QPushButton
+)
+
+
+class GenerateDialog(PamhyrDialog):
+ _pamhyr_ui = "BoundaryConditionsDialogGenerator"
+ _pamhyr_name = "Boundary Condition Options"
+
+ def __init__(self,
+ value,
+ reach,
+ title="Boundary Condition Options",
+ trad=None,
+ parent=None):
+ super(GenerateDialog, self).__init__(
+ title=trad[self._pamhyr_name],
+ options=[],
+ trad=trad,
+ parent=parent
+ )
+
+ self.value = value
+ self.find(QDoubleSpinBox, "doubleSpinBox").setValue(self.value)
+ self.reach = reach
+ self.find(QPushButton, "EstimateButton").clicked.connect(
+ self.estimate
+ )
+
+ def accept(self):
+ self.value = self.find(QDoubleSpinBox, "doubleSpinBox").value()
+ super().accept()
+
+ def reject(self):
+ self.close()
+
+ def estimate(self):
+ self.value = abs(self.reach.get_incline_median_mean())
+ self.find(QDoubleSpinBox, "doubleSpinBox").setValue(self.value)
diff --git a/src/View/BoundaryCondition/Edit/Window.py b/src/View/BoundaryCondition/Edit/Window.py
index d639a3a3..168958bd 100644
--- a/src/View/BoundaryCondition/Edit/Window.py
+++ b/src/View/BoundaryCondition/Edit/Window.py
@@ -50,6 +50,7 @@ from View.BoundaryCondition.Edit.translate import BCETranslate
from View.BoundaryCondition.Edit.UndoCommand import SetMetaDataCommand
from View.BoundaryCondition.Edit.Table import TableModel
from View.BoundaryCondition.Edit.Plot import Plot
+from View.BoundaryCondition.Edit.GenerateDialog import GenerateDialog
_translate = QCoreApplication.translate
@@ -332,7 +333,13 @@ class EditBoundaryConditionWindow(PamhyrWindow):
node = self._data.node
reach = self._data.reach(self._study.river)[0]
profile = reach.profiles[-1]
- incline = reach.get_incline_median_mean()
+ incline = abs(reach.get_incline_median_mean())
+ dlg = GenerateDialog(incline,
+ reach,
+ trad=self._trad,
+ parent=self)
+ if dlg.exec():
+ incline = dlg.value
frictions = reach._parent.frictions.frictions
z_min = profile.z_min()
z_max = profile.z_max()
@@ -355,7 +362,6 @@ class EditBoundaryConditionWindow(PamhyrWindow):
node = self._data.node
reach = self._data.reach(self._study.river)[0]
profile = reach.profiles[-1]
- incline = reach.get_incline_median_mean()
z_min = profile.z_min()
z_max = profile.z_max()
height = [(i)*(z_max-z_min)/50 for i in range(51)]
diff --git a/src/View/BoundaryCondition/Edit/translate.py b/src/View/BoundaryCondition/Edit/translate.py
index 9d835550..006c49df 100644
--- a/src/View/BoundaryCondition/Edit/translate.py
+++ b/src/View/BoundaryCondition/Edit/translate.py
@@ -32,6 +32,8 @@ class BCETranslate(BCTranslate):
self._dict["Edit Boundary Conditions"] = _translate(
"BoundaryCondition", "Edit boundary conditions"
)
+ self._dict["Boundary Condition Options"] = _translate(
+ "BoundaryCondition", "Boundary Condition Options")
self._sub_dict["table_headers"] = {
"x": _translate("BoundaryCondition", "X"),
diff --git a/src/View/ui/BoundaryConditionsDialogGenerator.ui b/src/View/ui/BoundaryConditionsDialogGenerator.ui
new file mode 100644
index 00000000..6d3793bf
--- /dev/null
+++ b/src/View/ui/BoundaryConditionsDialogGenerator.ui
@@ -0,0 +1,98 @@
+
+
+ Dialog
+
+
+
+ 0
+ 0
+ 356
+ 107
+
+
+
+ Options
+
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QDialogButtonBox::Cancel|QDialogButtonBox::Ok
+
+
+
+ -
+
+
-
+
+
+ Slope
+
+
+
+ -
+
+
+ 6
+
+
+ 999999.998999999952503
+
+
+
+ -
+
+
+ Estimate
+
+
+
+
+
+
+
+
+
+
+ buttonBox
+ accepted()
+ Dialog
+ accept()
+
+
+ 248
+ 254
+
+
+ 157
+ 274
+
+
+
+
+ buttonBox
+ rejected()
+ Dialog
+ reject()
+
+
+ 316
+ 260
+
+
+ 286
+ 274
+
+
+
+
+