X-Git-Url: http://git.maemo.org/git/?p=jamaendo;a=blobdiff_plain;f=jamaui%2Ffavorites.py;h=d607a8ba4bb866af541542b7c7c09e1b6c35ab52;hp=7ba382707537875c6fc4d1961fcf1dd91db30562;hb=44b759cfcfb80d94ddac5ea11302a6f94cb307b4;hpb=75215e5b54a5357384db5166fbecaa65164d8b94;ds=sidebyside
diff --git a/jamaui/favorites.py b/jamaui/favorites.py
index 7ba3827..d607a8b 100644
--- a/jamaui/favorites.py
+++ b/jamaui/favorites.py
@@ -1,3 +1,26 @@
+#!/usr/bin/env python
+#
+# This file is part of Jamaendo.
+# Copyright (c) 2010 Kristoffer Gronlund
+#
+# Jamaendo is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Jamaendo is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Jamaendo. If not, see .
+#
+# Player code heavily based on http://thpinfo.com/2008/panucci/:
+# A resuming media player for Podcasts and Audiobooks
+# Copyright (c) 2008-05-26 Thomas Perl
+# (based on http://pygstdocs.berlios.de/pygst-tutorial/seeking.html)
+#
import gtk
import hildon
import jamaendo
@@ -7,6 +30,8 @@ from showalbum import ShowAlbum
from settings import settings
import logging
+from albumlist import AlbumList
+
log = logging.getLogger(__name__)
def _alist(l, match):
@@ -23,43 +48,33 @@ class FavoritesWindow(hildon.StackableWindow):
if settings.user:
# Results list
self.panarea = hildon.PannableArea()
- self.result_store = gtk.ListStore(str, int)
- #self.result_store.append(['red'])
- self.result_view = gtk.TreeView(self.result_store)
- col = gtk.TreeViewColumn('Name')
- self.result_view.append_column(col)
- cell = gtk.CellRendererText()
- col.pack_start(cell, True)
- col.add_attribute(cell, 'text', 0)
- self.result_view.set_search_column(0)
- col.set_sort_column_id(0)
- self.result_view.connect('row-activated', self.row_activated)
-
- self.panarea.add(self.result_view)
+ self.results = AlbumList()
+ self.results.connect('row-activated', self.row_activated)
+ self.panarea.add(self.results)
self.idmap = {}
+
+ def add_album(ID, album_factory):
+ if ID not in self.idmap:
+ album = album_factory()
+ self.idmap[ID] = album
+ self.results.add_album(album)
+
try:
for item in jamaendo.favorite_albums(settings.user):
- self.idmap[item.ID] = item
- self.result_store.append([self.get_item_text(item), item.ID])
+ add_album(item.ID, lambda: item)
except jamaendo.JamendoAPIException, e:
msg = "Query failed, is the user name '%s' correct?" % (settings.user)
banner = hildon.hildon_banner_show_information(self, '',
msg)
banner.set_timeout(3000)
-
- def add_album(albumid):
- album = jamaendo.get_album(albumid)
- self.idmap[albumid] = album
- self.result_store.append([self.get_item_text(album), albumid])
-
for item in settings.favorites:
try:
if isinstance(item, tuple) and len(item) == 2:
ftype, fid = item
if ftype == 'album':
- add_album(fid)
+ add_album(fid, lambda: jamaendo.get_album(fid))
except jamaendo.JamendoAPIException, e:
log.exception("jamaendo.get_album(%s)"%(fid))
@@ -100,8 +115,7 @@ enter your username
return button
def row_activated(self, treeview, path, view_column):
- treeiter = self.result_store.get_iter(path)
- title, _id = self.result_store.get(treeiter, 0, 1)
+ _id = self.results.get_album_id(path)
item = self.idmap[_id]
print _id, item
self.open_item(item)