4 from settings import settings
5 from postoffice import postoffice
8 log = logging.getLogger(__name__)
10 class ImageDownloader(object):
12 TODO: background downloader of images
13 for album lists, track lists, etc
16 class AlbumList(gtk.TreeView):
18 gtk.TreeView.__init__(self)
19 self.__store = gtk.ListStore(str, int)
20 self.set_model(self.__store)
22 col = gtk.TreeViewColumn('Name')
23 self.append_column(col)
24 cell = gtk.CellRendererText()
25 col.pack_start(cell, True)
26 col.add_attribute(cell, 'text', 0)
27 self.set_search_column(0)
28 col.set_sort_column_id(0)
30 self.__show_artist = True
32 def add_album(self, album):
33 if self.__show_artist:
34 txt = "%s - %s" % (album.artist_name, album.name)
37 self.__store.append([txt, album.ID])
39 def get_album_id(self, path):
40 treeiter = self.__store.get_iter(path)
41 _, _id = self.__store.get(treeiter, 0, 1)
44 def show_artist(self, show):
45 self.__show_artist = show
47 class TrackList(gtk.TreeView):
48 def __init__(self, numbers = True):
49 gtk.TreeView.__init__(self)
50 self.track_numbers = numbers
51 self.__store = gtk.ListStore(int, str, int)
52 self.set_model(self.__store)
55 col0 = gtk.TreeViewColumn('Num')
56 self.append_column(col0)
57 cell0 = gtk.CellRendererText()
58 col0.pack_start(cell0, True)
59 col0.add_attribute(cell0, 'text', 0)
61 col = gtk.TreeViewColumn('Name')
62 self.append_column(col)
63 cell = gtk.CellRendererText()
64 col.pack_start(cell, True)
65 col.add_attribute(cell, 'text', 1)
67 self.set_search_column(1 if numbers else 0)
68 col.set_sort_column_id(0)
70 def add_track(self, track):
71 self.__store.append([track.numalbum, track.name, track.ID])
73 def get_track_id(self, path):
74 treeiter = self.__store.get_iter(path)
75 _, _, _id = self.__store.get(treeiter, 0, 1, 2)
78 class RadioList(gtk.TreeView):
80 gtk.TreeView.__init__(self)
81 self.__store = gtk.ListStore(str, int)
82 self.set_model(self.__store)
84 col = gtk.TreeViewColumn('Name')
85 self.append_column(col)
86 cell = gtk.CellRendererText()
87 col.pack_start(cell, True)
88 col.add_attribute(cell, 'text', 0)
90 self.set_search_column(0)
91 col.set_sort_column_id(0)
93 def add_radio(self, radio):
94 self.__store.append([self.radio_name(radio), radio.ID])
96 def get_radio_id(self, path):
97 treeiter = self.__store.get_iter(path)
98 name, _id = self.__store.get(treeiter, 0, 1)
101 def radio_name(self, radio):
103 return radio.idstr.capitalize()
107 return "Radio #%s" % (radio.ID)