ocarina: Function for refreshing library source list

The settings page may need to be updated once it has been created.  This
patch adds a function for recreating the list of sources.
This commit is contained in:
Bryan Schumaker 2011-06-18 11:37:48 -04:00
parent 989de579e4
commit c31ec80016
1 changed files with 17 additions and 9 deletions

View File

@ -5,18 +5,20 @@ import libsaria
page = gtk.VBox()
text = "Library"
panels = {}
def remove_path(button, path, panel):
def remove_path(button, path):
page.remove(panels[path])
del panels[path]
libsaria.sources.library.rm_path(path)
page.remove(panel)
def add_panel(panel):
def add_panel(panel, path):
full_box = gtk.VBox()
full_box.pack_start(panel)
full_box.pack_start(gtk.HSeparator())
full_box.show_all()
panels[path] = full_box
page.pack_start(full_box, False, False)
return full_box
def show_source(path, lib):
panel = gtk.HBox()
@ -25,15 +27,21 @@ def show_source(path, lib):
path_lbl = gtk.Label()
path_lbl.set_markup("<span size='xx-large' weight='bold'>%s</span>" % path)
count_lbl = gtk.Label()
count_lbl.set_markup("<span size='large'>%s songs</span>" % len(lib))
count_lbl.set_markup("<span size='large'>%s files</span>" % len(lib))
remove_button = gtk.Button("Remove", gtk.STOCK_REMOVE)
remove_button.connect("clicked", remove_path, path)
info_box.pack_start(path_lbl)
info_box.pack_start(count_lbl)
panel.pack_start(info_box)
panel.pack_start(remove_button, False, False)
full = add_panel(panel)
remove_button.connect("clicked", remove_path, path, full)
add_panel(panel, path)
def refresh():
for path in panels:
page.remove(panels[path])
for path, lib in libsaria.sources.library.list_paths():
show_source(path, lib)
refresh()
for path, lib in libsaria.sources.library.list_paths():
show_source(path, lib)