X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Ffilter%2Ffilter.c;h=29031c22cf384f94d33a2ca587eef7cefe055ea1;hb=f42883f9b6f17b50f7db4780fb8d2c960c606cb3;hp=23ff43d74d55b1cce7eb2833d94c70020cf16aa5;hpb=ffd088ef1210d2beb43272f92cac85b7c6bfbae2;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 23ff43d7..29031c22 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); @@ -230,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); @@ -523,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_process_button(widget, user_data); + break; + default: + break; + } + return FALSE; } /**