ocarina/ocarina/queue.py
Bryan Schumaker 5b5a232b43 ocarina: Add more callbacks
This should make the code more readable and useable
2011-05-01 12:11:52 -04:00

75 lines
1.5 KiB
Python

# Bryan Schumaker (12/12/2010)
import libsaria
import sources
import body
queue = libsaria.sources.queue
queue_page = sources.Source()
QUEUE_PAGE = body.add_page(queue_page, "Queue")
def set_label_text():
QUEUE_PAGE.label.set_text("Queue (%s)" % queue.num_visible())
def set_visible():
if queue.num_visible() == 0:
QUEUE_PAGE.hide()
else:
QUEUE_PAGE.show()
def fill_queue():
songs = queue.walk_queue("id", "title", "lenstr", "artist", "album", "year")
queue_page.insert(songs)
set_label_text()
set_visible()
fill_queue()
def refresh():
queue_page.clear()
fill_queue()
def do_refilter(list, iter):
return queue.is_visible(list[iter][0])
queue_page.set_filter_func(do_refilter)
def filter(text):
queue.filter(text)
queue_page.refilter()
set_label_text()
QUEUE_PAGE.filter = filter
def add_to_queue(menu):
ids = menu.source.get_selected_ids()
queue.add_ids(ids)
refresh()
def rm_from_queue(menu):
ids = menu.source.get_selected_ids()
queue.rm_ids(ids)
refresh()
menu_items = [
("Remove from Queue", rm_from_queue),
]
def show_menu(event):
m = sources.Menu(queue_page, menu_items)
m.show(event)
queue_page.set_right_click(show_menu)
#def init():
#body.add_page("Queue", queue_page)
#sources.init_src(queue.init_bg, filler)
#def filler():
#queue_page.init(filter, is_visible, right_click, play_id, reset)
#menu.add_queue_menu_item("Remove from queue", rm_selected_from_queue)
#queue_page.fill(queue.walk, True)
#def reset():
#queue_page.clear()
#queue.reset()
#def play_id(id):
#queue.play_id(id)
#refresh()