ocarina/ocarina/queue.py

59 lines
1.1 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")
QUEUE_PAGE.goto = queue_page.goto
def set_label_text():
QUEUE_PAGE.label.set_text("Queue (%s)" % queue.num_visible())
def set_visible():
if queue.num_visible() == 0:
body.hide_page(QUEUE_PAGE)
else:
body.show_page(QUEUE_PAGE)
def fill_queue():
songs = libsaria.sources.list_queue(*sources.column.attrs)
queue_page.insert(songs)
set_label_text()
set_visible()
fill_queue()
def refresh():
queue_page.clear()
fill_queue()
def refilter():
queue_page.refilter()
set_label_text()
def clear():
queue_page.clear()
queue.reset()
refresh()
QUEUE_PAGE.clear = clear
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)