Download links
[jamaendo] / jamaui / albumlist.py
diff --git a/jamaui/albumlist.py b/jamaui/albumlist.py
new file mode 100644 (file)
index 0000000..e851cdb
--- /dev/null
@@ -0,0 +1,70 @@
+import gtk
+import hildon
+import jamaendo
+from settings import settings
+from postoffice import postoffice
+import logging
+
+log = logging.getLogger(__name__)
+
+class AlbumList(gtk.TreeView):
+    def __init__(self):
+        gtk.TreeView.__init__(self)
+        self.__store = gtk.ListStore(str, int)
+        self.set_model(self.__store)
+
+        col = gtk.TreeViewColumn('Name')
+        self.append_column(col)
+        cell = gtk.CellRendererText()
+        col.pack_start(cell, True)
+        col.add_attribute(cell, 'text', 0)
+        self.set_search_column(0)
+        col.set_sort_column_id(0)
+
+        self.__show_artist = True
+
+    def add_album(self, album):
+        if self.__show_artist:
+            txt = "%s - %s" % (album.artist_name, album.name)
+        else:
+            txt = album.name
+        self.__store.append([txt, album.ID])
+
+    def get_album_id(self, path):
+        treeiter = self.__store.get_iter(path)
+        _, _id = self.__store.get(treeiter, 0, 1)
+        return _id
+
+    def show_artist(self, show):
+        self.__show_artist = show
+
+class TrackList(gtk.TreeView):
+    def __init__(self, numbers = True):
+        gtk.TreeView.__init__(self)
+        self.track_numbers = numbers
+        self.__store = gtk.ListStore(int, str, int)
+        self.set_model(self.__store)
+
+        if numbers:
+            col0 = gtk.TreeViewColumn('Num')
+            self.append_column(col0)
+            cell0 = gtk.CellRendererText()
+            col0.pack_start(cell0, True)
+            col0.add_attribute(cell0, 'text', 0)
+
+        col = gtk.TreeViewColumn('Name')
+        self.append_column(col)
+        cell = gtk.CellRendererText()
+        col.pack_start(cell, True)
+        col.add_attribute(cell, 'text', 1)
+
+        self.set_search_column(1 if numbers else 0)
+        col.set_sort_column_id(0)
+
+    def add_track(self, track):
+        self.__store.append([track.numalbum, track.name, track.ID])
+
+    def get_track_id(self, path):
+        treeiter = self.__store.get_iter(path)
+        _, _id = self.__store.get(treeiter, 0, 1)
+        return _id