X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fupstream%2Fmobilegtd.git;a=blobdiff_plain;f=src%2Fgui%2Fgui.py;h=0247175fc22ee76eb165184427b36aa257f67cd0;hp=1dc34b291ea2d2875aa3405657900e978701188a;hb=8b301d4e5f3dd8c3cc73ae23a41cd66f629c7625;hpb=dc0517146e17ffb7d66a52f3c196b03c52f34cac diff --git a/src/gui/gui.py b/src/gui/gui.py index 1dc34b2..0247175 100644 --- a/src/gui/gui.py +++ b/src/gui/gui.py @@ -236,13 +236,26 @@ class KeyBindingView(object): self.view.bind(key,no_action) class SearchableListView(WidgetBasedListView): - def __init__(self,entry_filters): - self.current_entry_filter_index = 0 - self.entry_filters = entry_filters - self.filtered_list = self.entry_filters[0] + def __init__(self): + self.current_entry_filter_index = -1 + self.entry_filters = [] + self.filtered_list = lambda:[] self.lock = None super(SearchableListView,self).__init__() + def set_filters(self, entry_filters): + """ + Set the filters that could be applied to this list. Each filter + can be applied in turn by calling switch_entry_filter (for + example from a key binding). + + The entry_filters argument should be a list of filters. The + active filter is stored into self.filtered_list and should be + processed by generate_widgets in the subclass. + """ + self.current_entry_filter_index = 0 + self.entry_filters = entry_filters + self.filtered_list = self.entry_filters[0] def search_item(self): selected_item = appuifw.selection_list(self.all_widget_texts(),search_field=1) @@ -250,6 +263,7 @@ class SearchableListView(WidgetBasedListView): selected_item = self.selected_index() self.view.set_list(self.items(),selected_item) self.set_bindings_for_selection(selected_item) + def switch_entry_filter(self): self.current_entry_filter_index += 1 self.filtered_list = self.entry_filters[self.current_entry_filter_index % len(self.entry_filters)] @@ -257,9 +271,9 @@ class SearchableListView(WidgetBasedListView): class EditableListView(SearchableListView,KeyBindingView): - def __init__(self,entry_filters): + def __init__(self): KeyBindingView.__init__(self) - super(EditableListView, self).__init__(entry_filters) + super(EditableListView, self).__init__() def key_and_menu_bindings(self,selected_index): key_and_menu_bindings=[]