fix add/del/undo/redo in edit BoundaryConditionsAdisTS + quick fix in edit LateralContributionsAdisTS

This commit is contained in:
Dylan Jeannin committed 2026-05-05 17:50:45 +02:00
1 parent 99cb2883a1
commit 11e1302e05
6 files changed
+90 -19

No files matched your search

@@ -50,6 +50,22 @@ logger = logging.getLogger()
class TableModel(PamhyrTableModel):
def get_true_data_row(self, row):
if len(self._data.data) > 0:
bc = self._data.data[row]
else:
return 0
return next(
map(
lambda e: e[0],
filter(
lambda e: e[1] == bc,
enumerate(self._data._data)
)
), 0
)
def data(self, index, role):
if role == Qt.TextAlignmentRole:
return Qt.AlignHCenter | Qt.AlignVCenter
@@ -63,6 +79,7 @@ class TableModel(PamhyrTableModel):
value = QVariant()
if 0 <= column < 2:
row = self.get_true_data_row(row)
v = self._data._data[row][column]
if self._data._types[column] == float:
value = f"{v:.4f}"
@@ -84,6 +101,8 @@ class TableModel(PamhyrTableModel):
column = index.column()
try:
row = self.get_true_data_row(row)
self._undo.push(
SetDataCommand(
self._data, row, column, value
@@ -110,14 +129,20 @@ class TableModel(PamhyrTableModel):
def delete(self, rows, parent=QModelIndex()):
self.beginRemoveRows(parent, rows[0], rows[-1])
_rows = list(
map(
lambda r: self.get_true_data_row(r),
rows
)
)
self._undo.push(
DelCommand(
self._data, rows
self._data, _rows
)
)
self.endRemoveRows()
self.layoutChanged.emit()
def sort(self, _reverse, parent=QModelIndex()):
self.layoutAboutToBeChanged.emit()
@@ -80,10 +80,11 @@ class DelCommand(QUndoCommand):
def undo(self):
for row, el in self._bc:
self._data.insert(row, el)
el.set_as_not_deleted()
def redo(self):
self._data.delete_i(self._rows)
for row, el in self._bc:
el.set_as_deleted()
class PasteCommand(QUndoCommand):
@@ -52,6 +52,23 @@ logger = logging.getLogger()
class TableModel(PamhyrTableModel):
def get_true_data_row(self, row):
if len(self._data.data) > 0:
lc = self._data.data[row]
else:
return 0
return next(
map(
lambda e: e[0],
filter(
lambda e: e[1] == lc,
enumerate(self._data._data)
)
), 0
)
def data(self, index, role):
if role == Qt.TextAlignmentRole:
return Qt.AlignHCenter | Qt.AlignVCenter
@@ -65,6 +82,7 @@ class TableModel(PamhyrTableModel):
value = QVariant()
if 0 <= column < 2:
row = self.get_true_data_row(row)
v = self._data._data[row][column]
if self._data._types[column] == float:
value = f"{v:.4f}"
@@ -86,6 +104,8 @@ class TableModel(PamhyrTableModel):
column = index.column()
try:
row = self.get_true_data_row(row)
self._undo.push(
SetDataCommand(
self._data, row, column, value
@@ -113,10 +133,18 @@ class TableModel(PamhyrTableModel):
def delete(self, rows, parent=QModelIndex()):
self.beginRemoveRows(parent, rows[0], rows[-1])
_rows = list(
map(
lambda r: self.get_true_data_row(r),
rows
)
)
self._undo.push(
DelCommand(
self._data, rows
self._data, _rows
)
)
self.endRemoveRows()
self.layoutChanged.emit()
@@ -76,8 +76,8 @@ class DelCommand(QUndoCommand):
def undo(self):
for row, el in self._lc:
self._data._data.insert(row, el)
el.set_as_not_deleted()
def redo(self):
for row in self._rows:
del self._data._data[row]
for row, el in self._lc:
el.set_as_deleted()