diff --git a/src/Model/Geometry/Reach.py b/src/Model/Geometry/Reach.py index c10b56fc50817e0b12264bc185e8288de0a8d275..3ef25793e744592f4b8c4b00d9a0903e9ed6f254 100644 --- a/src/Model/Geometry/Reach.py +++ b/src/Model/Geometry/Reach.py @@ -368,6 +368,9 @@ class Reach(SQLSubModel): def inter_profiles_rk(self): profiles = sorted(self.profiles, key=lambda p: p.rk) + if len(profiles) == 0: + return [] + first = profiles[0] last = profiles[-1] @@ -750,6 +753,9 @@ class Reach(SQLSubModel): cnt += 1 def get_incline(self): + if len(self.profiles) == 0: + return 0.0 + first = self.profile(0) last = self.profile(len(self) - 1) @@ -767,6 +773,9 @@ class Reach(SQLSubModel): def get_incline_mean(self): profiles = self.profiles + if len(profiles) == 0: + return 0.0 + previous = profiles[0] incline_acc = 0 @@ -790,6 +799,9 @@ class Reach(SQLSubModel): def get_incline_median(self): profiles = self.profiles + if len(profiles) == 0: + return 0.0 + previous = profiles[0] incline_acc = [] @@ -814,6 +826,9 @@ class Reach(SQLSubModel): def get_incline_median_mean(self): profiles = self.profiles + if len(profiles) == 0: + return 0.0 + previous = profiles[0] incline_acc = [] diff --git a/src/View/BoundaryCondition/Edit/Window.py b/src/View/BoundaryCondition/Edit/Window.py index 336a9671b4e7edfafcff4ca3cf70b7f541381b8a..a414dcaa70df7004e9a19fc9f0567f1916233873 100644 --- a/src/View/BoundaryCondition/Edit/Window.py +++ b/src/View/BoundaryCondition/Edit/Window.py @@ -347,6 +347,13 @@ class EditBoundaryConditionWindow(PamhyrWindow): if node is None: return reach = self._data.reach(self._study.river)[0] + if len(reach.profiles) == 0: + self.message_box( + text=self._trad["title_need_geometry"], + informative_text=self._trad["msg_need_geometry"] + ) + return + profile = reach.profiles[-1] dlg = GenerateDialog(self.slope_value, reach, @@ -379,6 +386,13 @@ class EditBoundaryConditionWindow(PamhyrWindow): if node is None: return reach = self._data.reach(self._study.river)[0] + if len(reach.profiles) == 0: + self.message_box( + text=self._trad["title_need_geometry"], + informative_text=self._trad["msg_need_geometry"] + ) + return + profile = reach.profiles[-1] z_min = profile.z_min() z_max = profile.z_max() diff --git a/src/View/BoundaryCondition/Edit/translate.py b/src/View/BoundaryCondition/Edit/translate.py index 006c49df0fc6d97fdf66722fcb825cc48a4af8cf..3912b81c6e18c4440935b3dbfa98824e3c845850 100644 --- a/src/View/BoundaryCondition/Edit/translate.py +++ b/src/View/BoundaryCondition/Edit/translate.py @@ -44,3 +44,12 @@ class BCETranslate(BCTranslate): "z": self._dict["unit_elevation"], "solid": _translate("BoundaryCondition", "Solid (kg/s)"), } + + self._dict["title_need_geometry"] = _translate( + "Geometry", "No geometry" + ) + self._dict["msg_need_geometry"] = _translate( + "Geometry", + "There is not geometry found for this reach, " + "a geometry is needed to this features" + ) diff --git a/src/View/Tools/ASubWindow.py b/src/View/Tools/ASubWindow.py index 01db62f43e56f477bf40139b847971ed928a7240..25928e4db07b4119ada6bc49a78af913fdee8a73 100644 --- a/src/View/Tools/ASubWindow.py +++ b/src/View/Tools/ASubWindow.py @@ -142,7 +142,7 @@ class WindowToolKit(object): Returns: Nothing """ - msg = QMessageBox() + msg = QMessageBox(parent=self) msg.setIcon(QMessageBox.Warning) msg.setText(text)