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