From 4ed1aef4a5e676597febc373b4da48b90d5550f8 Mon Sep 17 00:00:00 2001
From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr>
Date: Wed, 5 Jul 2023 11:46:04 +0200
Subject: [PATCH] MainWindow: Display message when there are no current reach.

---
 src/View/MainWindow.py | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py
index 7953f3e3..2691855c 100644
--- a/src/View/MainWindow.py
+++ b/src/View/MainWindow.py
@@ -289,6 +289,11 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
     # SUBWINDOW #
     #############
 
+    def msg_select_reach(self):
+        self.message_box("Please select a reach",
+                         "Geometry edition need a reach selected "
+                         "into river network window to work on it")
+
     def open_configure(self):
         """Open configure window
 
@@ -371,9 +376,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
             geometry = GeometryWindow(model=self.model, parent=self)
             geometry.show()
         else:
-            self.message_box("Please select a reach",
-                             "Geometry edition need a reach selected "
-                             "into river network window to work on it")
+            self.msg_select_reach()
 
     def open_boundary_cond(self):
         bound = BoundaryConditionWindow(study = self.model, parent = self)
@@ -392,11 +395,15 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
         strick.show()
 
     def open_sections(self):
-        sections = SectionsWindow(
-            study = self.model,
-            parent = self
-        )
-        sections.show()
+        if (self.model is not None and
+            self.model.river.has_current_reach()):
+            sections = SectionsWindow(
+                study = self.model,
+                parent = self
+            )
+            sections.show()
+        else:
+            self.msg_select_reach()
 
     def open_initial_conditions(self):
         if self.model.river.has_current_reach():
@@ -405,6 +412,8 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
                 parent = self
             )
             initial.show()
+        else:
+            self.msg_select_reach()
 
     def open_solver_parameters(self):
         params = SolverParametersWindow(
-- 
GitLab