X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Ffilter%2Ffilter.c;h=90de72ee815a73292cb65d1e75ff2346375c5022;hb=3cea5310be1c058050896507483df2ddf5ee4970;hp=99739a53b67b04d9572aa23a937d9a46edf7b393;hpb=f88c5bfa99a6660185c4ce263c86839b86441a21;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/gui/filter/filter.c b/ltt/branches/poly/lttv/modules/gui/filter/filter.c index 99739a53..90de72ee 100644 --- a/ltt/branches/poly/lttv/modules/gui/filter/filter.c +++ b/ltt/branches/poly/lttv/modules/gui/filter/filter.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -72,6 +73,9 @@ void filter_destroy_walk(gpointer data, gpointer user_data); * Callback functions */ void callback_process_button(GtkWidget *widget, gpointer data); +gboolean callback_enter_check(GtkWidget *widget, + GdkEventKey *event, + gpointer user_data); void callback_add_button(GtkWidget *widget, gpointer data); void callback_logical_op_box(GtkWidget *widget, gpointer data); void callback_expression_field(GtkWidget *widget, gpointer data); @@ -182,6 +186,7 @@ gui_filter(Tab *tab) fvd->f_field_options = g_ptr_array_new(); //g_array_new(FALSE,FALSE,16); g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("")); g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("event.name")); + g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("event.facility")); g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("event.category")); g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("event.time")); g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("event.tsc")); @@ -190,6 +195,7 @@ gui_filter(Tab *tab) */ g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("tracefile.name")); g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("trace.name")); + g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("state.process_name")); g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("state.pid")); g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("state.ppid")); g_ptr_array_add(fvd->f_field_options,(gpointer) g_string_new("state.creation_time")); @@ -228,6 +234,8 @@ gui_filter(Tab *tab) * - processing button */ fvd->f_expression_field = gtk_entry_new(); //gtk_scrolled_window_new (NULL, NULL); + g_signal_connect (G_OBJECT(fvd->f_expression_field), + "key-press-event", G_CALLBACK (callback_enter_check), (gpointer)fvd); // gtk_entry_set_text(GTK_ENTRY(fvd->f_expression_field),"state.cpu>0"); gtk_widget_show (fvd->f_expression_field); @@ -521,15 +529,36 @@ callback_process_button(GtkWidget *widget, gpointer data) { g_debug("callback_process_button(): Processing expression"); FilterViewerData *fvd = (FilterViewerData*)data; + LttvFilter* filter; if(strlen(gtk_entry_get_text(GTK_ENTRY(fvd->f_expression_field))) !=0) { - LttvFilter* filter = lttv_filter_new(); + filter = lttv_filter_new(); GString* s = g_string_new(gtk_entry_get_text(GTK_ENTRY(fvd->f_expression_field))); lttv_filter_append_expression(filter,s->str); g_string_free(s,TRUE); //SetFilter(fvd->tab,filter); - lttvwindow_report_filter(fvd->tab, filter); + } else { + filter = NULL; } + lttvwindow_report_filter(fvd->tab, filter); +} + +gboolean callback_enter_check(GtkWidget *widget, + GdkEventKey *event, + gpointer user_data) +{ + g_debug("typed : %x", event->keyval); + switch(event->keyval) { + case GDK_Return: + case GDK_KP_Enter: + case GDK_ISO_Enter: + case GDK_3270_Enter: + callback_expression_field(widget, user_data); + break; + default: + break; + } + return FALSE; } /**