ocarina/ocarina/library.py
Bryan Schumaker d380d0ec45 Use built-in selected_foreach
I also made a wrapper so I can do things with each selected ID.
2010-12-17 08:18:33 -05:00

60 lines
1.3 KiB
Python

# Bryan Schumaker (11/26/2010)
import ocarina
from ocarina import body
from ocarina import source
import menu
gtk = ocarina.gtk
sources = ocarina.libsaria.sources
library = sources.library
visible = library.is_visible
add2plist = None
libsaria = ocarina.libsaria
lib_page = source.Source()
def init():
body.add_page("Library", lib_page)
sources.init_src(library.init_bg, filler)
libsaria.event.invite("POSTNEWSOURCE", refresh)
def filler():
lib_page.init(filter, is_visible, right_click, library.play_id, reset)
menu.add_lib_menu_item("Add to queue", add_selected_to_queue)
menu.add_lib_menu_item("Add to playlist", add_selected_to_playlist)
lib_page.fill(library.walk, True)
def filter(text):
library.filter(text)
lib_page.refilter()
lib_page.goto()
def is_visible(list, iter):
return visible(list[iter][0])
def reset():
import playlist
playlist.reset()
lib_page.clear()
library.reset()
library.save()
def refresh(*args):
lib_page.clear()
lib_page.fill(library.walk)
def right_click(button, time):
menu.make_lib_menu(button, time)
def add_selected_to_playlist(menu):
import playlist
lib_page.for_each_selected_id(sources.playlist.add_id)
sources.playlist.save()
playlist.refresh()
def add_selected_to_queue(menu):
import queue
lib_page.for_each_selected_id(sources.queue.add_id)
queue.refresh()