From 07cd72be7898749df1db11c83309611dda8ca2ea Mon Sep 17 00:00:00 2001 From: Xabier Rodriguez Calvar Date: Wed, 7 Feb 2018 10:05:35 +0100 Subject: [PATCH] debug-viewer: Added filter for threads https://bugzilla.gnome.org/show_bug.cgi?id=793241 --- debug-viewer/GstDebugViewer/GUI/filters.py | 12 ++++++++++++ debug-viewer/GstDebugViewer/GUI/window.py | 19 +++++++++++++++++++ debug-viewer/data/menus.ui | 4 ++++ 3 files changed, 35 insertions(+) diff --git a/debug-viewer/GstDebugViewer/GUI/filters.py b/debug-viewer/GstDebugViewer/GUI/filters.py index 0452360b51..f9f56c5c80 100644 --- a/debug-viewer/GstDebugViewer/GUI/filters.py +++ b/debug-viewer/GstDebugViewer/GUI/filters.py @@ -89,6 +89,18 @@ class FunctionFilter (Filter): self.filter_func = function_filter_func +class ThreadFilter (Filter): + + def __init__(self, thread_, all_but_this=False): + + col_id = LogModelBase.COL_THREAD + comparison_function = get_comparison_function(all_but_this) + + def thread_filter_func(row): + return comparison_function(row[col_id], thread_) + self.filter_func = thread_filter_func + + class FilenameFilter (Filter): def __init__(self, filename, all_but_this=False): diff --git a/debug-viewer/GstDebugViewer/GUI/window.py b/debug-viewer/GstDebugViewer/GUI/window.py index 58081c03f2..c9a08ba860 100644 --- a/debug-viewer/GstDebugViewer/GUI/window.py +++ b/debug-viewer/GstDebugViewer/GUI/window.py @@ -40,6 +40,7 @@ from GstDebugViewer.GUI.filters import (CategoryFilter, DebugLevelFilter, FilenameFilter, FunctionFilter, + ThreadFilter, ObjectFilter) from GstDebugViewer.GUI.models import (FilteredLogModel, LazyLogModel, @@ -289,6 +290,10 @@ class Window (object): "Hide log category")), ("show-only-log-category", None, _( "Show only log category")), + ("hide-log-thread", None, _( + "Hide thread")), + ("show-only-log-thread", None, _( + "Show only thread")), ("hide-log-object", None, _("Hide object")), ("show-only-log-object", None, _( "Show only object")), @@ -824,6 +829,13 @@ class Window (object): category = row[LogModelBase.COL_CATEGORY] self.add_model_filter(CategoryFilter(category)) + @action + def handle_hide_log_thread_action_activate(self, action): + + row = self.get_active_line() + thread = row[LogModelBase.COL_THREAD] + self.add_model_filter(ThreadFilter(thread)) + @action def handle_hide_log_object_action_activate(self, action): @@ -868,6 +880,13 @@ class Window (object): category = row[LogModelBase.COL_CATEGORY] self.add_model_filter(CategoryFilter(category, True)) + @action + def handle_show_only_log_thread_action_activate(self, action): + + row = self.get_active_line() + thread = row[LogModelBase.COL_THREAD] + self.add_model_filter(ThreadFilter(thread, True)) + @action def handle_show_only_log_object_action_activate(self, action): diff --git a/debug-viewer/data/menus.ui b/debug-viewer/data/menus.ui index a58f6c0bef..75b538d10b 100644 --- a/debug-viewer/data/menus.ui +++ b/debug-viewer/data/menus.ui @@ -29,6 +29,8 @@ + + @@ -57,6 +59,8 @@ + +