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