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: ...@@ -284,6 +284,7 @@ class Reach:
reverse=is_reversed reverse=is_reversed
) )
@trace
@timer @timer
def sort_with_indexes(self, indexes: list): def sort_with_indexes(self, indexes: list):
if len(self._profiles) != len(indexes): if len(self._profiles) != len(indexes):
......
...@@ -61,26 +61,25 @@ class DelCommand(QUndoCommand): ...@@ -61,26 +61,25 @@ class DelCommand(QUndoCommand):
self._reach.delete([self._index]) self._reach.delete([self._index])
class SortCommand(QUndoCommand): class SortCommand(QUndoCommand):
@timer def __init__(self, reach, _reverse):
def __init__(self, reach, old, new):
QUndoCommand.__init__(self) QUndoCommand.__init__(self)
self._reach = reach self._reach = reach
self._reverse = _reverse
old = self._reach.profiles
self._reach.sort(self._reverse)
new = self._reach.profiles
self._indexes = list( self._indexes = list(
map( map(
lambda p: old.index(p), lambda p: old.index(p),
new new
) )
) )
self._rindexes = list(
map(
lambda p: new.index(p),
old
)
)
def undo(self): def undo(self):
self._reach.sort_with_indexes(self._indexes) self._reach.sort_with_indexes(self._indexes)
def redo(self): def redo(self):
self._reach.sort_with_indexes(self._rindexes) self._reach.sort(self._reverse)
...@@ -103,7 +103,6 @@ class PandasModelEditable(QAbstractTableModel): ...@@ -103,7 +103,6 @@ class PandasModelEditable(QAbstractTableModel):
value value
) )
) )
self._reach.profile(index.row()).name = value
if index.column() == 1: if index.column() == 1:
self._undo_stack.push( self._undo_stack.push(
...@@ -113,7 +112,6 @@ class PandasModelEditable(QAbstractTableModel): ...@@ -113,7 +112,6 @@ class PandasModelEditable(QAbstractTableModel):
value value
) )
) )
self._reach.profile(index.row()).kp = value
self.dataChanged.emit(index, index) self.dataChanged.emit(index, index)
self.layoutChanged.emit() self.layoutChanged.emit()
...@@ -160,10 +158,15 @@ class PandasModelEditable(QAbstractTableModel): ...@@ -160,10 +158,15 @@ class PandasModelEditable(QAbstractTableModel):
self.endRemoveRows() self.endRemoveRows()
self.layoutChanged.emit() self.layoutChanged.emit()
@trace
def sort_profiles(self, _reverse): def sort_profiles(self, _reverse):
self.layoutAboutToBeChanged.emit() self.layoutAboutToBeChanged.emit()
self._reach.sort(_reverse) self._undo_stack.push(
SortCommand(
self._reach, _reverse
)
)
self.layoutAboutToBeChanged.emit() self.layoutAboutToBeChanged.emit()
self.layoutChanged.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