1 #!/usr/bin/env python2.5
4 from tracker_backend import TrackerBackend
5 from album_art_spec import getCoverArtThumbFileName
6 from download_dialog import MussorgskyAlbumArtDownloadDialog
8 class MussorgskyAlbumArtPanel (hildon.StackableWindow):
11 hildon.StackableWindow.__init__ (self)
12 self.set_title ("Album art handling")
13 self.set_border_width (12)
15 self.model = gtk.ListStore (str, gtk.gdk.Pixbuf, str, str)
17 self.tracker = TrackerBackend ()
19 pairs = self.tracker.get_all_pairs_artist_album ()
23 album_art_path = getCoverArtThumbFileName (p[1])
25 pixbuf = gtk.gdk.pixbuf_new_from_file_at_size (album_art_path, 124, 124)
26 except gobject.GError:
28 t = ("<b>%s</b>\n<small>%s</small>" % (p[1], p[0]), pixbuf, p[0], p[1])
32 self.treeview.set_model (self.model)
34 def __create_view (self):
35 vbox = gtk.VBox (spacing=12, homogeneous=False)
37 self.treeview = gtk.TreeView ()
38 self.treeview.connect ("row-activated", self.row_activated_cb)
40 artist_column = gtk.TreeViewColumn ("Artist", gtk.CellRendererText (), markup=0)
41 self.treeview.append_column (artist_column)
43 album_art = gtk.TreeViewColumn ("Album art", gtk.CellRendererPixbuf (), pixbuf=1)
44 self.treeview.append_column (album_art)
46 vbox.add (self.treeview)
51 menu = hildon.AppMenu ()
52 automatic_retrieval = hildon.Button (hildon.BUTTON_STYLE_NORMAL,
53 hildon.BUTTON_ARRANGEMENT_HORIZONTAL)
54 automatic_retrieval.set_title ("Automatic retrieval")
55 automatic_retrieval.connect ("clicked", self.get_all_album_art)
56 menu.append (automatic_retrieval)
58 self.set_app_menu (menu)
60 def get_all_album_art (self, user_data):
61 dialog = MussorgskyAlbumArtDownloadDialog (self)
63 dialog.do_the_job (self.model)
65 def row_activated_cb (self, treeview, path, view_colum):
66 print "Get alternatives for..."
67 it = treeview.get_model ().get_iter (path)
68 print treeview.get_model ().get_value (it, 3)
72 if __name__ == "__main__":
74 window = MussorgskyAlbumArtPanel ()
75 window.connect ("destroy", gtk.main_quit )