diff --git a/src/View/LateralContribution/Edit/Plot.py b/src/View/LateralContribution/Edit/Plot.py index 5843ee56ab6a150ddac588a012a98493f56f6ad0..ea1c04547d5ea66d2637a222974d9577be6a586f 100644 --- a/src/View/LateralContribution/Edit/Plot.py +++ b/src/View/LateralContribution/Edit/Plot.py @@ -19,7 +19,7 @@ from datetime import datetime from tools import timer, trace -from View.Plot.APlot import APlot +from View.Tools.PamhyrPlot import PamhyrPlot from PyQt5.QtCore import ( QCoreApplication @@ -29,15 +29,19 @@ from View.LateralContribution.Edit.translate import * _translate = QCoreApplication.translate -class Plot(APlot): - def __init__(self, canvas=None, data=None, - mode = "time", toolbar=None): +class Plot(PamhyrPlot): + def __init__(self, mode = "time", data=None, + canvas=None, trad=None, toolbar=None, + parent=None): super(Plot, self).__init__( - canvas=canvas, - data=data, - toolbar=toolbar + canvas = canvas, + trad = trad, + data = data, + toolbar = toolbar, + parent = parent ) + self._table_headers = self._trad.get_dict("table_headers") self._mode = mode def custom_ticks(self): @@ -105,10 +109,10 @@ class Plot(APlot): # Plot label header = self.data.header self.canvas.axes.set_xlabel( - table_headers[header[0]], color='black', fontsize=10 + self._table_headers[header[0]], color='black', fontsize=10 ) self.canvas.axes.set_ylabel( - table_headers[header[1]], color='black', fontsize=10 + self._table_headers[header[1]], color='black', fontsize=10 ) self.canvas.axes.autoscale_view(True, True, True) diff --git a/src/View/LateralContribution/Edit/Window.py b/src/View/LateralContribution/Edit/Window.py index f37c1759b31db6500450307d4ce00dee2a3f2da7..55f1307fd89976c069a66500ce7fb0831d7a6069 100644 --- a/src/View/LateralContribution/Edit/Window.py +++ b/src/View/LateralContribution/Edit/Window.py @@ -36,11 +36,10 @@ from PyQt5.QtWidgets import ( QHeaderView, ) -from View.Plot.MplCanvas import MplCanvas -from View.Plot.PamhyrToolbar import PamhyrPlotToolbar +from View.Tools.Plot.PamhyrCanvas import MplCanvas +from View.Tools.Plot.PamhyrToolbar import PamhyrPlotToolbar -from View.LateralContribution.translate import long_types -from View.LateralContribution.Edit.translate import table_headers, retranslate +from View.LateralContribution.Edit.translate import LCETranslate from View.LateralContribution.Edit.Table import TableModel from View.LateralContribution.Edit.Plot import Plot @@ -54,6 +53,7 @@ class EditLateralContributionWindow(PamhyrWindow): study=None, config=None, parent=None): self._data = data + trad = LCETranslate() name = self._pamhyr_name if self._data is not None: @@ -63,13 +63,14 @@ class EditLateralContributionWindow(PamhyrWindow): _translate("Edit lateral contribution", self._pamhyr_name) + f" - {study.name} " + f" - {self._data.name} ({self._data.id}) " + - f"({long_types[self._data.lctype]} - {edge_name})" + f"({trad.get_dict('long_types')[self._data.lctype]} - {edge_name})" ) super(EditLateralContributionWindow, self).__init__( title = name, study = study, config = config, + trad = trad, parent = parent ) @@ -78,17 +79,17 @@ class EditLateralContributionWindow(PamhyrWindow): self.setup_connections() def setup_table(self): - retranslate() - headers = {} - for h in self._data.header: - headers[h] = table_headers[h] - self._delegate_time = PamhyrExTimeDelegate( data = self._data, mode = self._study.time_system, parent = self ) + headers = {} + table_headers = self._trad.get_dict("table_headers") + for h in self._data.header: + headers[h] = table_headers[h] + table = self.find(QTableView, "tableView") self._table = TableModel( table_view = table, @@ -99,6 +100,7 @@ class EditLateralContributionWindow(PamhyrWindow): }, data = self._data, undo = self._undo_stack, + trad = self._trad, opt_data = self._study.time_system ) @@ -121,6 +123,8 @@ class EditLateralContributionWindow(PamhyrWindow): data = self._data, mode = self._study.time_system, toolbar = self.toolbar, + trad = self._trad, + parent = self ) self.plot.draw() diff --git a/src/View/LateralContribution/Edit/translate.py b/src/View/LateralContribution/Edit/translate.py index f04534e01d34aeaa36da46f4d23026ca91635fb8..247cdc4e08fe67626a8baca04c7dadf32dde194f 100644 --- a/src/View/LateralContribution/Edit/translate.py +++ b/src/View/LateralContribution/Edit/translate.py @@ -18,21 +18,20 @@ from PyQt5.QtCore import QCoreApplication +from View.Tools.PamhyrTranslate import PamhyrTranslate +from View.LateralContribution.translate import LCTranslate + _translate = QCoreApplication.translate -table_headers = { - "x": _translate("LateralContribution", "X"), - "y": _translate("LateralContribution", "Y"), - "time": _translate("LateralContribution", "Time"), - "date": _translate("LateralContribution", "Date"), - "discharge": _translate("LateralContribution", "Discharge (m³/s)"), - "z": _translate("LateralContribution", "Z (m)") -} +class LCETranslate(LCTranslate): + def __init__(self): + super(LCETranslate, self).__init__() -def retranslate(): - table_headers["x"] = _translate("LateralContribution", "X") - table_headers["y"] = _translate("LateralContribution", "Y") - table_headers["time"] = _translate("LateralContribution", "Time") - table_headers["date"] = _translate("LateralContribution", "Date") - table_headers["discharge"] = _translate("LateralContribution", "Discharge (m³/s)") - table_headers["z"] = _translate("LateralContribution", "Z (m)") + self._sub_dict["table_headers"] = { + "x": _translate("LateralContribution", "X"), + "y": _translate("LateralContribution", "Y"), + "time": _translate("LateralContribution", "Time"), + "date": _translate("LateralContribution", "Date"), + "discharge": _translate("LateralContribution", "Discharge (m³/s)"), + "z": _translate("LateralContribution", "Z (m)") + } diff --git a/src/View/LateralContribution/Table.py b/src/View/LateralContribution/Table.py index 2a3f41961bbba6cdbb95cdb6542b5ea1466449fb..3c5f5cb79ae314c9bb9b37ddd530f661e2f63584 100644 --- a/src/View/LateralContribution/Table.py +++ b/src/View/LateralContribution/Table.py @@ -46,22 +46,24 @@ from Model.LateralContribution.LateralContributionTypes import ( ) from View.Tools.PamhyrTable import PamhyrTableModel -from View.LateralContribution.translate import * +from View.LateralContribution.translate import LC_types logger = logging.getLogger() _translate = QCoreApplication.translate class ComboBoxDelegate(QItemDelegate): - def __init__(self, data=None, mode="type", tab="", parent=None): + def __init__(self, data=None, mode="type", tab="", trad = None, parent=None): super(ComboBoxDelegate, self).__init__(parent) self._data = data self._mode = mode self._tab = tab + self._trad = trad def createEditor(self, parent, option, index): self.editor = QComboBox(parent) + long_types = self._trad.get_dict("long_types") if self._mode == "type": lst = list( @@ -108,6 +110,7 @@ class TableModel(PamhyrTableModel): def _setup_lst(self): self._lst = self._data.lateral_contribution self._tab = self._opt_data + self._long_types = self._trad.get_dict("long_types") def rowCount(self, parent): return self._lst.len(self._tab) @@ -123,7 +126,7 @@ class TableModel(PamhyrTableModel): return self._lst.get(self._tab, row).name elif self._headers[column] == "type": t = self._lst.get(self._tab, row).lctype - return long_types[t] + return self._long_types[t] elif self._headers[column] == "edge": n = self._lst.get(self._tab, row).edge if n is None: @@ -151,7 +154,7 @@ class TableModel(PamhyrTableModel): ) ) elif self._headers[column] == "type": - key = next(k for k, v in long_types.items() if v == value) + key = next(k for k, v in self._long_types.items() if v == value) self._undo.push( SetTypeCommand( self._lst, self._tab, row, LC_types[key] diff --git a/src/View/LateralContribution/Window.py b/src/View/LateralContribution/Window.py index 2793ee36990648221c5d45bf07294612a34410f1..467f2a4b40a6f45f826939c91e952555f2563a2a 100644 --- a/src/View/LateralContribution/Window.py +++ b/src/View/LateralContribution/Window.py @@ -53,16 +53,13 @@ from View.LateralContribution.Table import ( TableModel, ComboBoxDelegate ) -from View.Plot.MplCanvas import MplCanvas +from View.Tools.Plot.PamhyrCanvas import MplCanvas from View.Geometry.PlotXY import PlotXY from View.LateralContribution.translate import ( - long_types, table_headers, LC_types, - retranslate, + LC_types, LCTranslate, ) from View.LateralContribution.Edit.Window import EditLateralContributionWindow -_translate = QCoreApplication.translate - logger = logging.getLogger() class LateralContributionWindow(PamhyrWindow): @@ -75,6 +72,7 @@ class LateralContributionWindow(PamhyrWindow): super(LateralContributionWindow, self).__init__( title = name, study = study, + trad = LCTranslate(), config = config, parent=parent ) @@ -86,7 +84,6 @@ class LateralContributionWindow(PamhyrWindow): self.setup_connections() def setup_table(self): - retranslate() self._table = {} for t in ["liquid", "solid", "suspenssion"]: @@ -94,19 +91,21 @@ class LateralContributionWindow(PamhyrWindow): data = self._study.river, mode = "type", tab = t, + trad = self._trad, parent=self ) self._delegate_edge = ComboBoxDelegate( data = self._study.river, mode = "edge", tab = t, + trad = self._trad, parent=self ) table = self.find(QTableView, f"tableView_{t}") self._table[t] = TableModel( table_view = table, - table_headers = table_headers, + table_headers = self._trad.get_dict("table_headers"), editable_headers = True, delegates = { "type": self._delegate_type, @@ -114,6 +113,7 @@ class LateralContributionWindow(PamhyrWindow): }, data = self._study.river, undo = self._undo_stack, + trad = self._trad, opt_data = t, ) table.setModel(self._table[t]) diff --git a/src/View/LateralContribution/translate.py b/src/View/LateralContribution/translate.py index cf430824e155df8d6378974deaf763de8e18f37c..aaf44798ce9c7ba2f04f4949c8f6e9c6c816b26c 100644 --- a/src/View/LateralContribution/translate.py +++ b/src/View/LateralContribution/translate.py @@ -18,27 +18,14 @@ from PyQt5.QtCore import QCoreApplication +from View.Tools.PamhyrTranslate import PamhyrTranslate + from Model.LateralContribution.LateralContributionTypes import ( NotDefined, LateralContrib, Rain, Evaporation, ) _translate = QCoreApplication.translate -long_types = { - "ND": _translate("LateralContribution", "Not defined"), - "LC": _translate("LateralContribution", "Lateral contribution"), - "RA": _translate("LateralContribution", "Rain"), - "EV": _translate("LateralContribution", "Evaporation"), -} - -table_headers = { - "name": _translate("LateralContribution", "Name"), - "type": _translate("LateralContribution", "Type"), - "edge": _translate("LateralContribution", "Reach"), - "begin_kp": _translate("LateralContribution", "Begin kp (m)"), - "end_kp": _translate("LateralContribution", "End kp (m)") -} - LC_types = { "ND": NotDefined, "LC": LateralContrib, @@ -46,14 +33,21 @@ LC_types = { "EV": Evaporation, } -def retranslate(): - table_headers["name"] = _translate("LateralContribution", "Name") - table_headers["type"] = _translate("LateralContribution", "Type") - table_headers["edge"] = _translate("LateralContribution", "Reach") - table_headers["begin_kp"] = _translate("LateralContribution", "Begin kp (m)") - table_headers["end_kp"] = _translate("LateralContribution", "End kp (m)") - - long_types["ND"] = _translate("LateralContribution", "Not defined") - long_types["LC"] = _translate("LateralContribution", "Lateral contribution") - long_types["RA"] = _translate("LateralContribution", "Rain") - long_types["EV"] = _translate("LateralContribution", "Evaporation") +class LCTranslate(PamhyrTranslate): + def __init__(self): + super(LCTranslate, self).__init__() + + self._sub_dict["long_types"] = { + "ND": _translate("LateralContribution", "Not defined"), + "LC": _translate("LateralContribution", "Lateral contribution"), + "RA": _translate("LateralContribution", "Rain"), + "EV": _translate("LateralContribution", "Evaporation"), + } + + self._sub_dict["table_headers"] = { + "name": _translate("LateralContribution", "Name"), + "type": _translate("LateralContribution", "Type"), + "edge": _translate("LateralContribution", "Reach"), + "begin_kp": _translate("LateralContribution", "Begin kp (m)"), + "end_kp": _translate("LateralContribution", "End kp (m)") + } diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py index 266dc321f92b3098fa2e42893107500eaf4c3f99..5ee7a3828fd8ccbdcf3d6d26b3122f16f92f3e27 100644 --- a/src/View/MainWindow.py +++ b/src/View/MainWindow.py @@ -46,7 +46,7 @@ from View.About.Window import AboutWindow from View.Network.Window import NetworkWindow from View.Geometry.Window import GeometryWindow from View.BoundaryCondition.Window import BoundaryConditionWindow -# from View.LateralContribution.Window import LateralContributionWindow +from View.LateralContribution.Window import LateralContributionWindow # from View.InitialConditions.Window import InitialConditionsWindow # from View.Stricklers.Window import StricklersWindow # from View.Frictions.Window import FrictionsWindow diff --git a/src/View/Tools/PamhyrWidget.py b/src/View/Tools/PamhyrWidget.py index 8c85b1c1af450c3c39bb79b2f308f5f2fb80582a..f906beedd3dc2d8e836c53c5d75c1a197f905248 100644 --- a/src/View/Tools/PamhyrWidget.py +++ b/src/View/Tools/PamhyrWidget.py @@ -18,6 +18,8 @@ import logging +from datetime import datetime, timedelta + from PyQt5.QtCore import ( QModelIndex, QRect, QTime, QDateTime, )