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
This commit is contained in:
Xabier Rodriguez Calvar 2016-03-18 10:42:18 +01:00 committed by Stefan Sauer
parent 580c3a55d7
commit ba4afd7b66

View file

@ -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