geometry: Fix sort undo command.

mesh
Pierre-Antoine Rouby 2023-04-20 11:27:21 +02:00
parent 51b9b3e1e4
commit ea483e4d1e
3 changed files with 15 additions and 12 deletions

View File

@ -284,6 +284,7 @@ class Reach:
reverse=is_reversed
)
@trace
@timer
def sort_with_indexes(self, indexes: list):
if len(self._profiles) != len(indexes):

View File

@ -61,26 +61,25 @@ class DelCommand(QUndoCommand):
self._reach.delete([self._index])
class SortCommand(QUndoCommand):
@timer
def __init__(self, reach, old, new):
def __init__(self, reach, _reverse):
QUndoCommand.__init__(self)
self._reach = reach
self._reverse = _reverse
old = self._reach.profiles
self._reach.sort(self._reverse)
new = self._reach.profiles
self._indexes = list(
map(
lambda p: old.index(p),
new
)
)
self._rindexes = list(
map(
lambda p: new.index(p),
old
)
)
def undo(self):
self._reach.sort_with_indexes(self._indexes)
def redo(self):
self._reach.sort_with_indexes(self._rindexes)
self._reach.sort(self._reverse)

View File

@ -103,7 +103,6 @@ class PandasModelEditable(QAbstractTableModel):
value
)
)
self._reach.profile(index.row()).name = value
if index.column() == 1:
self._undo_stack.push(
@ -113,7 +112,6 @@ class PandasModelEditable(QAbstractTableModel):
value
)
)
self._reach.profile(index.row()).kp = value
self.dataChanged.emit(index, index)
self.layoutChanged.emit()
@ -160,10 +158,15 @@ class PandasModelEditable(QAbstractTableModel):
self.endRemoveRows()
self.layoutChanged.emit()
@trace
def sort_profiles(self, _reverse):
self.layoutAboutToBeChanged.emit()
self._reach.sort(_reverse)
self._undo_stack.push(
SortCommand(
self._reach, _reverse
)
)
self.layoutAboutToBeChanged.emit()
self.layoutChanged.emit()