From ffebfbdddc84acad268000c7a0c607c6b23ad3dd Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Tue, 19 Sep 2023 14:59:47 +0200 Subject: [PATCH] Stricklers: Switch stricklers table to PamhyrTableModel and fix translate. --- src/View/Stricklers/Table.py | 31 ++++--------------------------- src/View/Stricklers/Window.py | 6 ++++++ src/View/Stricklers/translate.py | 6 ++++++ src/View/Tools/PamhyrTable.py | 1 - 4 files changed, 16 insertions(+), 28 deletions(-) diff --git a/src/View/Stricklers/Table.py b/src/View/Stricklers/Table.py index 5d32cda5..58700803 100644 --- a/src/View/Stricklers/Table.py +++ b/src/View/Stricklers/Table.py @@ -34,37 +34,19 @@ from PyQt5.QtWidgets import ( QComboBox, ) +from View.Tools.PamhyrTable import PamhyrTableModel + from View.Stricklers.UndoCommand import ( SetNameCommand, SetCommentCommand, SetMinorCommand, SetMediumCommand, AddCommand, DelCommand, SortCommand, ) -from View.Stricklers.translate import * - logger = logging.getLogger() _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._data = data - self._undo = undo - - def flags(self, index): - options = Qt.ItemIsEnabled | Qt.ItemIsSelectable - options |= Qt.ItemIsEditable - - return options - - def rowCount(self, parent): - return len(self._data) - - def columnCount(self, parent): - return len(self._headers) - +class TableModel(PamhyrTableModel): def data(self, index, role): if role != Qt.ItemDataRole.DisplayRole: return QVariant() @@ -83,12 +65,7 @@ class TableModel(QAbstractTableModel): 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 QVariant() - + @pyqtSlot() def setData(self, index, value, role=Qt.EditRole): if not index.isValid() or role != Qt.EditRole: return False diff --git a/src/View/Stricklers/Window.py b/src/View/Stricklers/Window.py index 8726f971..12620c4f 100644 --- a/src/View/Stricklers/Window.py +++ b/src/View/Stricklers/Window.py @@ -44,6 +44,7 @@ from Model.Stricklers.Stricklers import Stricklers from View.Stricklers.UndoCommand import PasteCommand from View.Stricklers.Table import TableModel +from View.Stricklers.translate import table_headers, retranslate _translate = QCoreApplication.translate @@ -74,7 +75,9 @@ class StricklersWindow(ASubMainWindow, ListedSubWindow): self.copy_sc = QShortcut(QKeySequence.Copy, self) self.paste_sc = QShortcut(QKeySequence.Paste, self) + def setup_table(self): + retranslate() self._table = {} for t in ["app", "study"]: @@ -85,6 +88,9 @@ class StricklersWindow(ASubMainWindow, ListedSubWindow): data = self._config.stricklers self._table[t] = TableModel( + table_view = table, + table_headers = table_headers, + editable_headers = ["name", "comment", "minor", "medium"], data = data, undo = self._undo_stack, ) diff --git a/src/View/Stricklers/translate.py b/src/View/Stricklers/translate.py index ccafd5d8..9102ac6d 100644 --- a/src/View/Stricklers/translate.py +++ b/src/View/Stricklers/translate.py @@ -30,3 +30,9 @@ table_headers = { "medium": _translate("LateralContribution", "Medium bed"), "comment": _translate("LateralContribution", "Comment"), } + +def retranslate(): + table_headers["name"] = _translate("LateralContribution", "Name") + table_headers["minor"] = _translate("LateralContribution", "Minor bed") + table_headers["medium"] = _translate("LateralContribution", "Medium bed") + table_headers["comment"] = _translate("LateralContribution", "Comment") diff --git a/src/View/Tools/PamhyrTable.py b/src/View/Tools/PamhyrTable.py index 9433d775..623ebd3b 100644 --- a/src/View/Tools/PamhyrTable.py +++ b/src/View/Tools/PamhyrTable.py @@ -121,7 +121,6 @@ class PamhyrTableModel(QAbstractTableModel): def headerData(self, section, orientation, role): if role == Qt.ItemDataRole.DisplayRole and orientation == Qt.Orientation.Horizontal: - logger.info(self._table_headers[self._headers[section]]) return self._table_headers[self._headers[section]] return QVariant() -- GitLab