diff --git a/src/Model/Network/Edge.py b/src/Model/Network/Edge.py index a21c89ab..eb5b07c5 100644 --- a/src/Model/Network/Edge.py +++ b/src/Model/Network/Edge.py @@ -51,9 +51,9 @@ class Edge(object): elif name == "id": ret = self.id elif name == "node1": - ret = self.node1.name + ret = self.node1 elif name == "node2": - ret = self.node2.name + ret = self.node2 elif name == "enable": ret = self._enable @@ -75,10 +75,7 @@ class Edge(object): @property def name(self): - name = self._name - if self._name == "": - name = f"{self.node1.name} -> {self.node2.name}" - return name + return self._name def is_enable(self): return self._enable diff --git a/src/Model/Network/Node.py b/src/Model/Network/Node.py index eb763939..87a29c09 100644 --- a/src/Model/Network/Node.py +++ b/src/Model/Network/Node.py @@ -35,11 +35,7 @@ class Node(object): else: self.id = id - if name == "": - self._name = f"Node {self.id}" - else: - self._name = name - + self._name = name self.pos = Point(x, y) def __getitem__(self, key): diff --git a/src/View/Network/GraphWidget.py b/src/View/Network/GraphWidget.py index 5b55d764..febeeb2d 100644 --- a/src/View/Network/GraphWidget.py +++ b/src/View/Network/GraphWidget.py @@ -368,11 +368,18 @@ class EdgeItem(QGraphicsItem): class NodeText(QGraphicsTextItem): - def __init__(self, node_item): + def __init__(self, node_item, graph): super(NodeText, self).__init__() self.item = node_item - self.setPlainText(self.item.node.name) + self.graph = graph + + name = self.item.node.name + if name == "": + name = self.graph._trad.node_name(self.item.node) + + self.setPlainText(name) + self.setDefaultTextColor(Qt.black) self.set_custom_pos(self.item.pos()) self.setZValue(2) @@ -502,7 +509,7 @@ class GraphWidget(QGraphicsView): for node in self.graph.nodes(): inode = NodeItem(node, self) - self.texts[inode] = NodeText(inode) + self.texts[inode] = NodeText(inode, self) self.scene().addItem(self.texts[inode]) self.scene().addItem(inode) self.node_items.append(inode) @@ -578,7 +585,7 @@ class GraphWidget(QGraphicsView): inode = NodeItem(node, self) self.scene().addItem(inode) self.node_items.append(inode) - self.texts[inode] = NodeText(inode) + self.texts[inode] = NodeText(inode, self) self.scene().addItem(self.texts[inode]) self.changeNode.emit(self.sender()) diff --git a/src/View/Network/Table.py b/src/View/Network/Table.py index 8ba889bd..97a26548 100644 --- a/src/View/Network/Table.py +++ b/src/View/Network/Table.py @@ -94,6 +94,9 @@ class NodeTableModel(PamhyrTableModel): return ret + if self._headers[index.column()] == "name": + return self._trad.node_name(self._lst[index.row()]) + return self._lst[index.row()][self._headers[index.column()]] @pyqtSlot() @@ -133,6 +136,15 @@ class EdgeTableModel(PamhyrTableModel): if role != Qt.ItemDataRole.DisplayRole: return QVariant() + if (self._headers[index.column()] == "node1" or + self._headers[index.column()] == "node2"): + return self._trad.node_name( + self._lst[index.row()][self._headers[index.column()]] + ) + + if self._headers[index.column()] == "name": + return self._trad.edge_name(self._lst[index.row()]) + return self._lst[index.row()][self._headers[index.column()]] @pyqtSlot() diff --git a/src/View/Network/Window.py b/src/View/Network/Window.py index eab8cae0..4a2c6efc 100644 --- a/src/View/Network/Window.py +++ b/src/View/Network/Window.py @@ -90,6 +90,7 @@ class NetworkWindow(PamhyrWindow): table_view=table, table_headers=self._table_headers_node, editable_headers=["name"], + trad=self._trad, data=self._graph, undo=self._undo_stack, ) @@ -109,6 +110,7 @@ class NetworkWindow(PamhyrWindow): table_view=table, table_headers=self._table_headers_edge, editable_headers=["name", "node1", "node2"], + trad=self._trad, delegates={ "node1": self.delegate_combobox, "node2": self.delegate_combobox, diff --git a/src/View/Network/translate.py b/src/View/Network/translate.py index ea999db2..da3e9618 100644 --- a/src/View/Network/translate.py +++ b/src/View/Network/translate.py @@ -31,6 +31,9 @@ class NetworkTranslate(MainTranslate): "Network", "River network" ) + self._dict["node"] = _translate("Network", "Node") + self._dict["edge"] = _translate("Network", "Reach") + self._dict["menu_add_node"] = _translate("Network", "Add node") self._dict["menu_del_node"] = _translate("Network", "Delete the node") self._dict["menu_edit_res_node"] = _translate( @@ -63,3 +66,15 @@ class NetworkTranslate(MainTranslate): "node2": _translate("Network", "Destination node"), "id": _translate("Network", "Index"), } + + def node_name(self, node): + if node.name == "": + return f"{self['node']} #{node.id}" + + return node.name + + def edge_name(self, edge): + if edge.name == "": + return f"{self['edge']} #{edge.id}" + + return edge.name diff --git a/src/lang/fr.ts b/src/lang/fr.ts index dc68faec..ea11ec02 100644 --- a/src/lang/fr.ts +++ b/src/lang/fr.ts @@ -192,17 +192,17 @@ Modifier les conditions aux limites - + X X - + Y Y - + Solid (kg/s) Solide (kg/s) @@ -236,6 +236,11 @@ Node Nœud + + + Boundary Condition Options + + BoundaryConditions @@ -448,7 +453,7 @@ Sélection des graphiques personnalisés - + Bed elevation (m) Cote du fond (m) @@ -649,9 +654,9 @@ Axe Y : - + Discharge - Débit + Débit @@ -729,9 +734,9 @@ Limites - + Options - Options + Options @@ -746,7 +751,7 @@ Height (m) - Hauteur (m) + Hauteur (m) @@ -754,27 +759,27 @@ Stricklers - + Distance computation Calcule des distances - + Second guide-line Deuxième ligne directrice - + First guide-line Première ligne directrice - + Origin Origine - + Origin value Valeur de l'origine @@ -803,8 +808,88 @@ Second guideline Seconde ligne directrice + + + Y coordinate + + + + + X coordinate + + + + + Z coordinate + + + + + Upstream to downstream + + + + + Downstream to upstream + + + + + Orientation + + + + + Keep current + + + + + Upstream height (m) + + + + + Downstream height (m) + + + + + Generate constant discharge + + + + + Slope + + + + + Estimate + + + + + Number of points to keep + + + + + Generate height + Générer une hauteur + + + + Depth (m) + Hauteur (m) + + + + Generate discharge + Générer un débit + - + Discharge (m³/s) @@ -1127,35 +1212,40 @@ Modifier les frottements - + Start (m) PK de départ (m) - + End (m) PK de fin (m) - + Start coefficient Coefficient de départ - + End coefficient Coefficient de fin - + Stricklers Stricklers - + Edit frictions Éditer les frotements + + + Strickler ($m^{1/3}/s$) + + Geometry @@ -1309,6 +1399,21 @@ the mean over the two guide-lines la moyenne entre les deux ligne directrice + + + UpdateRK + + + + + Purge + Purger + + + + Shift + + HydraulicStructures @@ -1387,17 +1492,17 @@ MainWindow - + Open debug window Ouvrir la fenêtre de débogage - + Open SQLite debuging tool ('sqlitebrowser') Ouvrir l'outil de débogage SQLite ('sqlitebrowser') - + Enable this window Activer cette fenêtre @@ -1412,7 +1517,7 @@ Barre d'outils - + Add Ajouter @@ -1432,7 +1537,7 @@ Supprimer les casier(s) - + Edit modifier @@ -1622,12 +1727,12 @@ Modifier la géométrie - + Import geometry Importer une géométrie - + Export geometry Exporter la géométrie @@ -1952,42 +2057,42 @@ Modifier une condition aux limites ou un apport ponctuel - + Raw data Données brutes - + Water elevation Cote de l'eau - + Discharge time series Hydrogramme - + Add customized visualization Ajouter une visualisation personnalisée - + Reload Recharger - + Export Exporter Export raw data - Exporter les données brutes + Exporter les données brutes - + delete supprimer @@ -2042,7 +2147,7 @@ Activer/Désactiver l'ouvrage hydraulique élémentaire - + Add a new point Ajouter un nouveau point @@ -2092,7 +2197,7 @@ Supprimer les points sélectionnés - + Up Monter @@ -2102,7 +2207,7 @@ Déplacer les points sélectionnés vers le haut - + Down Descendre @@ -2112,7 +2217,7 @@ Déplacer les points sélectionnés vers le bas - + sort_asc sort_asc @@ -2122,7 +2227,7 @@ Trier les points par leurs plus proches voisins - + sort_des sort_des @@ -2169,7 +2274,7 @@ Generate height - Générer une hauteur + Générer une hauteur @@ -2177,22 +2282,22 @@ Générer un débit - + Add new initial condition Ajouter une nouvelle condition initiale - + Delete inital condition Supprimer une condition initiale - + sort sort - + Sort inital conditions Trier les conditions initiales @@ -2237,57 +2342,57 @@ Modifier les couches sédimentaires - + Import Importer - + Add a cross-section Ajouter une section en travers - + Delete selected cross-section(s) Supprimer les sections en travers sélectionnées - + Edit selected cross section(s) Modifier les sections en travers sélectionnées - + Sort cross-sections by ascending position Trier les sections en travers par PK croissant - + Sort cross-sections by descending position Trier les sections en travers par PK décroissant - + Move up selected cross-section(s) Déplacer les sections en travers vers le haut - + Move down selected cross-section(s) Déplacer les sections en travers vers le bas - + Meshing Maillage - + Summary Résumé - + Checks Vérifications @@ -2382,7 +2487,7 @@ Modifier les informations de l'étude - + toolBar @@ -2397,7 +2502,7 @@ Éditer les frotements - + Purge Purger @@ -2417,22 +2522,22 @@ Retourner l'ordre des points - + Import from file Importer depuis un fichier - + Update RK Mise à jour des PK - + Recompute RK Recalcule des PK - + Purge cross-sections to keep a given number of points Purger les profiles pour garder un nombre fixer de points @@ -2441,6 +2546,61 @@ Sort points Trier les points + + + Export data as CSV + + + + + Generate depth + + + + + Generate elevation + + + + + Generate uniform + + + + + Generate rating curve from Manning law + + + + + Generate critical + + + + + Generate rating curve as Q(z) = Sqrt(g*S(z)^3/L(z)) + + + + + Make increasing + + + + + Remove points to make the curve increasing + + + + + Shift + + + + + Shift selected sections coordinates + + MainWindow_reach @@ -2473,60 +2633,75 @@ Réseau - + Add node Ajouter un nœud - + Delete the node Supprimer le nœud - + Edit node reservoir Modifier le casier du nœud - + Add node reservoir Ajouter un casier au nœud - + Delete the reach Supprimer l'arrête - + Enable the reach Activer l'arête - + Disable the reach Désactiver l'arête - + Reverse the reach orientation Inverser l'orientation de l'arête - + Source node Nœud source - + Destination node Nœud destination - + Delete node reservoir Supprimer le casier du nœud + + + Node + Nœud + + + + Reach + Bief + + + + Index + Index + Pamhyr @@ -2585,7 +2760,7 @@ X (m) - + Y (m) Y (m) @@ -3048,7 +3223,7 @@ Position (m) - PK (m) + PK (m) @@ -3061,47 +3236,47 @@ Hauteur (m) - + Diameter (m) Diamètre (m) - + Thickness (m) Épaisseur (m) - + Elevation (m) Cote (m) - + Water elevation (m) Cote de l'eau (m) - + Area (hectare) Aire (hectare) - + Time (sec) Temps (s) - + Time (JJJ:HH:MM:SS) Temps (JJJ:HH:MM:SS) - + Date (sec) Date (s) - + Date (ISO format) Date (format ISO) @@ -3113,12 +3288,52 @@ Speed (m/s) - Vitesse (m/s) + Vitesse (m/s) + + + + River Kilometer (m) + + + + + Max Depth (m) + + + + + Mean Depth (m) + + + + + Velocity (m/s) + + + + + Wet Perimeter (m) + + + + + Hydraulic Radius (m) + + + + + Froude number + - + Discharge (m³/s) + + + Wet Area (m²) + +