From df4832244e9225c98696605cdf40efb658ccfdb9 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Tue, 13 Jun 2023 11:17:52 +0200 Subject: [PATCH] SolverParameters: Fix translate mechanism. /!\ (must be done for all previous window) --- src/View/SolverParameters/Table.py | 18 ++++++--- src/View/SolverParameters/UndoCommand.py | 1 + src/View/SolverParameters/Window.py | 4 +- src/View/SolverParameters/translate.py | 49 +++++++++++++++--------- 4 files changed, 47 insertions(+), 25 deletions(-) diff --git a/src/View/SolverParameters/Table.py b/src/View/SolverParameters/Table.py index 5d84ed6f..7b44159d 100644 --- a/src/View/SolverParameters/Table.py +++ b/src/View/SolverParameters/Table.py @@ -16,7 +16,7 @@ from PyQt5.QtWidgets import ( ) from View.SolverParameters.UndoCommand import * -from View.SolverParameters.translate import * +from View.SolverParameters import translate as tr from Solver.Solvers import solver_long_name, solver_type_list @@ -25,7 +25,7 @@ _translate = QCoreApplication.translate class TableModel(QAbstractTableModel): def __init__(self, data=None, undo=None, tab=""): super(QAbstractTableModel, self).__init__() - self._headers = list(table_headers.keys()) + self._headers = list(tr.table_headers.keys()) self._data = data self._undo = undo self._tab = tab @@ -57,17 +57,20 @@ class TableModel(QAbstractTableModel): if cname == "name": value = self._params.get(row)[cname] - if value in names: - value = names[value] + if value in tr.names: + value = tr.names[value] return value elif cname == "value": - return self._params.get(row)[cname] + value = self._params.get(row)[cname] + if value in tr.yes_no: + value = tr.yes_no[value] + return value return QVariant() def headerData(self, section, orientation, role): if role == Qt.ItemDataRole.DisplayRole and orientation == Qt.Orientation.Horizontal: - return table_headers[self._headers[section]] + return tr.table_headers[self._headers[section]] return QVariant() @@ -79,6 +82,9 @@ class TableModel(QAbstractTableModel): column = index.column() if self._headers[column] == "value": + if value in tr.r_yes_no: + value = tr.r_yes_no[value].lower() + self._undo.push( SetCommand( self._params, row, diff --git a/src/View/SolverParameters/UndoCommand.py b/src/View/SolverParameters/UndoCommand.py index 6a8dc1eb..fda0552f 100644 --- a/src/View/SolverParameters/UndoCommand.py +++ b/src/View/SolverParameters/UndoCommand.py @@ -23,4 +23,5 @@ class SetCommand(QUndoCommand): self._data.get(self._index)[self._column] = self._old def redo(self): + print(self._new) self._data.get(self._index)[self._column] = self._new diff --git a/src/View/SolverParameters/Window.py b/src/View/SolverParameters/Window.py index c5aa264a..c51926f9 100644 --- a/src/View/SolverParameters/Window.py +++ b/src/View/SolverParameters/Window.py @@ -25,7 +25,7 @@ from PyQt5.QtWidgets import ( from View.SolverParameters.UndoCommand import * from View.SolverParameters.Table import TableModel -from View.SolverParameters.translate import * +from View.SolverParameters import translate as tr from Solver.Solvers import solver_long_name, solver_type_list @@ -34,6 +34,8 @@ _translate = QCoreApplication.translate class SolverParametersWindow(ASubMainWindow, ListedSubWindow): def __init__(self, title="Solver parameters", study=None, parent=None): + tr.init() + title = title + " - " + study.name super(SolverParametersWindow, self).__init__( diff --git a/src/View/SolverParameters/translate.py b/src/View/SolverParameters/translate.py index 5d8a3a7d..1b394212 100644 --- a/src/View/SolverParameters/translate.py +++ b/src/View/SolverParameters/translate.py @@ -4,24 +4,37 @@ from PyQt5.QtCore import QCoreApplication _translate = QCoreApplication.translate -table_headers = { - "name": _translate("LateralContribution", "Name"), - "value": _translate("LateralContribution", "Value") -} +table_headers = None +yes_no = None +r_yes_no = None +names = None + +def init(): + global table_headers + table_headers = { + "name": _translate("LateralContribution", "Name"), + "value": _translate("LateralContribution", "Value") + } + + # Used to translate user parameter with value yes or no + global yes_no + yes_no = { + "yes": _translate("SolverParameters", "Yes"), + "no": _translate("SolverParameters", "No"), + "y": _translate("SolverParameters", "Y"), + "n": _translate("SolverParameters", "N"), + } -# Used to translate user parameter with value yes or no -yes_no = { - "yes": _translate("SolverParameters", "Yes"), - "no": _translate("SolverParameters", "No"), - "y": _translate("SolverParameters", "Y"), - "n": _translate("SolverParameters", "N"), # Reverse - _translate("SolverParameters", "Yes"): "Yes", - _translate("SolverParameters", "No"): "No", - _translate("SolverParameters", "Y"): "y", - _translate("SolverParameters", "N"): "n", -} + global r_yes_no + r_yes_no = { + _translate("SolverParameters", "Yes"): "yes", + _translate("SolverParameters", "No"): "no", + _translate("SolverParameters", "Y"): "y", + _translate("SolverParameters", "N"): "n", + } -names = { - "mage_time_step": _translate("SolverParameters", "Time step in second") -} + global names + names = { + "mage_time_step": _translate("SolverParameters", "Time step in second") + } -- GitLab