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__)
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()
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)
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()
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")
'''
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()