All pastes #1455823 Raw Edit

quodlibet-2.0-albums-by-date-add

public diff v1 · immutable
#1455823 ·published 2009-06-10 20:58 UTC
rendered paste body
--- /usr/lib/python2.5/site-packages/quodlibet/browsers/albums.py	2008-09-14 05:19:55.000000000 +0200+++ albums.py	2008-11-09 00:21:38.000000000 +0100@@ -238,6 +238,7 @@             self.songs = set()             self.title = title             self.sort = sort+	    self.added = 0             # The key uniquely identifies the album; this way, albums             # with different MBIDs or different label IDs but the same             # title are different, and albums with different MBIDs@@ -315,6 +316,7 @@                  self.discs = max(self.discs, song("~#disc", 0))                 self.length += song.get("~#length", 0)+		self.added = max(self.discs, song("~#added", 0))              self.people = sorted(people.keys(), key=people.__getitem__)[:100]             self.peoplesort = sorted(@@ -381,9 +383,11 @@             model.set_sort_func(100, self.__compare_title)             model.set_sort_func(101, self.__compare_artist)             model.set_sort_func(102, self.__compare_date)+	    model.set_sort_func(103, self.__compare_added)              for text in [-                _("Sort by title"), _("Sort by artist"), _("Sort by date")+                _("Sort by title"), _("Sort by artist"),+		_("Sort by date"), _("Sort by added")                 ]: cbmodel.append(row=[text])              self.connect_object('changed', self.__set_cmp_func, model)@@ -424,6 +428,15 @@             elif not a2.date and a1.date: return -1             else: return (cmp(a1.date, a2.date) or cmp(a1.key, a2.key)) +        def __compare_added(self, model, i1, i2):+            a1, a2 = model[i1][0], model[i2][0]+            if (a1 and a2) is None: return cmp(a1, a2)+            elif not a1.sort: return 1+            elif not a2.sort: return -1+            elif not a1.added and a2.added: return 1+            elif not a2.added and a1.added: return -1+            else: return (cmp(a1.added, a2.added) or cmp(a1.key, a2.key))+     class _AlbumStore(gtk.ListStore):         __gsignals__ = { "row-changed": "override" }