ocarina/ocarina/library.py
Bryan Schumaker ad12bf6500 ocarina: Filter the library
I call the new libsaria.sources.filter() function and test ids using
libsaria.sources.is_visible().
2011-05-21 22:06:37 -04:00

55 lines
1.1 KiB
Python

# Bryan Schumaker (5 / 20 / 2011)
import libsaria
import sources
import body
library = libsaria.sources.library
lib_page = sources.Source()
LIB_PAGE = body.add_page(lib_page, "Library")
LIB_PAGE.goto = lib_page.goto
def set_label_text():
LIB_PAGE.label.set_text("Library (%s)" % library.num_visible())
def fill_library():
attrs = ("id", "title", "lenstr", "artist", "album", "year")
songs = libsaria.sources.list_library(*attrs)
lib_page.insert(songs)
set_label_text()
fill_library()
def refresh():
lib_page.clear()
fill_library()
def do_refilter(list, iter):
return libsaria.sources.is_visible(list[iter][0])
lib_page.set_filter_func(do_refilter)
def filter(text):
library.filter(text)
lib_page.refilter()
set_label_text()
LIB_PAGE.filter = filter
import playlist
import queue
def clear():
queue.clear()
playlist.clear()
library.reset()
lib_page.clear()
refresh()
LIB_PAGE.clear = clear
menu_items = [
("Add to Queue", queue.add_to_queue),
("Add to Playlist", playlist.add_to_playlist),
]
def show_menu(event):
m = sources.Menu(lib_page, menu_items)
m.show(event)
lib_page.set_right_click(show_menu)