diff --git a/src/View/BoundaryCondition/Edit/Window.py b/src/View/BoundaryCondition/Edit/Window.py index 34c9e503bf2c106960ef0267d14e8ced2c569ab7..dba64da5d8a6d5340f770f89d6573f889aabe713 100644 --- a/src/View/BoundaryCondition/Edit/Window.py +++ b/src/View/BoundaryCondition/Edit/Window.py @@ -204,12 +204,17 @@ class EditBoundaryConditionWindow(PamhyrWindow): self.find(QAction, "action_generate_critical").triggered.connect( self.generate_critical ) + self.find(QAction, "action_increasing").triggered.connect( + self.make_increasing + ) if self._data.bctype != "ZD" or not self._data.has_node: self.find(QAction, "action_generate_uniform").setVisible(False) self.find(QAction, "action_generate_critical").setVisible(False) + self.find(QAction, "action_increasing").setVisible(False) else: self.find(QAction, "action_generate_uniform").setVisible(True) self.find(QAction, "action_generate_critical").setVisible(True) + self.find(QAction, "action_increasing").setVisible(True) self._table.dataChanged.connect(self.update) self._table.layoutChanged.connect(self.update) @@ -382,3 +387,21 @@ class EditBoundaryConditionWindow(PamhyrWindow): height[i] += z_min self._table.replace_data(height, q) return + + def make_increasing(self): + if self._data.has_node: + node = self._data.node + if node is None: + return + if len(self._table._data) < 2: + return + h = [self._data.get_i(0)[0]] + q = [self._data.get_i(0)[1]] + for i in range(len(self._table._data)): + if i == 0: + continue + row = self._data.get_i(i) + if row[1] > q[-1]: + h.append(row[0]) + q.append(row[1]) + self._table.replace_data(h, q) diff --git a/src/View/ui/EditBoundaryConditions.ui b/src/View/ui/EditBoundaryConditions.ui index c2c8137818d02ca34fe432a4fd2d32e43fec7fc9..f24120f416f464e18bc4200d55e6a877a69aaff5 100644 --- a/src/View/ui/EditBoundaryConditions.ui +++ b/src/View/ui/EditBoundaryConditions.ui @@ -75,6 +75,7 @@ <addaction name="action_sort"/> <addaction name="action_generate_uniform"/> <addaction name="action_generate_critical"/> + <addaction name="action_increasing"/> </widget> <action name="action_add"> <property name="checkable"> @@ -140,6 +141,14 @@ <string>Generate rating curve as Q(z) = Sqrt(g*S(z)^3/L(z))</string> </property> </action> + <action name="action_increasing"> + <property name="text"> + <string>Make increasing</string> + </property> + <property name="toolTip"> + <string>Remove points to make the curve increasing</string> + </property> + </action> </widget> <resources/> <connections/> diff --git a/src/View/ui/InitialConditions_Dialog_Generator_Height.ui b/src/View/ui/InitialConditions_Dialog_Generator_Height.ui index ee015bd187ed1ba39c7d0e5ff23c71d852630f6e..414c3d1272c7e4ab0ce4e57931c65de9f9789682 100644 --- a/src/View/ui/InitialConditions_Dialog_Generator_Height.ui +++ b/src/View/ui/InitialConditions_Dialog_Generator_Height.ui @@ -22,7 +22,7 @@ <item> <widget class="QLabel" name="label"> <property name="text"> - <string>Upstream Height (m)</string> + <string>Upstream height (m)</string> </property> </widget> </item> @@ -64,7 +64,7 @@ <item> <widget class="QLabel" name="label_2"> <property name="text"> - <string>Downstream Height (m)</string> + <string>Downstream height (m)</string> </property> </widget> </item> @@ -95,7 +95,7 @@ <item> <widget class="QCheckBox" name="checkBox"> <property name="text"> - <string>Generate Constant Discharge</string> + <string>Generate constant discharge</string> </property> </widget> </item>