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)