Download links
[jamaendo] / jamaui / albumlist.py
1 import gtk
2 import hildon
3 import jamaendo
4 from settings import settings
5 from postoffice import postoffice
6 import logging
7
8 log = logging.getLogger(__name__)
9
10 class AlbumList(gtk.TreeView):
11     def __init__(self):
12         gtk.TreeView.__init__(self)
13         self.__store = gtk.ListStore(str, int)
14         self.set_model(self.__store)
15
16         col = gtk.TreeViewColumn('Name')
17         self.append_column(col)
18         cell = gtk.CellRendererText()
19         col.pack_start(cell, True)
20         col.add_attribute(cell, 'text', 0)
21         self.set_search_column(0)
22         col.set_sort_column_id(0)
23
24         self.__show_artist = True
25
26     def add_album(self, album):
27         if self.__show_artist:
28             txt = "%s - %s" % (album.artist_name, album.name)
29         else:
30             txt = album.name
31         self.__store.append([txt, album.ID])
32
33     def get_album_id(self, path):
34         treeiter = self.__store.get_iter(path)
35         _, _id = self.__store.get(treeiter, 0, 1)
36         return _id
37
38     def show_artist(self, show):
39         self.__show_artist = show
40
41 class TrackList(gtk.TreeView):
42     def __init__(self, numbers = True):
43         gtk.TreeView.__init__(self)
44         self.track_numbers = numbers
45         self.__store = gtk.ListStore(int, str, int)
46         self.set_model(self.__store)
47
48         if numbers:
49             col0 = gtk.TreeViewColumn('Num')
50             self.append_column(col0)
51             cell0 = gtk.CellRendererText()
52             col0.pack_start(cell0, True)
53             col0.add_attribute(cell0, 'text', 0)
54
55         col = gtk.TreeViewColumn('Name')
56         self.append_column(col)
57         cell = gtk.CellRendererText()
58         col.pack_start(cell, True)
59         col.add_attribute(cell, 'text', 1)
60
61         self.set_search_column(1 if numbers else 0)
62         col.set_sort_column_id(0)
63
64     def add_track(self, track):
65         self.__store.append([track.numalbum, track.name, track.ID])
66
67     def get_track_id(self, path):
68         treeiter = self.__store.get_iter(path)
69         _, _id = self.__store.get(treeiter, 0, 1)
70         return _id