View: LC: Use PamhyrTableModel.

This commit is contained in:
Pierre-Antoine Rouby committed 2023-09-11 15:20:59 +02:00
1 parent 650df2b56c
commit 602593a6cb
5 files changed
+61 -114

No files matched your search

+23 -49
View File
@@ -44,6 +44,8 @@ from View.LateralContribution.UndoCommand import (
from Model.LateralContribution.LateralContributionTypes import (
NotDefined, LateralContrib, Rain, Evaporation,
)
from View.Tools.PamhyrTable import PamhyrTableModel
from View.LateralContribution.translate import *
logger = logging.getLogger()
@@ -102,26 +104,13 @@ class ComboBoxDelegate(QItemDelegate):
self.commitData.emit(self.sender())
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
self._tab = tab
self._lcs = self._data.lateral_contribution
def flags(self, index):
options = Qt.ItemIsEnabled | Qt.ItemIsSelectable
options |= Qt.ItemIsEditable
return options
class TableModel(PamhyrTableModel):
def _setup_lst(self):
self._lst = self._data.lateral_contribution
self._tab = self._opt_data
def rowCount(self, parent):
return self._lcs.len(self._tab)
def columnCount(self, parent):
return len(self._headers)
return self._lst.len(self._tab)
def data(self, index, role):
if role != Qt.ItemDataRole.DisplayRole:
@@ -131,26 +120,19 @@ class TableModel(QAbstractTableModel):
column = index.column()
if self._headers[column] == "name":
return self._lcs.get(self._tab, row).name
return self._lst.get(self._tab, row).name
elif self._headers[column] == "type":
t = self._lcs.get(self._tab, row).lctype
t = self._lst.get(self._tab, row).lctype
return long_types[t]
elif self._headers[column] == "edge":
n = self._lcs.get(self._tab, row).edge
n = self._lst.get(self._tab, row).edge
if n is None:
return _translate("LateralContribution", "Not associate")
return n.name
elif self._headers[column] == "begin_kp":
return self._lcs.get(self._tab, row).begin_kp
return self._lst.get(self._tab, row).begin_kp
elif self._headers[column] == "end_kp":
return self._lcs.get(self._tab, row).end_kp
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 self._lst.get(self._tab, row).end_kp
return QVariant()
@@ -165,32 +147,32 @@ class TableModel(QAbstractTableModel):
if self._headers[column] == "name":
self._undo.push(
SetNameCommand(
self._lcs, self._tab, row, value
self._lst, self._tab, row, value
)
)
elif self._headers[column] == "type":
key = next(k for k, v in long_types.items() if v == value)
self._undo.push(
SetTypeCommand(
self._lcs, self._tab, row, LC_types[key]
self._lst, self._tab, row, LC_types[key]
)
)
elif self._headers[column] == "edge":
self._undo.push(
SetEdgeCommand(
self._lcs, self._tab, row, self._data.edge(value)
self._lst, self._tab, row, self._data.edge(value)
)
)
elif self._headers[column] == "begin_kp":
self._undo.push(
SetBeginCommand(
self._lcs, self._tab, row, value
self._lst, self._tab, row, value
)
)
elif self._headers[column] == "end_kp":
self._undo.push(
SetEndCommand(
self._lcs, self._tab, row, value
self._lst, self._tab, row, value
)
)
except Exception as e:
@@ -205,7 +187,7 @@ class TableModel(QAbstractTableModel):
self._undo.push(
AddCommand(
self._lcs, self._tab, row
self._lst, self._tab, row
)
)
@@ -217,7 +199,7 @@ class TableModel(QAbstractTableModel):
self._undo.push(
DelCommand(
self._lcs, self._tab, rows
self._lst, self._tab, rows
)
)
@@ -229,7 +211,7 @@ class TableModel(QAbstractTableModel):
self._undo.push(
SortCommand(
self._lcs, self._tab, False
self._lst, self._tab, False
)
)
@@ -246,7 +228,7 @@ class TableModel(QAbstractTableModel):
self._undo_stack.push(
MoveCommand(
self._lcs, self._tab,"up", row
self._lst, self._tab, "up", row
)
)
@@ -254,7 +236,7 @@ class TableModel(QAbstractTableModel):
self.layoutChanged.emit()
def move_down(self, index, parent=QModelIndex()):
if row > len(self._lcs):
if row > len(self._lst):
return
target = row
@@ -263,17 +245,9 @@ class TableModel(QAbstractTableModel):
self._undo_stack.push(
MoveCommand(
self._lcs, self._tab,"down", row
self._lst, self._tab, "down", row
)
)
self.endMoveRows()
self.layoutChanged.emit()
def undo(self):
self._undo.undo()
self.layoutChanged.emit()
def redo(self):
self._undo.redo()
self.layoutChanged.emit()