From 5ec8c5ddf0492f30cb737a510f0c405c9c07aeb7 Mon Sep 17 00:00:00 2001 From: Doug Blank Date: Thu, 4 Nov 2010 14:26:14 +0000 Subject: [PATCH] Better solution for previous commit svn: r16131 --- src/Filters/_FilterList.py | 14 +++++++++++++- src/Filters/_FilterMenu.py | 6 +----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/Filters/_FilterList.py b/src/Filters/_FilterList.py index 1cd8e67bc..36ad32c52 100644 --- a/src/Filters/_FilterList.py +++ b/src/Filters/_FilterList.py @@ -37,6 +37,18 @@ import sys from Filters._FilterParser import FilterParser from gen.plug import BasePluginManager +def flatten(mylist): + """ + Flattens a nested list into a single list. + """ + retval = [] + for item in mylist: + if isinstance(item, (list, tuple)): + retval.extend(flatten(item)) + else: + retval.append(item) + return retval + PLUGMAN = BasePluginManager.get_instance() #------------------------------------------------------------------------- # @@ -85,7 +97,7 @@ class FilterList(object): import traceback traceback.print_exc() filters += plugin_filters - return filters + return flatten(filters) def add(self, namespace, filt): assert(isinstance(namespace, basestring)) diff --git a/src/Filters/_FilterMenu.py b/src/Filters/_FilterMenu.py index 3f560f313..1d80c5945 100644 --- a/src/Filters/_FilterMenu.py +++ b/src/Filters/_FilterMenu.py @@ -46,9 +46,5 @@ def build_filter_model(space, local = []): return None for filt in flist: - if isinstance(filt, (list, tuple)): - for subfilt in filt: - model.append(row=[subfilt.get_name(), subfilt]) - else: - model.append(row=[filt.get_name(), filt]) + model.append(row=[filt.get_name(), filt]) return model