Commit ea483e4d authored by Pierre-Antoine Rouby's avatar Pierre-Antoine Rouby
Browse files

geometry: Fix sort undo command.

Showing with 15 additions and 12 deletions
+15 -12
......@@ -284,6 +284,7 @@ class Reach:
reverse=is_reversed
)
@trace
@timer
def sort_with_indexes(self, indexes: list):
if len(self._profiles) != len(indexes):
......
......@@ -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)
......@@ -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()
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment