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

Stricklers: Fix sort command.

Showing with 15 additions and 15 deletions
+15 -15
...@@ -14,7 +14,7 @@ class StricklersList(object): ...@@ -14,7 +14,7 @@ class StricklersList(object):
return len(self._stricks) return len(self._stricks)
@property @property
def stricks(self): def stricklers(self):
return self._stricks.copy() return self._stricks.copy()
def get(self, index): def get(self, index):
...@@ -53,10 +53,15 @@ class StricklersList(object): ...@@ -53,10 +53,15 @@ class StricklersList(object):
) )
self.delete(stricks) self.delete(stricks)
def sort(self, reverse:bool = False): @timer
self._strick = sorted( def sort(self, reverse:bool = False, key=None):
self._strick, f = lambda st: st.name
key = lambda st: st.name, if key is not None:
f = key
self._stricks = sorted(
self._stricks,
key = f,
reverse = reverse, reverse = reverse,
) )
self._status.modified() self._status.modified()
...@@ -114,27 +114,22 @@ class SortCommand(QUndoCommand): ...@@ -114,27 +114,22 @@ class SortCommand(QUndoCommand):
self._data = data self._data = data
self._reverse = _reverse self._reverse = _reverse
self._old = self._data.get_tab(self._tab) self._old = self._data.stricklers
self._indexes = None self._indexes = None
def undo(self): def undo(self):
ll = self._data.get_tab(self._tab) ll = self._data.stricklers
self._data.sort( self._data.sort()
self._tab,
key=lambda x: self._indexes[ll.index(x)]
)
def redo(self): def redo(self):
self._data.sort( self._data.sort(
self._tab,
reverse=self._reverse, reverse=self._reverse,
key=lambda x: x.name
) )
if self._indexes is None: if self._indexes is None:
self._indexes = list( self._indexes = list(
map( map(
lambda p: self._old.index(p), lambda p: self._old.index(p),
self._data.get_tab(self._tab) self._data.stricklers
) )
) )
self._old = None self._old = None
......
...@@ -105,7 +105,7 @@ class StricklersWindow(ASubMainWindow, ListedSubWindow): ...@@ -105,7 +105,7 @@ class StricklersWindow(ASubMainWindow, ListedSubWindow):
self._table['study'].delete(rows) self._table['study'].delete(rows)
def sort(self): def sort(self):
self._table['study'].sort() self._table['study'].sort(False)
def copy(self): def copy(self):
print("TODO") print("TODO")
......
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