summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXabier Rodriguez Calvar <calvaris@igalia.com>2018-02-07 10:05:35 +0100
committerNicolas Dufresne <nicolas.dufresne@collabora.com>2018-02-22 21:48:58 -0500
commit07cd72be7898749df1db11c83309611dda8ca2ea (patch)
treea18593a9a873cc6ce60ce101c5b27eee7bed0d8f
parent8c93cc156f0acab709c637a5e16a7f629867feb2 (diff)
debug-viewer: Added filter for threads
https://bugzilla.gnome.org/show_bug.cgi?id=793241
-rw-r--r--debug-viewer/GstDebugViewer/GUI/filters.py12
-rw-r--r--debug-viewer/GstDebugViewer/GUI/window.py19
-rw-r--r--debug-viewer/data/menus.ui4
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"/>