From 4cc03f0ac5a256f76bf78979cc3a0d947c289598 Mon Sep 17 00:00:00 2001 From: winckel Date: Tue, 5 Nov 2013 10:43:43 +0000 Subject: [PATCH] Fixed filter item selection issue. Destroy filter menus when initializinf ilters. git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4319 818b1a75-f10b-46b9-bf7c-635c3b92a50f --- .../utils/itti_analyzer/libui/ui_callbacks.c | 19 ++++++++++++------- .../utils/itti_analyzer/libui/ui_callbacks.h | 4 ++++ common/utils/itti_analyzer/libui/ui_filters.c | 7 +++---- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/common/utils/itti_analyzer/libui/ui_callbacks.c b/common/utils/itti_analyzer/libui/ui_callbacks.c index dfbd59648e..0e9c61636d 100644 --- a/common/utils/itti_analyzer/libui/ui_callbacks.c +++ b/common/utils/itti_analyzer/libui/ui_callbacks.c @@ -319,9 +319,11 @@ gboolean ui_callback_on_tree_view_select(GtkWidget *widget, GdkEvent *event, gpo static gboolean ui_callback_on_menu_item_selected(GtkWidget *widget, gpointer data) { ui_filter_item_t *filter_entry = data; + gboolean enabled; - // g_debug("ui_callback_on_menu_item_selected occurred %x %x %s", widget, data, filter_entry->name); - filter_entry->enabled = ~filter_entry->enabled; + enabled = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM(widget)); + filter_entry->enabled = enabled; + // g_debug("ui_callback_on_menu_item_selected occurred %x %x %s %d", widget, data, filter_entry->name, enabled); return TRUE; } @@ -346,7 +348,7 @@ static void ui_create_filter_menu(GtkWidget **menu, ui_filter_t *filter) /* Connect function to be called when the menu item is selected */ data = &filter->items[item]; - //g_debug("ui_create_filter_menu %x %x", menu_items, data); + // g_debug("ui_create_filter_menu %x %x", menu_items, data); g_signal_connect(G_OBJECT (menu_items), "activate", G_CALLBACK(ui_callback_on_menu_item_selected), data); /* Show the widget */ @@ -358,11 +360,14 @@ static void ui_destroy_filter_menu(GtkWidget **menu, ui_filter_t *filter) { /* TODO destroy menu items ? */ - gtk_widget_destroy (*menu); - *menu = NULL; + if (*menu != NULL) + { + gtk_widget_destroy (*menu); + *menu = NULL; + } } -void ui_destroy_filter_menus() +void ui_destroy_filter_menus(void) { ui_destroy_filter_menu (&ui_main_data.menu_filter_messages, &ui_filters.messages); ui_destroy_filter_menu (&ui_main_data.menu_filter_origin_tasks, &ui_filters.origin_tasks); @@ -383,7 +388,7 @@ gboolean ui_callback_on_tree_column_header_click(GtkWidget *widget, gpointer dat { col_type_e col = (col_type_e) data; - g_debug("ui_callback_on_tree_column_header_click %x", col); + // g_debug("ui_callback_on_tree_column_header_click %x", col); switch (col) { case COL_SIGNAL: diff --git a/common/utils/itti_analyzer/libui/ui_callbacks.h b/common/utils/itti_analyzer/libui/ui_callbacks.h index 4d4217c89e..e402162599 100644 --- a/common/utils/itti_analyzer/libui/ui_callbacks.h +++ b/common/utils/itti_analyzer/libui/ui_callbacks.h @@ -1,6 +1,8 @@ #ifndef UI_CALLBACKS_H_ #define UI_CALLBACKS_H_ +#include + gboolean ui_callback_on_open_messages(GtkWidget *widget, GdkEvent *event, gpointer data); @@ -61,6 +63,8 @@ gboolean ui_callback_signal_clear_list(GtkWidget *widget, gboolean ui_pipe_callback(gint source, gpointer user_data); +void ui_destroy_filter_menus(void); + gboolean ui_callback_on_tree_column_header_click(GtkWidget *widget, gpointer data); #endif /* UI_CALLBACKS_H_ */ diff --git a/common/utils/itti_analyzer/libui/ui_filters.c b/common/utils/itti_analyzer/libui/ui_filters.c index 7cde51faf1..e28483cda4 100644 --- a/common/utils/itti_analyzer/libui/ui_filters.c +++ b/common/utils/itti_analyzer/libui/ui_filters.c @@ -2,6 +2,7 @@ #include #include +#include "ui_callbacks.h" #include "ui_filters.h" #include "rc.h" @@ -45,6 +46,8 @@ int ui_init_filters(int reset, int clear_ids) ui_init_filter (&ui_filters.origin_tasks, reset, clear_ids); ui_init_filter (&ui_filters.destination_tasks, reset, clear_ids); + ui_destroy_filter_menus(); + return (RC_OK); } @@ -109,10 +112,6 @@ void ui_filters_add(ui_filter_e filter, uint32_t value, char *name) } } -static void parse_filters(void) -{ -} - static int write_filters_file(void) { char *filter_file_name = "./filters.xml";