mirror of
https://gitlab.com/pamhyr/pamhyr2.git
synced 2026-10-30 03:20:41 +01:00
geometry: Fix sort undo command.
This commit is contained in:
1 parent
51b9b3e1e4
commit
ea483e4d1e
3 files changed
+15
-12
No files matched your search
@@ -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()
|
||||
|
||||
Reference in new issue
Block a user