Fix reversing changes

The threading change broke reversing changes because the reversing
code used an iterator and the threading code expected a list.  We
don't need to keep a copy of the original, so just modify the list
in place when reversing, so we end up with a list in both cases.

Change-Id: I577546b09f35829c4a91e7f2922f21ed26b50a1c
This commit is contained in:
James E. Blair 2015-02-13 07:12:34 -08:00
parent 5a4ee52ab5
commit e89f5d7818

View File

@ -200,22 +200,20 @@ class ChangeListView(urwid.WidgetWrap):
def refresh(self):
unseen_keys = set(self.change_rows.keys())
with self.app.db.getSession() as session:
lst = session.getChanges(self.query, self.unreviewed,
sort_by=self.sort_by)
change_list = session.getChanges(self.query, self.unreviewed,
sort_by=self.sort_by)
if self.unreviewed:
self.title = u'Unreviewed changes in %s' % self.query_desc
else:
self.title = u'All changes in %s' % self.query_desc
self.app.status.update(title=self.title)
categories = set()
for change in lst:
for change in change_list:
categories |= set(change.getCategories())
self.categories = sorted(categories)
i = 0
if self.reverse:
change_list = reversed(lst)
else:
change_list = lst
change_list.reverse()
if self.app.config.thread_changes:
change_list = self._threadChanges(change_list)
new_rows = []
@ -244,7 +242,7 @@ class ChangeListView(urwid.WidgetWrap):
else:
pos = min(focus_pos, len(self.listbox.body)-1)
self.listbox.body.set_focus(pos)
if lst:
if change_list:
self.header.update(self.categories)
for key in unseen_keys:
row = self.change_rows[key]