Added ossohelper from panucci'
[jamaendo] / jamaui / ui.py
index af49880..efbd2b2 100644 (file)
@@ -10,9 +10,12 @@ import util
 import logging
 import gobject
 
+# we don't use the local DB...
 from jamaendo.api import LocalDB, Query, Queries, refresh_dump
 from jamaui.player import Player, Playlist
 
+import ossohelper
+
 gobject.threads_init()
 
 log = logging.getLogger(__name__)
@@ -27,6 +30,10 @@ except:
         log.critical('This ui only works in maemo')
         sys.exit(1)
 
+from dbus.mainloop.glib import DBusGMainLoop
+
+DBusGMainLoop(set_as_default=True)
+
 class RefreshDialog(object):
     def __init__(self):
         self.notebook = gtk.Notebook()
@@ -177,11 +184,19 @@ class SearchWindow(hildon.StackableWindow):
         hbox.pack_start(self.entry, True, True, 0)
         hbox.pack_start(btn, False)
 
+        btnbox = gtk.HBox()
+        playbtn = hildon.GtkButton(gtk.HILDON_SIZE_FINGER_HEIGHT)
+        playbtn.set_label("Play selected")
+        playbtn.connect('clicked', self.play_selected)
+        btnbox.pack_start(playbtn, False)
+
         self.results = hildon.TouchSelector(text=True)
         self.results.connect("changed", self.selection_changed)
+        self.results.set_column_selection_mode(hildon.TOUCH_SELECTOR_SELECTION_MODE_SINGLE)
 
         vbox.pack_start(hbox, False)
         vbox.pack_start(self.results, True, True, 0)
+        vbox.pack_start(btnbox, False)
 
         self.add(vbox)
 
@@ -192,29 +207,25 @@ class SearchWindow(hildon.StackableWindow):
     def on_search(self, w):
         txt = self.entry.get_text()
         print "Search for: %s" % (txt)
-        db = LocalDB()
-        db.connect()
-        for album in db.search_albums(txt):
-            title = "%s - %s" % (album['artist'], album['name'])
+        #db = LocalDB()
+        #db.connect()
+        for album in Queries.search_albums(query=txt):
+            title = "%s - %s" % (album['artist_name'], album['name'])
             self.idmap[title] = album
             print "Found %s" % (album)
             self.results.append_text(title)
 
     def selection_changed(self, results, userdata):
-        current_selection = results.get_current_text()
+        pass
+
+    def play_selected(self, btn):
+        current_selection = self.results.get_current_text()
 
         album = self.idmap[current_selection]
-        selected = [album['id']]
+        selected = [int(album['id'])]
         print "Selected: %s" % (selected)
-        album = None
-        db = LocalDB()
-        db.connect()
-        for a in db.get_albums(selected):
-            album = a
-            break
-
-        if album:
-            tracks = album['tracks']
+        tracks = Queries.album_tracks(selected)
+        if tracks:
             print "Playing: %s" % (tracks)
             self.pwnd = PlayerWindow(tracks)
             self.pwnd.show_all()
@@ -268,10 +279,11 @@ class Jamaui(object):
         player.connect("clicked", self.on_player)
         self.menu.append(player)
 
-        refresh = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
-        refresh.set_label("Refresh")
-        refresh.connect("clicked", self.on_refresh)
-        self.menu.append(refresh)
+        # Don't use localdb ATM
+        #refresh = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
+        #refresh.set_label("Refresh")
+        #refresh.connect("clicked", self.on_refresh)
+        #self.menu.append(refresh)
 
         menu_about = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
         menu_about.set_label("About")
@@ -376,11 +388,13 @@ class Jamaui(object):
     '''
 
     def run(self):
+        ossohelper.application_init('org.jamaendo', '0.1')
         self.create_window()
         self.create_menu()
         self.setup_widgets()
         self.window.show_all()
         gtk.main()
+        ossohelper.application_exit()
 
 if __name__=="__main__":
     ui = Jamaui()