From 330761a372890c382bdbb17757e11cbceff7087b Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Wed, 28 Feb 2024 16:27:09 +0100 Subject: [PATCH] MainWindow: Info: Add some informations. --- src/View/MainWindowTabInfo.py | 96 ++++++++++++++++-- src/View/ui/Widgets/MainWindowTabInfo.ui | 122 +++++++++++++++++++---- 2 files changed, 192 insertions(+), 26 deletions(-) diff --git a/src/View/MainWindowTabInfo.py b/src/View/MainWindowTabInfo.py index bdfb7e63..2013cf7a 100644 --- a/src/View/MainWindowTabInfo.py +++ b/src/View/MainWindowTabInfo.py @@ -59,6 +59,10 @@ class WidgetInfo(PamhyrWidget): self.set_label_text("label_cs", "0") self.set_label_text("label_points", "0") + self.set_label_text("label_res", "0") + self.set_label_text("label_bc", "0") + self.set_label_text("label_lc", "0") + def update(self): if self._study is None: self.set_initial_values() @@ -71,10 +75,12 @@ class WidgetInfo(PamhyrWidget): self.set_geometry_values() def set_network_values(self): - n_nodes = self._study.river.enable_nodes_counts() - n_d_nodes = self._study.river.nodes_counts() - n_nodes - n_edges = self._study.river.enable_edges_counts() - n_d_edges = self._study.river.edges_counts() - n_edges + river = self._study.river + + n_nodes = river.enable_nodes_counts() + n_d_nodes = river.nodes_counts() - n_nodes + n_edges = river.enable_edges_counts() + n_d_edges = river.edges_counts() - n_edges self.set_label_text( "label_nodes", @@ -85,20 +91,77 @@ class WidgetInfo(PamhyrWidget): f"{n_edges} {self.color_grey}({n_d_edges}){self.color_end}" ) - current = self._study.river.current_reach() + current = river.current_reach() if current is not None: name = current.reach.name else: name = "None" self.set_label_text("label_current_reach", name) + self.set_network_values_ext(river) + + def set_network_values_ext(self, river): + self.set_network_values_ext_reservoir(river) + self.set_network_values_ext_bc(river) + self.set_network_values_ext_lc(river) + + def set_network_values_ext_reservoir(self, river): + n_res = 0 + n_na_res = 0 + for res in river.reservoir.lst: + if res.node is not None: + n_res += 1 + else: + n_na_res += 1 + + self.set_label_text( + "label_res", + f"{n_res} {self.color_grey}({n_na_res}){self.color_end}" + ) + + def set_network_values_ext_bc(self, river): + bc = river.boundary_condition + n_bc = 0 + n_na_bc = 0 + + for tab in bc._tabs_list: + for c in bc.get_tab(tab): + if c.node is not None: + n_bc += 1 + else: + n_na_bc += 1 + + self.set_label_text( + "label_bc", + f"{n_bc} {self.color_grey}({n_na_bc}){self.color_end}" + ) + + def set_network_values_ext_lc(self, river): + lc = river.lateral_contribution + n_lc = 0 + n_na_lc = 0 + + for tab in lc._tabs_list: + for c in lc.get_tab(tab): + if c.edge is not None: + n_lc += 1 + else: + n_na_lc += 1 + + self.set_label_text( + "label_lc", + f"{n_lc} {self.color_grey}({n_na_lc}){self.color_end}" + ) + def set_geometry_values(self): + river = self._study.river + n_cs = 0 n_d_cs = 0 n_points = 0 n_d_points = 0 - for edge in self._study.river.edges(): + for edge in river.edges(): for profile in edge.reach.profiles: if edge.is_enable(): n_points += len(profile) @@ -115,3 +178,24 @@ class WidgetInfo(PamhyrWidget): "label_points", f"{n_points} {self.color_grey}({n_d_points}){self.color_end}" ) + + self.set_geometry_values_ext(river) + + def set_geometry_values_ext(self, river): + self.set_geometry_values_ext_hs(river) + + def set_geometry_values_ext_hs(self, river): + hs = river.hydraulic_structures + n_hs = 0 + n_na_hs = 0 + + for h in hs.lst: + if h.input_reach is not None and h.input_kp is not None: + n_hs += 1 + else: + n_na_hs += 1 + + self.set_label_text( + "label_hs", + f"{n_hs} {self.color_grey}({n_na_hs}){self.color_end}" + ) diff --git a/src/View/ui/Widgets/MainWindowTabInfo.ui b/src/View/ui/Widgets/MainWindowTabInfo.ui index c037b248..8f528f22 100644 --- a/src/View/ui/Widgets/MainWindowTabInfo.ui +++ b/src/View/ui/Widgets/MainWindowTabInfo.ui @@ -88,6 +88,16 @@ <string>River network</string> </property> <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="1"> + <widget class="QLabel" name="label_current_reach"> + <property name="whatsThis"> + <string notr="true"/> + </property> + <property name="text"> + <string>@current_reach</string> + </property> + </widget> + </item> <item row="2" column="0"> <widget class="QLabel" name="label_7"> <property name="text"> @@ -95,7 +105,7 @@ </property> </widget> </item> - <item row="1" column="2"> + <item row="1" column="5"> <spacer name="horizontalSpacer"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -108,6 +118,13 @@ </property> </spacer> </item> + <item row="0" column="0"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>Current reach:</string> + </property> + </widget> + </item> <item row="1" column="0"> <widget class="QLabel" name="label_5"> <property name="text"> @@ -125,6 +142,13 @@ </property> </widget> </item> + <item row="0" column="4"> + <widget class="QLabel" name="label_res"> + <property name="text"> + <string>@nb_res</string> + </property> + </widget> + </item> <item row="2" column="1"> <widget class="QLabel" name="label_edges"> <property name="whatsThis"> @@ -135,20 +159,51 @@ </property> </widget> </item> - <item row="0" column="0"> - <widget class="QLabel" name="label_2"> + <item row="1" column="3"> + <widget class="QLabel" name="label_8"> <property name="text"> - <string>Current reach:</string> + <string>Boundary conditions:</string> </property> </widget> </item> - <item row="0" column="1"> - <widget class="QLabel" name="label_current_reach"> - <property name="whatsThis"> - <string notr="true"/> + <item row="0" column="3"> + <widget class="QLabel" name="label_4"> + <property name="text"> + <string>Reservoir:</string> </property> + </widget> + </item> + <item row="1" column="4"> + <widget class="QLabel" name="label_bc"> <property name="text"> - <string>@current_reach</string> + <string>@nb_bc</string> + </property> + </widget> + </item> + <item row="1" column="2"> + <spacer name="horizontalSpacer_3"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="2" column="3"> + <widget class="QLabel" name="label_11"> + <property name="text"> + <string>Lateral contributions:</string> + </property> + </widget> + </item> + <item row="2" column="4"> + <widget class="QLabel" name="label_lc"> + <property name="text"> + <string>@nb_lc</string> </property> </widget> </item> @@ -161,6 +216,39 @@ <string>Geometry</string> </property> <layout class="QGridLayout" name="gridLayout_2"> + <item row="0" column="2"> + <spacer name="horizontalSpacer_2"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="5"> + <spacer name="horizontalSpacer_4"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="3"> + <widget class="QLabel" name="label_6"> + <property name="text"> + <string>Hydraulic stuctures:</string> + </property> + </widget> + </item> <item row="1" column="1"> <widget class="QLabel" name="label_points"> <property name="whatsThis"> @@ -195,18 +283,12 @@ </property> </widget> </item> - <item row="0" column="2"> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> + <item row="0" column="4"> + <widget class="QLabel" name="label_hs"> + <property name="text"> + <string>@nb_hs</string> </property> - </spacer> + </widget> </item> </layout> </widget> -- GitLab