Pulsing progress bar when adding songs to library
git-svn-id: file:///home/anna/Desktop/ocarina-legacy/mithos/ocarina@31 1daee41c-8060-4895-b1f0-2197c00d777a
This commit is contained in:
parent
fd4cbf0a83
commit
25b7ee99bd
|
@ -4,15 +4,33 @@ pygtk.require('2.0')
|
||||||
import gtk
|
import gtk
|
||||||
|
|
||||||
|
|
||||||
class LibView(gtk.ScrolledWindow):
|
#class LibView(gtk.ScrolledWindow):
|
||||||
|
class LibView(gtk.VBox):
|
||||||
def __init__(self,library):
|
def __init__(self,library):
|
||||||
gtk.ScrolledWindow.__init__(self)
|
#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.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.update()
|
||||||
|
self.win.show()
|
||||||
|
|
||||||
|
|
||||||
# Use to update the library pane
|
# Use to update the library pane
|
||||||
def update(self):
|
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)
|
tree = gtk.TreeStore(str)
|
||||||
for artist in self.library.artAlb.keys():
|
for artist in self.library.artAlb.keys():
|
||||||
ariter = tree.append(None,[artist])
|
ariter = tree.append(None,[artist])
|
||||||
|
@ -20,12 +38,21 @@ class LibView(gtk.ScrolledWindow):
|
||||||
aliter = tree.append(ariter,[album])
|
aliter = tree.append(ariter,[album])
|
||||||
for track in self.library.albTrk[album]:
|
for track in self.library.albTrk[album]:
|
||||||
tree.append(aliter,[track])
|
tree.append(aliter,[track])
|
||||||
treeview = gtk.TreeView(tree)
|
self.treeview = gtk.TreeView(tree)
|
||||||
col = gtk.TreeViewColumn('Library')
|
self.col = gtk.TreeViewColumn('Library')
|
||||||
treeview.append_column(col)
|
self.treeview.append_column(self.col)
|
||||||
cell = gtk.CellRendererText()
|
cell = gtk.CellRendererText()
|
||||||
col.pack_start(cell,True)
|
self.col.pack_start(cell,True)
|
||||||
col.add_attribute(cell,'text',0)
|
self.col.add_attribute(cell,'text',0)
|
||||||
treeview.set_rules_hint(True)
|
self.col.set_sort_column_id(0)
|
||||||
treeview.show()
|
self.treeview.set_rules_hint(True)
|
||||||
self.add(treeview)
|
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)
|
||||||
|
|
|
@ -34,9 +34,11 @@ class Library:
|
||||||
def scan(self,thread,dir):
|
def scan(self,thread,dir):
|
||||||
#self.data = LibData()
|
#self.data = LibData()
|
||||||
#self.data.path = os.path.expanduser(dir)
|
#self.data.path = os.path.expanduser(dir)
|
||||||
|
self.scanning = True
|
||||||
self.files = []
|
self.files = []
|
||||||
self.count = 0
|
self.count = 0
|
||||||
|
self.artAlb = dict()
|
||||||
|
self.albTrk = dict()
|
||||||
|
|
||||||
self.path = os.path.expanduser(dir)
|
self.path = os.path.expanduser(dir)
|
||||||
if os.path.exists(self.path) == False:
|
if os.path.exists(self.path) == False:
|
||||||
|
@ -44,7 +46,7 @@ class Library:
|
||||||
print "Directory not found: %s" % dir
|
print "Directory not found: %s" % dir
|
||||||
return
|
return
|
||||||
print "Scanning: "+self.path
|
print "Scanning: "+self.path
|
||||||
self.scanning = True
|
#self.scanning = True
|
||||||
self.traverse("")
|
self.traverse("")
|
||||||
self.scanning = False
|
self.scanning = False
|
||||||
#num = len(self.data.files)
|
#num = len(self.data.files)
|
||||||
|
@ -87,7 +89,7 @@ class Library:
|
||||||
info.filename = os.path.join(self.path,file)
|
info.filename = os.path.join(self.path,file)
|
||||||
self.files += [info.filename]
|
self.files += [info.filename]
|
||||||
info.count = 0
|
info.count = 0
|
||||||
split = file.rsplit(os.sep)
|
split = info.filename.rsplit(os.sep)
|
||||||
max = 3
|
max = 3
|
||||||
if len(split) < 3:
|
if len(split) < 3:
|
||||||
max = len(split)
|
max = len(split)
|
||||||
|
|
|
@ -273,6 +273,7 @@ class Window(gtk.Window):
|
||||||
# This is the dropdown selections
|
# This is the dropdown selections
|
||||||
# Make a new library option
|
# Make a new library option
|
||||||
newLib = MenuItem("New Library",self.selectDir,"ScanLib",self.data.library.scan,None)
|
newLib = MenuItem("New Library",self.selectDir,"ScanLib",self.data.library.scan,None)
|
||||||
|
#update = MenuItem("Update",self.libview.update,"Update",None,None)
|
||||||
library = MenuItem("Library",None,None,None,[newLib])
|
library = MenuItem("Library",None,None,None,[newLib])
|
||||||
bar.append(library)
|
bar.append(library)
|
||||||
|
|
||||||
|
@ -296,10 +297,15 @@ class Window(gtk.Window):
|
||||||
if response == gtk.RESPONSE_OK:
|
if response == gtk.RESPONSE_OK:
|
||||||
file = dirsel.get_filename()
|
file = dirsel.get_filename()
|
||||||
dirsel.hide()
|
dirsel.hide()
|
||||||
dirsel.destroy()
|
if response != gtk.RESPONSE_OK:
|
||||||
dirsel = None
|
return
|
||||||
#thread.start_new_thread(func,(data,file))
|
#dirsel.destroy()
|
||||||
func(data,file)
|
#dirsel = None
|
||||||
|
self.libview.updates()
|
||||||
|
thread.start_new_thread(func,(data,file))
|
||||||
|
#self.libview.updates()
|
||||||
|
#func(data,file)
|
||||||
|
#self.libview.update()
|
||||||
|
|
||||||
|
|
||||||
def makeContentPane(self):
|
def makeContentPane(self):
|
||||||
|
@ -309,13 +315,13 @@ class Window(gtk.Window):
|
||||||
self.contentPane.add(self.divider)
|
self.contentPane.add(self.divider)
|
||||||
self.divider.show()
|
self.divider.show()
|
||||||
|
|
||||||
libview = LibView(self.data.library)
|
self.libview = LibView(self.data.library)
|
||||||
libview.show()
|
self.libview.show()
|
||||||
self.divider.add1(libview)
|
self.divider.add1(self.libview)
|
||||||
|
|
||||||
tracks = gtk.TreeStore(str)
|
tracks = gtk.TreeStore(str)
|
||||||
for file in self.data.library.files:
|
#for file in self.data.library.files:
|
||||||
tracks.append(None,[file.title])
|
# tracks.append(None,[file.title])
|
||||||
|
|
||||||
trackview = gtk.TreeView(tracks)
|
trackview = gtk.TreeView(tracks)
|
||||||
title = gtk.TreeViewColumn('filename')
|
title = gtk.TreeViewColumn('filename')
|
||||||
|
|
Loading…
Reference in New Issue