From 930834222adafdfa2e9b8ff5c9b9f90a1e7310b4 Mon Sep 17 00:00:00 2001 From: Bryan Schumaker Date: Wed, 3 Nov 2010 08:13:23 -0400 Subject: [PATCH] Reset page button The reset page button will reset the library or playlist and then clear the list on that page. --- ocarina/button.py | 7 +++++++ ocarina/collection.py | 8 ++++++++ ocarina/info.py | 1 + ocarina/tabs.py | 13 +++++++++++++ 4 files changed, 29 insertions(+) diff --git a/ocarina/button.py b/ocarina/button.py index ddebfcc8..9ef16e6a 100644 --- a/ocarina/button.py +++ b/ocarina/button.py @@ -84,6 +84,13 @@ class OpenButton(Button): from ocarina import fsselect fsselect.run_chooser2(LS.data.universal_open) +class ClearButton(Button): + def __init__(self): + Button.__init__(self, gtk.STOCK_CLEAR, gtk.ICON_SIZE_BUTTON) + def clicked(self, button): + from ocarina import tabs + tabs.reset_current_page() + class RandomButton(gtk.ToggleButton): def __init__(self): gtk.ToggleButton.__init__(self) diff --git a/ocarina/collection.py b/ocarina/collection.py index 7203f8a2..1062c910 100644 --- a/ocarina/collection.py +++ b/ocarina/collection.py @@ -89,6 +89,10 @@ class Library(Collection): self.clear() self.populate() + def reset(self): + collection.lib_reset() + self.clear() + def mouse_motion(self, row): return (collection.lib_get_attr(row[0], "playcount"), collection.lib_get_attr(row[0], "score")) @@ -122,6 +126,10 @@ class Playlist(Collection): self.clear() self.populate() + def reset(self): + collection.plist_reset() + self.clear() + def populate(self): #import datetime #before = datetime.datetime.now() diff --git a/ocarina/info.py b/ocarina/info.py index e5fee444..f6641555 100644 --- a/ocarina/info.py +++ b/ocarina/info.py @@ -43,6 +43,7 @@ class FilterBar(Bar): self.pack(entry.FilterEntry(), True, True) self.pack(button.OpenButton()) + self.pack(button.ClearButton()) self.pack(button.RandomButton()) self.pack(button.VolumeButton()) diff --git a/ocarina/tabs.py b/ocarina/tabs.py index 0442c311..931fcf99 100644 --- a/ocarina/tabs.py +++ b/ocarina/tabs.py @@ -24,6 +24,10 @@ class TabPage(gtk.VBox): if hasattr(self.content, "filter"): self.content.filter(text) + def reset(self): + if hasattr(self.content, "reset"): + self.content.reset() + def visible(self): global bottom global top @@ -92,6 +96,15 @@ def switch_page(notebook, page, page_num): new.visible() cur_page = page_num +def get_current_page(): + global tabs + global cur_page + return tabs.get_nth_page(cur_page) + +def reset_current_page(): + get_current_page().reset() + + def filter(text = None): #global cur_page p = tabs.get_nth_page(cur_page)