From 3ef4d169fff852983d21f1efb597a9563ea4ad06 Mon Sep 17 00:00:00 2001 From: Doug Blank Date: Fri, 19 Nov 2010 12:32:30 +0000 Subject: [PATCH] Don't move selected filter name in combobox after a filter edit svn: r16214 --- src/Filters/SideBar/_SidebarFilter.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/Filters/SideBar/_SidebarFilter.py b/src/Filters/SideBar/_SidebarFilter.py index b44235db5..2bf1c9cb7 100644 --- a/src/Filters/SideBar/_SidebarFilter.py +++ b/src/Filters/SideBar/_SidebarFilter.py @@ -238,13 +238,28 @@ class SidebarFilter(DbGUIElement): if the_filter: EditFilter(self.namespace, self.dbstate, self.uistate, [], the_filter, filterdb, - lambda : self.edit_filter_save(filterdb)) + selection_callback=self.edit_filter_save) - def edit_filter_save(self, filterdb): + def edit_filter_save(self, filterdb, filter_name): """ - If a filter changed, save them all. Reloads, and also calls callback. + If a filter changed, save them all. Reloads, and sets name. + Takes the filter database, and the filter name edited. """ from Filters import reload_custom_filters filterdb.save() reload_custom_filters() self.on_filters_changed(self.namespace) + self.set_filters_to_name(filter_name) + + def set_filters_to_name(self, filter_name): + """ + Resets the Filter combobox to the edited/saved filter. + """ + liststore = self.generic.get_model() + iter = liststore.get_iter_first() + while iter: + filter = liststore.get_value(iter, 1) + if filter and filter.name == filter_name: + self.generic.set_active_iter(iter) + break + iter = liststore.iter_next(iter)