diff options
author | Xabier Rodriguez Calvar <calvaris@igalia.com> | 2018-02-07 10:05:35 +0100 |
---|---|---|
committer | Nicolas Dufresne <nicolas.dufresne@collabora.com> | 2018-02-22 21:48:58 -0500 |
commit | 07cd72be7898749df1db11c83309611dda8ca2ea (patch) | |
tree | a18593a9a873cc6ce60ce101c5b27eee7bed0d8f | |
parent | 8c93cc156f0acab709c637a5e16a7f629867feb2 (diff) |
debug-viewer: Added filter for threads
https://bugzilla.gnome.org/show_bug.cgi?id=793241
-rw-r--r-- | debug-viewer/GstDebugViewer/GUI/filters.py | 12 | ||||
-rw-r--r-- | debug-viewer/GstDebugViewer/GUI/window.py | 19 | ||||
-rw-r--r-- | debug-viewer/data/menus.ui | 4 |
3 files changed, 35 insertions, 0 deletions
diff --git a/debug-viewer/GstDebugViewer/GUI/filters.py b/debug-viewer/GstDebugViewer/GUI/filters.py index 0452360..f9f56c5 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 58081c0..c9a08ba 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")), @@ -825,6 +830,13 @@ class Window (object): 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): row = self.get_active_line() @@ -869,6 +881,13 @@ class Window (object): 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): row = self.get_active_line() diff --git a/debug-viewer/data/menus.ui b/debug-viewer/data/menus.ui index a58f6c0..75b538d 100644 --- a/debug-viewer/data/menus.ui +++ b/debug-viewer/data/menus.ui @@ -29,6 +29,8 @@ <menuitem name="ViewContextMenuShowOnlyLevel" action="show-only-log-level"/> <menuitem name="ViewContextMenuHideCategory" action="hide-log-category"/> <menuitem name="ViewContextMenuShowOnlyCategory" action="show-only-log-category"/> + <menuitem name="ViewContextMenuHideThread" action="hide-log-thread"/> + <menuitem name="ViewContextMenuShowOnlyThread" action="show-only-log-thread"/> <menuitem name="ViewContextMenuHideObject" action="hide-log-object"/> <menuitem name="ViewContextMenuShowOnlyObject" action="show-only-log-object"/> <menuitem name="ViewContextMenuHideFunction" action="hide-log-function"/> @@ -57,6 +59,8 @@ <menuitem name="ViewContextMenuShowOnlyLevel" action="show-only-log-level"/> <menuitem name="ViewContextMenuHideCategory" action="hide-log-category"/> <menuitem name="ViewContextMenuShowOnlyCategory" action="show-only-log-category"/> + <menuitem name="ViewContextMenuHideThread" action="hide-log-thread"/> + <menuitem name="ViewContextMenuShowOnlyThread" action="show-only-log-thread"/> <menuitem name="ViewContextMenuHideObject" action="hide-log-object"/> <menuitem name="ViewContextMenuShowOnlyObject" action="show-only-log-object"/> <menuitem name="ViewContextMenuHideFunction" action="hide-log-function"/> |