ocarina/ocarina/collection.py

49 lines
1.0 KiB
Python

# Bryan Schumaker (8/16/2010)
import ocarina
import list
libsaria = ocarina.libsaria
from libsaria import collection
event = ocarina.libsaria.event
gtk = ocarina.gtk
class Collection(gtk.ScrolledWindow):
def __init__(self):
gtk.ScrolledWindow.__init__(self)
self.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
self.list = list.List()
self.add(self.list)
self.show()
def populate(self, func):
self.list.freeze()
insert = self.list.list.insert
for track in func():
get = track.__getitem__
insert(0, [get("id"),
get("title"),
get("length"),
get("artist"),
get("album"),
get("year"),
get("playcount")])
self.list.thaw()
class Library(Collection):
def __init__(self):
Collection.__init__(self)
libsaria.event.invite("POSTSTART", self.populate, bg=True)
def populate(self):
import datetime
before = datetime.datetime.now()
Collection.populate(self, collection.walk_library)
after = datetime.datetime.now()
print "Populating took: %s" % (after-before)