59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
import gobject
|
|
import pygtk
|
|
pygtk.require('2.0')
|
|
import gtk
|
|
|
|
|
|
#class LibView(gtk.ScrolledWindow):
|
|
class LibView(gtk.VBox):
|
|
def __init__(self,library):
|
|
#gtk.ScrolledWindow.__init__(self)
|
|
gtk.VBox.__init__(self,False,0)
|
|
self.win = gtk.ScrolledWindow()
|
|
self.win.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC)
|
|
self.library = library
|
|
self.treeview = None
|
|
self.col = None
|
|
self.pbar = gtk.ProgressBar()
|
|
self.pack_start(self.win)
|
|
self.pack_start(self.pbar,False,False,0)
|
|
self.update()
|
|
self.win.show()
|
|
|
|
|
|
# Use to update the library pane
|
|
def update(self):
|
|
rval = self.library.scanning
|
|
#if self.library.count == 0:
|
|
# return False
|
|
if self.treeview:
|
|
self.win.remove(self.treeview)
|
|
self.treeview.remove_column(self.col)
|
|
self.pbar.pulse()
|
|
self.pbar.set_text("Found "+str(self.library.count)+" files.")
|
|
tree = gtk.TreeStore(str)
|
|
for artist in self.library.artAlb.keys():
|
|
ariter = tree.append(None,[artist])
|
|
for album in self.library.artAlb[artist]:
|
|
aliter = tree.append(ariter,[album])
|
|
for track in self.library.albTrk[album]:
|
|
tree.append(aliter,[track])
|
|
self.treeview = gtk.TreeView(tree)
|
|
self.col = gtk.TreeViewColumn('Library')
|
|
self.treeview.append_column(self.col)
|
|
cell = gtk.CellRendererText()
|
|
self.col.pack_start(cell,True)
|
|
self.col.add_attribute(cell,'text',0)
|
|
self.col.set_sort_column_id(0)
|
|
self.treeview.set_rules_hint(True)
|
|
self.treeview.show()
|
|
self.win.add(self.treeview)
|
|
if rval==False:
|
|
self.pbar.hide()
|
|
return rval
|
|
|
|
|
|
def updates(self):
|
|
self.pbar.show()
|
|
gobject.timeout_add(500,self.update)
|