From e89f5d78185c4c85d98f531febbbb0d3d758d073 Mon Sep 17 00:00:00 2001
From: "James E. Blair" <jeblair@hp.com>
Date: Fri, 13 Feb 2015 07:12:34 -0800
Subject: [PATCH] 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
---
 gertty/view/change_list.py | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/gertty/view/change_list.py b/gertty/view/change_list.py
index 8b307d0..69c01d3 100644
--- a/gertty/view/change_list.py
+++ b/gertty/view/change_list.py
@@ -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]