From a4c5d347208cc6485888e5229fb8ff197b1d4474 Mon Sep 17 00:00:00 2001
From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr>
Date: Wed, 21 Feb 2024 17:19:50 +0100
Subject: [PATCH] Pamhyr: Centralize ND and NA translate.

---
 src/View/BoundaryCondition/Edit/Window.py                | 2 +-
 src/View/BoundaryCondition/Table.py                      | 4 ++--
 src/View/BoundaryCondition/translate.py                  | 2 +-
 src/View/Frictions/Table.py                              | 9 +++++----
 src/View/Frictions/Window.py                             | 2 ++
 src/View/Geometry/PlotXY.py                              | 2 ++
 .../BasicHydraulicStructures/Translate.py                | 4 +---
 src/View/HydraulicStructures/Table.py                    | 8 ++++----
 src/View/LateralContribution/Edit/Window.py              | 3 +--
 src/View/LateralContribution/Table.py                    | 4 ++--
 src/View/LateralContribution/Window.py                   | 4 +++-
 src/View/LateralContribution/translate.py                | 6 +++++-
 src/View/Reservoir/Edit/Window.py                        | 2 +-
 src/View/Reservoir/Table.py                              | 4 ++--
 src/View/SedimentLayers/Reach/Profile/Table.py           | 9 +++++----
 src/View/SedimentLayers/Reach/SLDialog.py                | 5 +++--
 src/View/SedimentLayers/Reach/Table.py                   | 6 +++---
 src/View/SedimentLayers/Reach/translate.py               | 1 -
 src/View/Translate.py                                    | 3 +++
 19 files changed, 46 insertions(+), 34 deletions(-)

diff --git a/src/View/BoundaryCondition/Edit/Window.py b/src/View/BoundaryCondition/Edit/Window.py
index 2d5c29c6..faf41896 100644
--- a/src/View/BoundaryCondition/Edit/Window.py
+++ b/src/View/BoundaryCondition/Edit/Window.py
@@ -108,7 +108,7 @@ class EditBoundaryConditionWindow(PamhyrWindow):
         name = trad[self._pamhyr_name]
         if self._data is not None:
             node_name = (self._data.node.name if self._data.node is not None
-                         else _translate("BoundaryCondition", "Not associate"))
+                         else trad['not_associated'])
             name += (
                 f" - {study.name} " +
                 f" - {self._data.name} ({self._data.id}) " +
diff --git a/src/View/BoundaryCondition/Table.py b/src/View/BoundaryCondition/Table.py
index 48dfcc39..eec695cb 100644
--- a/src/View/BoundaryCondition/Table.py
+++ b/src/View/BoundaryCondition/Table.py
@@ -85,7 +85,7 @@ class ComboBoxDelegate(QItemDelegate):
             )
         else:
             self.editor.addItems(
-                [_translate("BoundaryCondition", "Not associate")] +
+                [self._trad["not_associated"]] +
                 self._data.nodes_names()
             )
 
@@ -145,7 +145,7 @@ class TableModel(PamhyrTableModel):
         elif self._headers[column] == "node":
             n = self._lst.get(self._tab, row).node
             if n is None:
-                return _translate("BoundaryCondition", "Not associate")
+                return self._trad["not_associated"]
             return n.name
 
         return QVariant()
diff --git a/src/View/BoundaryCondition/translate.py b/src/View/BoundaryCondition/translate.py
index 81746fd9..19244076 100644
--- a/src/View/BoundaryCondition/translate.py
+++ b/src/View/BoundaryCondition/translate.py
@@ -47,7 +47,7 @@ class BCTranslate(MainTranslate):
         )
 
         self._sub_dict["long_types"] = {
-            "ND": _translate("BoundaryCondition", "Not defined"),
+            "ND": self._dict["not_defined"],
             "PC": _translate("BoundaryCondition", "Ponctual contribution"),
             "TZ": _translate("BoundaryCondition", "Z(t)"),
             "TD": _translate("BoundaryCondition", "Q(t)"),
diff --git a/src/View/Frictions/Table.py b/src/View/Frictions/Table.py
index 7d8972d7..6b4dd8ce 100644
--- a/src/View/Frictions/Table.py
+++ b/src/View/Frictions/Table.py
@@ -52,11 +52,12 @@ _translate = QCoreApplication.translate
 
 class ComboBoxDelegate(QItemDelegate):
     def __init__(self, data=None, study=None,
-                 mode="stricklers", parent=None):
+                 mode="stricklers", trad=None, parent=None):
         super(ComboBoxDelegate, self).__init__(parent)
 
         self._data = data
         self._study = study
+        self._trad = trad
         self._mode = mode
 
     def createEditor(self, parent, option, index):
@@ -64,7 +65,7 @@ class ComboBoxDelegate(QItemDelegate):
 
         if self._mode == "stricklers":
             self.editor.addItems(
-                [_translate("Frictions", "Not defined")] +
+                [self._trad["not_defined"]] +
                 list(
                     map(
                         lambda s: str(s),
@@ -119,12 +120,12 @@ class TableModel(PamhyrTableModel):
         elif self._headers[column] == "begin_strickler":
             value = self._lst.get(row).begin_strickler
             if value is None:
-                return _translate("Frictions", "Not defined")
+                return self._trad["not_defined"]
             return str(value)
         elif self._headers[column] == "end_strickler":
             value = self._lst.get(row).end_strickler
             if value is None:
-                return _translate("Frictions", "Not defined")
+                return self._trad["not_defined"]
             return str(value)
 
         return QVariant()
diff --git a/src/View/Frictions/Window.py b/src/View/Frictions/Window.py
index 4dd4dadb..ba2fa098 100644
--- a/src/View/Frictions/Window.py
+++ b/src/View/Frictions/Window.py
@@ -99,6 +99,7 @@ class FrictionsWindow(PamhyrWindow):
             data=self._reach,
             study=self._study,
             mode="stricklers",
+            trad=self._trad,
             parent=self
         )
 
@@ -115,6 +116,7 @@ class FrictionsWindow(PamhyrWindow):
                 "end_strickler": self._delegate_stricklers,
             },
             data=self._reach,
+            trad=self._trad,
             undo=self._undo_stack,
             opt_data=self._study
         )
diff --git a/src/View/Geometry/PlotXY.py b/src/View/Geometry/PlotXY.py
index 4557c717..3bf49cbb 100644
--- a/src/View/Geometry/PlotXY.py
+++ b/src/View/Geometry/PlotXY.py
@@ -52,10 +52,12 @@ class PlotXY(PamhyrPlot):
         self.init_axes()
 
         if self.data is None:
+            self.idle()
             return
 
         if self.data.number_profiles == 0:
             self._init = False
+            self.idle()
             return
 
         self.draw_xy()
diff --git a/src/View/HydraulicStructures/BasicHydraulicStructures/Translate.py b/src/View/HydraulicStructures/BasicHydraulicStructures/Translate.py
index 75921b75..f55fb2d7 100644
--- a/src/View/HydraulicStructures/BasicHydraulicStructures/Translate.py
+++ b/src/View/HydraulicStructures/BasicHydraulicStructures/Translate.py
@@ -106,9 +106,7 @@ hydraulic structure values?"
         # BHS types long names
 
         self._sub_dict["long_types"] = {
-            "ND": _translate(
-                "BasicHydraulicStructures", "Not defined"
-            ),
+            "ND": self._dict["not_defined"],
             "S1": _translate(
                 "BasicHydraulicStructures", "Discharge weir"
             ),
diff --git a/src/View/HydraulicStructures/Table.py b/src/View/HydraulicStructures/Table.py
index 5dc69823..a794f0a0 100644
--- a/src/View/HydraulicStructures/Table.py
+++ b/src/View/HydraulicStructures/Table.py
@@ -76,7 +76,7 @@ class ComboBoxDelegate(QItemDelegate):
             )
 
         self.editor.addItems(
-            [_translate("Hydraulic structure", "Not associated")] +
+            [self._trad['not_associated']] +
             val
         )
 
@@ -124,12 +124,12 @@ class TableModel(PamhyrTableModel):
         elif self._headers[column] == "reach":
             n = self._lst.get(row).input_reach
             if n is None:
-                return _translate("Hydraulic structure", "Not associated")
+                return self._trad['not_associated']
             return n.name
         elif self._headers[column] == "kp":
             n = self._lst.get(row).input_kp
             if n is None:
-                return _translate("Hydraulic structure", "Not associated")
+                return self._trad['not_associated']
             return n
 
         return QVariant()
@@ -140,7 +140,7 @@ class TableModel(PamhyrTableModel):
 
         row = index.row()
         column = index.column()
-        na = _translate("Hydraulic structure", "Not associated")
+        na = self._trad['not_associated']
 
         try:
             if self._headers[column] == "name":
diff --git a/src/View/LateralContribution/Edit/Window.py b/src/View/LateralContribution/Edit/Window.py
index 3dbc4f5f..53c774cb 100644
--- a/src/View/LateralContribution/Edit/Window.py
+++ b/src/View/LateralContribution/Edit/Window.py
@@ -59,8 +59,7 @@ class EditLateralContributionWindow(PamhyrWindow):
         name = trad[self._pamhyr_name]
         if self._data is not None:
             edge_name = (self._data.edge.name if self._data.edge is not None
-                         else _translate("LateralContribution",
-                                         "Not associate"))
+                         else trad['not_associated'])
             name += (
                 f" - {study.name} " +
                 f" - {self._data.name} ({self._data.id}) " +
diff --git a/src/View/LateralContribution/Table.py b/src/View/LateralContribution/Table.py
index 132888d8..3b632392 100644
--- a/src/View/LateralContribution/Table.py
+++ b/src/View/LateralContribution/Table.py
@@ -80,7 +80,7 @@ class ComboBoxDelegate(QItemDelegate):
             self.editor.addItems(lst)
         else:
             self.editor.addItems(
-                [_translate("LateralContribution", "Not associate")] +
+                [self._trad['not_associated']] +
                 self._data.edges_names()
             )
 
@@ -133,7 +133,7 @@ class TableModel(PamhyrTableModel):
         elif self._headers[column] == "edge":
             n = self._lst.get(self._tab, row).edge
             if n is None:
-                return _translate("LateralContribution", "Not associate")
+                return self._trad['not_associated']
             return n.name
         elif self._headers[column] == "begin_kp":
             return self._lst.get(self._tab, row).begin_kp
diff --git a/src/View/LateralContribution/Window.py b/src/View/LateralContribution/Window.py
index 6edd2a42..48ec3cc2 100644
--- a/src/View/LateralContribution/Window.py
+++ b/src/View/LateralContribution/Window.py
@@ -132,6 +132,7 @@ class LateralContributionWindow(PamhyrWindow):
         self.plot = PlotXY(
             canvas=self.canvas,
             data=None,
+            trad=self._trad,
             toolbar=None,
         )
 
@@ -197,10 +198,11 @@ class LateralContributionWindow(PamhyrWindow):
         self.plot = PlotXY(
             canvas=self.canvas,
             data=data,
+            trad=self._trad,
             toolbar=None,
         )
         self.plot.highlight = highlight
-        self.plot.draw()
+        self.plot.update()
 
     def add(self):
         tab = self.current_tab()
diff --git a/src/View/LateralContribution/translate.py b/src/View/LateralContribution/translate.py
index 1e955cf9..145e137f 100644
--- a/src/View/LateralContribution/translate.py
+++ b/src/View/LateralContribution/translate.py
@@ -43,12 +43,16 @@ class LCTranslate(MainTranslate):
         )
 
         self._sub_dict["long_types"] = {
-            "ND": _translate("LateralContribution", "Not defined"),
+            "ND": self._dict["not_defined"],
             "LC": _translate("LateralContribution", "Lateral contribution"),
             "RA": _translate("LateralContribution", "Rain"),
             "EV": _translate("LateralContribution", "Evaporation"),
         }
 
+        self._dict["x"] = _translate("Geometry", "X (m)")
+        self._dict["y"] = _translate("Geometry", "Y (m)")
+        self._dict["z"] = _translate("Geometry", "Z (m)")
+
         self._sub_dict["table_headers"] = {
             "name": self._dict["name"],
             "type": self._dict["type"],
diff --git a/src/View/Reservoir/Edit/Window.py b/src/View/Reservoir/Edit/Window.py
index 864b8b9f..ed8b2cd3 100644
--- a/src/View/Reservoir/Edit/Window.py
+++ b/src/View/Reservoir/Edit/Window.py
@@ -63,7 +63,7 @@ class EditReservoirWindow(PamhyrWindow):
         name = trad[self._pamhyr_name]
         if self._data is not None:
             node_name = (self._data.node.name if self._data.node is not None
-                         else _translate("Reservoir", "Not associated"))
+                         else trad['not_associated'])
             name += (
                 f" - {study.name} " +
                 f" - {self._data.name} ({self._data.id}) " +
diff --git a/src/View/Reservoir/Table.py b/src/View/Reservoir/Table.py
index df68bd9a..9d36520e 100644
--- a/src/View/Reservoir/Table.py
+++ b/src/View/Reservoir/Table.py
@@ -70,7 +70,7 @@ class ComboBoxDelegate(QItemDelegate):
         )
 
         self.editor.addItems(
-            [_translate("Reservoir", "Not associated")] +
+            [self._trad['not_associated']] +
             nodes
         )
 
@@ -118,7 +118,7 @@ class TableModel(PamhyrTableModel):
         elif self._headers[column] == "node":
             n = self._lst.get(row).node
             if n is None:
-                return _translate("Reservoir", "Not associated")
+                return self._trad['not_associated']
             return n.name
 
         return QVariant()
diff --git a/src/View/SedimentLayers/Reach/Profile/Table.py b/src/View/SedimentLayers/Reach/Profile/Table.py
index 930c58af..12126f06 100644
--- a/src/View/SedimentLayers/Reach/Profile/Table.py
+++ b/src/View/SedimentLayers/Reach/Profile/Table.py
@@ -44,16 +44,17 @@ logger = logging.getLogger()
 
 
 class ComboBoxDelegate(QItemDelegate):
-    def __init__(self, study=None, parent=None):
+    def __init__(self, study=None, trad=None, parent=None):
         super(ComboBoxDelegate, self).__init__(parent)
 
+        self._trad = trad
         self._study = study
 
     def createEditor(self, parent, option, index):
         self.editor = QComboBox(parent)
 
         self.editor.addItems(
-            # [_translate("SedimentLayers", "Not defined")] +
+            # [self._trad["not_defined"]] +
             list(
                 map(
                     lambda sl: str(sl),
@@ -104,7 +105,7 @@ class TableModel(PamhyrTableModel):
         elif self._headers[column] == "sl":
             value = self._data.point(row).sl
             if value is None:
-                text = _translate("SedimentLayers", "Not defined")
+                text = self._trad["not_defined"]
                 return text
             return str(value)
         elif self._headers[column] == "x":
@@ -125,7 +126,7 @@ class TableModel(PamhyrTableModel):
 
         if self._headers[column] == "sl":
             new = None
-            if value != _translate("SedimentLayers", "Not defined"):
+            if value != self._trad["not_defined"]:
                 new = next(
                     filter(
                         lambda sl: str(sl) == value,
diff --git a/src/View/SedimentLayers/Reach/SLDialog.py b/src/View/SedimentLayers/Reach/SLDialog.py
index 4340ea1e..c113be6d 100644
--- a/src/View/SedimentLayers/Reach/SLDialog.py
+++ b/src/View/SedimentLayers/Reach/SLDialog.py
@@ -45,6 +45,7 @@ class SLDialog(PamhyrDialog):
             title=trad[self._pamhyr_name],
             study=study,
             config=config,
+            trad=trad,
             parent=parent
         )
 
@@ -55,7 +56,7 @@ class SLDialog(PamhyrDialog):
     def setup_combobox(self):
         self.combobox_add_items(
             "comboBox",
-            [_translate("SedimentLayers", "Not defined")] +
+            [self._trad["not_defined"]] +
             list(
                 map(
                     lambda sl: str(sl),
@@ -66,7 +67,7 @@ class SLDialog(PamhyrDialog):
 
     @property
     def sl(self):
-        if self.value == _translate("SedimentLayers", "Not defined"):
+        if self.value == self._trad["not_defined"]:
             return None
 
         return next(
diff --git a/src/View/SedimentLayers/Reach/Table.py b/src/View/SedimentLayers/Reach/Table.py
index 7105a6df..7c6298f2 100644
--- a/src/View/SedimentLayers/Reach/Table.py
+++ b/src/View/SedimentLayers/Reach/Table.py
@@ -53,7 +53,7 @@ class ComboBoxDelegate(QItemDelegate):
         self.editor = QComboBox(parent)
 
         self.editor.addItems(
-            [self._trad["nd"]] +
+            [self._trad["not_defined"]] +
             list(
                 map(
                     lambda sl: str(sl),
@@ -106,7 +106,7 @@ class TableModel(PamhyrTableModel):
         if self._headers[column] == "sl":
             value = self._data.profile(row).sl
             if value is None:
-                text = _translate("SedimentLayers", "Not defined")
+                text = self._trad["not_defined"]
                 return text
             return str(value)
 
@@ -121,7 +121,7 @@ class TableModel(PamhyrTableModel):
 
         if self._headers[column] == "sl":
             new = None
-            if value != _translate("SedimentLayers", "Not defined"):
+            if value != self._trad["not_defined"]:
                 new = next(
                     filter(
                         lambda sl: str(sl) == value,
diff --git a/src/View/SedimentLayers/Reach/translate.py b/src/View/SedimentLayers/Reach/translate.py
index eb3f3cf0..496a0afc 100644
--- a/src/View/SedimentLayers/Reach/translate.py
+++ b/src/View/SedimentLayers/Reach/translate.py
@@ -34,7 +34,6 @@ class SedimentReachTranslate(SedimentTranslate):
             "SedimentLayers", "Apply sediment layers to reach"
         )
 
-        self._dict["nd"] = _translate("SedimentLayers", "Not defined")
         self._dict["kp"] = self._dict["unit_kp"]
         self._dict["height"] = self._dict["unit_height"]
 
diff --git a/src/View/Translate.py b/src/View/Translate.py
index 87297cea..9b23a57f 100644
--- a/src/View/Translate.py
+++ b/src/View/Translate.py
@@ -42,6 +42,9 @@ class CommonWordTranslate(PamhyrTranslate):
         self._dict["main_channel"] = _translate("CommonWord", "Main channel")
         self._dict["floodway"] = _translate("CommonWord", "Floodway")
 
+        self._dict["not_defined"] = _translate("CommonWord", "Not defined")
+        self._dict["not_associated"] = _translate("CommonWord", "Not associated")
+
 
 class UnitTranslate(CommonWordTranslate):
     def __init__(self):
-- 
GitLab