From: Xabier Rodriguez Calvar Date: Fri, 18 Mar 2016 09:42:18 +0000 (+0100) Subject: Added support to filter in instead of only out X-Git-Tag: 1.19.3~491^2~1029 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ba4afd7b667620cfcdf882ece0e106bde4347a62;p=platform%2Fupstream%2Fgstreamer.git Added support to filter in instead of only out Added support to filter a log level and all above it https://bugzilla.gnome.org/show_bug.cgi?id=763857 --- diff --git a/debug-viewer/GstDebugViewer/GUI/filters.py b/debug-viewer/GstDebugViewer/GUI/filters.py index 8367e0e..5f59065 100644 --- a/debug-viewer/GstDebugViewer/GUI/filters.py +++ b/debug-viewer/GstDebugViewer/GUI/filters.py @@ -21,43 +21,59 @@ from GstDebugViewer.GUI.models import LogModelBase +def get_comparison_function (all_but_this): + + if (all_but_this): + return lambda x, y : x == y + else: + return lambda x, y : x != y + class Filter (object): pass class DebugLevelFilter (Filter): - def __init__ (self, debug_level): + only_this, all_but_this, this_and_above = range(3) + + def __init__ (self, debug_level, mode = 0): col_id = LogModelBase.COL_LEVEL + if mode == self.this_and_above: + comparison_function = lambda x, y : x < y + else: + comparison_function = get_comparison_function (mode == self.all_but_this) def filter_func (row): - return row[col_id] != debug_level + return comparison_function (row[col_id], debug_level) self.filter_func = filter_func class CategoryFilter (Filter): - def __init__ (self, category): + def __init__ (self, category, all_but_this = False): col_id = LogModelBase.COL_CATEGORY + comparison_function = get_comparison_function (all_but_this) def category_filter_func (row): - return row[col_id] != category + return comparison_function(row[col_id], category) self.filter_func = category_filter_func class ObjectFilter (Filter): - def __init__ (self, object_): + def __init__ (self, object_, all_but_this = False): col_id = LogModelBase.COL_OBJECT + comparison_function = get_comparison_function (all_but_this) def object_filter_func (row): - return row[col_id] != object_ + return comparison_function (row[col_id], object_) self.filter_func = object_filter_func class FilenameFilter (Filter): - def __init__ (self, filename): + def __init__ (self, filename, all_but_this = False): col_id = LogModelBase.COL_FILENAME + comparison_function = get_comparison_function (all_but_this) def filename_filter_func (row): - return row[col_id] != filename + return comparison_function (row[col_id], filename) self.filter_func = filename_filter_func