mirror of https://gitlab.com/pamhyr/pamhyr2
geometry: Fix sort undo command.
parent
51b9b3e1e4
commit
ea483e4d1e
|
|
@ -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):
|
||||||
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):
|
||||||
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):
|
||||||
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):
|
||||||
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()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue