aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2010-02-17 20:45:29 -0500
committerSteven Rostedt <rostedt@goodmis.org>2010-02-17 20:45:29 -0500
commit229c76d9937917a8a366a2547bf59b8d8842b263 (patch)
tree695c752dab7aedb6ae0d1f20d4ed8b232364bf2b
parentd1416b81130c27f35bf79e7a84c9d3c2a79d3174 (diff)
kernelshark: Add advance filters for list and graph
Add the advanced filter menu for list and graph. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--kernel-shark.c65
1 files changed, 65 insertions, 0 deletions
diff --git a/kernel-shark.c b/kernel-shark.c
index 92eea8e..1f679ad 100644
--- a/kernel-shark.c
+++ b/kernel-shark.c
@@ -229,6 +229,39 @@ graph_events_clicked (gpointer data)
229 ginfo); 229 ginfo);
230} 230}
231 231
232/* Callback for the clicked signal of the List advanced filter button */
233static void
234adv_list_filter_clicked (gpointer data)
235{
236 struct shark_info *info = data;
237 struct event_filter *event_filter;
238 GtkTreeView *trace_tree = GTK_TREE_VIEW(info->treeview);
239 GtkTreeModel *model;
240 TraceViewStore *store;
241
242 model = gtk_tree_view_get_model(trace_tree);
243 if (!model)
244 return;
245
246 store = TRACE_VIEW_STORE(model);
247
248 event_filter = trace_view_store_get_event_filter(store);
249
250 trace_adv_filter_dialog(store->handle, event_filter,
251 trace_view_adv_filter_callback, trace_tree);
252}
253
254/* Callback for the clicked signal of the Graph advanced filter button */
255static void
256adv_graph_filter_clicked (gpointer data)
257{
258 struct shark_info *info = data;
259 struct graph_info *ginfo = info->ginfo;
260
261 trace_adv_filter_dialog(ginfo->handle, ginfo->event_filter,
262 trace_graph_adv_filter_callback, ginfo);
263}
264
232static void 265static void
233sync_graph_events_to_list_clicked (gpointer data) 266sync_graph_events_to_list_clicked (gpointer data)
234{ 267{
@@ -772,6 +805,38 @@ void kernel_shark(int argc, char **argv)
772 gtk_widget_show(sub_item); 805 gtk_widget_show(sub_item);
773 806
774 807
808 /* --- Filter - List Advanced Events Option --- */
809
810 sub_item = gtk_menu_item_new_with_label("list advanced event");
811
812 /* Add them to the menu */
813 gtk_menu_shell_append(GTK_MENU_SHELL (menu), sub_item);
814
815 /* We can attach the Quit menu item to our exit function */
816 g_signal_connect_swapped (G_OBJECT (sub_item), "activate",
817 G_CALLBACK (adv_list_filter_clicked),
818 (gpointer) info);
819
820 /* We do need to show menu items */
821 gtk_widget_show(sub_item);
822
823
824 /* --- Filter - Graph Advanced Events Option --- */
825
826 sub_item = gtk_menu_item_new_with_label("graph advanced event");
827
828 /* Add them to the menu */
829 gtk_menu_shell_append(GTK_MENU_SHELL (menu), sub_item);
830
831 /* We can attach the Quit menu item to our exit function */
832 g_signal_connect_swapped (G_OBJECT (sub_item), "activate",
833 G_CALLBACK (adv_graph_filter_clicked),
834 (gpointer) info);
835
836 /* We do need to show menu items */
837 gtk_widget_show(sub_item);
838
839
775 /* --- Filter - CPUs Option --- */ 840 /* --- Filter - CPUs Option --- */
776 841
777 sub_item = gtk_menu_item_new_with_label("list CPUs"); 842 sub_item = gtk_menu_item_new_with_label("list CPUs");