Added right-click message filter enable toggling.
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4445 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -67,7 +67,8 @@ gboolean ui_callback_on_filters_enabled(GtkToolButton *button, gpointer data)
|
|||||||
if (enabled)
|
if (enabled)
|
||||||
{
|
{
|
||||||
gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM(button), "Disable messages filtering");
|
gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM(button), "Disable messages filtering");
|
||||||
} else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM(button), "Enable messages filtering");
|
gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM(button), "Enable messages filtering");
|
||||||
}
|
}
|
||||||
@@ -82,7 +83,8 @@ gboolean ui_callback_on_filters_enabled(GtkToolButton *button, gpointer data)
|
|||||||
if (path_row != NULL)
|
if (path_row != NULL)
|
||||||
{
|
{
|
||||||
/* Center the message in the middle of the list if possible */
|
/* Center the message in the middle of the list if possible */
|
||||||
gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(ui_main_data.messages_list), path_row, NULL, TRUE, 0.5, 0.0);
|
gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW(ui_main_data.messages_list), path_row, NULL, TRUE, 0.5,
|
||||||
|
0.0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -132,24 +134,6 @@ gboolean ui_callback_on_select_signal(GtkTreeSelection *selection, GtkTreeModel
|
|||||||
ui_text_view_t *text_view;
|
ui_text_view_t *text_view;
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
|
|
||||||
if (ui_tree_view_last_event)
|
|
||||||
{
|
|
||||||
g_debug("last_event %p %d %d", ui_tree_view_last_event, ui_tree_view_last_event->type, ui_tree_view_last_event->button);
|
|
||||||
|
|
||||||
if (ui_tree_view_last_event->type == GDK_BUTTON_PRESS)
|
|
||||||
{
|
|
||||||
/* Callback is due to a button click */
|
|
||||||
ui_main_data.follow_last = FALSE;
|
|
||||||
|
|
||||||
if (ui_tree_view_last_event->button == 3)
|
|
||||||
{
|
|
||||||
/* It was a right mouse click */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ui_tree_view_last_event = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
g_debug("Message selected %d %p %p %s", path_currently_selected, buffer_current, path, gtk_tree_path_to_string(path));
|
g_debug("Message selected %d %p %p %s", path_currently_selected, buffer_current, path, gtk_tree_path_to_string(path));
|
||||||
|
|
||||||
if (!path_currently_selected)
|
if (!path_currently_selected)
|
||||||
@@ -171,6 +155,46 @@ gboolean ui_callback_on_select_signal(GtkTreeSelection *selection, GtkTreeModel
|
|||||||
|
|
||||||
g_debug(" Get iter %p %p", buffer_current, buffer);
|
g_debug(" Get iter %p %p", buffer_current, buffer);
|
||||||
|
|
||||||
|
if (ui_tree_view_last_event)
|
||||||
|
{
|
||||||
|
g_debug("last_event %p %d %d", ui_tree_view_last_event, ui_tree_view_last_event->type, ui_tree_view_last_event->button);
|
||||||
|
|
||||||
|
if (ui_tree_view_last_event->type == GDK_BUTTON_PRESS)
|
||||||
|
{
|
||||||
|
/* Callback is due to a button click */
|
||||||
|
ui_main_data.follow_last = FALSE;
|
||||||
|
|
||||||
|
if (ui_tree_view_last_event->button == 3)
|
||||||
|
{
|
||||||
|
/* It was a right mouse click */
|
||||||
|
int item;
|
||||||
|
|
||||||
|
/* Clear event */
|
||||||
|
ui_tree_view_last_event = NULL;
|
||||||
|
|
||||||
|
gtk_tree_model_get (model, &iter, COL_MESSAGE_ID, &message_id, -1);
|
||||||
|
item = ui_filters_search_id (&ui_filters.messages, message_id);
|
||||||
|
|
||||||
|
if (ui_main_data.menu_filter_messages == NULL)
|
||||||
|
{
|
||||||
|
ui_create_filter_menu (&ui_main_data.menu_filter_messages, &ui_filters.messages);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_debug("Message selected right click %d %d %s", message_id, item, ui_filters.messages.items[item].name);
|
||||||
|
gtk_check_menu_item_set_active (
|
||||||
|
GTK_CHECK_MENU_ITEM(ui_filters.messages.items[item].menu_item),
|
||||||
|
!gtk_check_menu_item_get_active (
|
||||||
|
GTK_CHECK_MENU_ITEM(ui_filters.messages.items[item].menu_item)));
|
||||||
|
g_debug("Message selected right click new state %d", gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(ui_filters.messages.items[item].menu_item)));
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Clear event */
|
||||||
|
ui_tree_view_last_event = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (buffer_current != buffer)
|
if (buffer_current != buffer)
|
||||||
{
|
{
|
||||||
buffer_current = buffer;
|
buffer_current = buffer;
|
||||||
@@ -206,11 +230,11 @@ gboolean ui_callback_on_select_signal(GtkTreeSelection *selection, GtkTreeModel
|
|||||||
data = (gchar *) buffer_at_offset ((buffer_t*) buffer, message_header_type_size);
|
data = (gchar *) buffer_at_offset ((buffer_t*) buffer, message_header_type_size);
|
||||||
data_size = get_message_size ((buffer_t*) buffer);
|
data_size = get_message_size ((buffer_t*) buffer);
|
||||||
|
|
||||||
g_debug(" message header type size: %u, data size: %u %p %d", message_header_type_size, data_size,
|
g_debug(" message header type size: %u, data size: %u %p %d", message_header_type_size, data_size, buffer, ui_main_data.follow_last);
|
||||||
buffer, ui_main_data.follow_last);
|
|
||||||
|
|
||||||
ui_signal_set_text (text_view, data, data_size);
|
ui_signal_set_text (text_view, data, data_size);
|
||||||
} else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
g_debug(" dissect message %d %p %d", message_id, buffer, ui_main_data.follow_last);
|
g_debug(" dissect message %d %p %d", message_id, buffer, ui_main_data.follow_last);
|
||||||
|
|
||||||
@@ -250,11 +274,10 @@ void ui_signal_add_to_list(gpointer data, gpointer user_data)
|
|||||||
destination_task_id = get_task_id (signal_buffer, destination_task_id_type);
|
destination_task_id = get_task_id (signal_buffer, destination_task_id_type);
|
||||||
instance = get_instance (signal_buffer);
|
instance = get_instance (signal_buffer);
|
||||||
|
|
||||||
ui_tree_view_new_signal_ind (signal_buffer->message_number, lte_time,
|
ui_tree_view_new_signal_ind (signal_buffer->message_number, lte_time, signal_buffer->message_id,
|
||||||
signal_buffer->message_id, message_id_to_string (signal_buffer->message_id),
|
message_id_to_string (signal_buffer->message_id), origin_task_id,
|
||||||
origin_task_id, task_id_to_string (origin_task_id, origin_task_id_type),
|
task_id_to_string (origin_task_id, origin_task_id_type), destination_task_id,
|
||||||
destination_task_id, task_id_to_string (destination_task_id, destination_task_id_type),
|
task_id_to_string (destination_task_id, destination_task_id_type), instance, data);
|
||||||
instance, data);
|
|
||||||
|
|
||||||
/* Increment number of messages */
|
/* Increment number of messages */
|
||||||
ui_main_data.nb_message_received++;
|
ui_main_data.nb_message_received++;
|
||||||
@@ -539,7 +562,7 @@ gboolean ui_callback_on_menu_item_selected(GtkWidget *widget, gpointer data)
|
|||||||
filter_entry->enabled = enabled;
|
filter_entry->enabled = enabled;
|
||||||
ui_tree_view_refilter ();
|
ui_tree_view_refilter ();
|
||||||
}
|
}
|
||||||
g_message("ui_callback_on_menu_item_selected occurred %p %p %s %d (%d messages to display)", widget, data, filter_entry->name, enabled, ui_tree_view_get_filtered_number());
|
g_debug("ui_callback_on_menu_item_selected occurred %p %p %s %d (%d messages to display)", widget, data, filter_entry->name, enabled, ui_tree_view_get_filtered_number());
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ gboolean ui_filters_enable(gboolean enabled)
|
|||||||
return changed;
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ui_search_name(ui_filter_t *filter, const char *name)
|
static int ui_filters_search_name(ui_filter_t *filter, const char *name)
|
||||||
{
|
{
|
||||||
int item;
|
int item;
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@ static int ui_search_name(ui_filter_t *filter, const char *name)
|
|||||||
return (item);
|
return (item);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ui_search_id(ui_filter_t *filter, uint32_t value)
|
int ui_filters_search_id(ui_filter_t *filter, uint32_t value)
|
||||||
{
|
{
|
||||||
int item;
|
int item;
|
||||||
|
|
||||||
@@ -127,7 +127,7 @@ static void ui_filter_set_enabled(uint8_t *enabled, ui_entry_enabled_e entry_ena
|
|||||||
|
|
||||||
static int ui_filter_add(ui_filter_t *filter, uint32_t value, const char *name, ui_entry_enabled_e entry_enabled)
|
static int ui_filter_add(ui_filter_t *filter, uint32_t value, const char *name, ui_entry_enabled_e entry_enabled)
|
||||||
{
|
{
|
||||||
int item = ui_search_name (filter, name);
|
int item = ui_filters_search_name (filter, name);
|
||||||
|
|
||||||
if (item >= filter->allocated)
|
if (item >= filter->allocated)
|
||||||
{
|
{
|
||||||
@@ -190,7 +190,7 @@ static gboolean ui_item_enabled(ui_filter_t *filter, const uint32_t value)
|
|||||||
|
|
||||||
if (value != (uint32_t) ~0)
|
if (value != (uint32_t) ~0)
|
||||||
{
|
{
|
||||||
item = ui_search_id (filter, value);
|
item = ui_filters_search_id (filter, value);
|
||||||
|
|
||||||
if (item < filter->used)
|
if (item < filter->used)
|
||||||
{
|
{
|
||||||
@@ -394,7 +394,7 @@ int ui_filters_file_write(const char *file_name)
|
|||||||
return RC_OK;
|
return RC_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ui_create_filter_menu(GtkWidget **menu, ui_filter_t *filter)
|
void ui_create_filter_menu(GtkWidget **menu, ui_filter_t *filter)
|
||||||
{
|
{
|
||||||
GtkWidget *menu_items;
|
GtkWidget *menu_items;
|
||||||
int item;
|
int item;
|
||||||
@@ -463,6 +463,8 @@ static void ui_create_filter_menu(GtkWidget **menu, ui_filter_t *filter)
|
|||||||
g_debug("ui_create_filter_menu %lx %lx", (long) menu_items, (long) data);
|
g_debug("ui_create_filter_menu %lx %lx", (long) menu_items, (long) data);
|
||||||
g_signal_connect(G_OBJECT(menu_items), "activate",
|
g_signal_connect(G_OBJECT(menu_items), "activate",
|
||||||
G_CALLBACK(ui_callback_on_menu_item_selected), data);
|
G_CALLBACK(ui_callback_on_menu_item_selected), data);
|
||||||
|
/* Save the menu_item reference */
|
||||||
|
filter->items[item].menu_item = menu_items;
|
||||||
|
|
||||||
/* Show the widget */
|
/* Show the widget */
|
||||||
gtk_widget_show(menu_items);
|
gtk_widget_show(menu_items);
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ typedef struct
|
|||||||
uint32_t id;
|
uint32_t id;
|
||||||
char name[SIGNAL_NAME_LENGTH];
|
char name[SIGNAL_NAME_LENGTH];
|
||||||
uint8_t enabled;
|
uint8_t enabled;
|
||||||
|
GtkWidget *menu_item;
|
||||||
} ui_filter_item_t;
|
} ui_filter_item_t;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
@@ -45,6 +46,8 @@ int ui_init_filters(int reset, int clear_ids);
|
|||||||
|
|
||||||
gboolean ui_filters_enable(gboolean enabled);
|
gboolean ui_filters_enable(gboolean enabled);
|
||||||
|
|
||||||
|
int ui_filters_search_id(ui_filter_t *filter, uint32_t value);
|
||||||
|
|
||||||
void ui_filters_add(ui_filter_e filter, uint32_t value, const char *name, ui_entry_enabled_e entry_enabled);
|
void ui_filters_add(ui_filter_e filter, uint32_t value, const char *name, ui_entry_enabled_e entry_enabled);
|
||||||
|
|
||||||
gboolean ui_filters_message_enabled(const uint32_t message, const uint32_t origin_task, const uint32_t destination_task, const uint32_t instance);
|
gboolean ui_filters_message_enabled(const uint32_t message, const uint32_t origin_task, const uint32_t destination_task, const uint32_t instance);
|
||||||
@@ -53,6 +56,8 @@ int ui_filters_read(const char *file_name);
|
|||||||
|
|
||||||
int ui_filters_file_write(const char *file_name);
|
int ui_filters_file_write(const char *file_name);
|
||||||
|
|
||||||
|
void ui_create_filter_menu(GtkWidget **menu, ui_filter_t *filter);
|
||||||
|
|
||||||
void ui_destroy_filter_menus(void);
|
void ui_destroy_filter_menus(void);
|
||||||
|
|
||||||
void ui_destroy_filter_menu(ui_filter_e filter);
|
void ui_destroy_filter_menu(ui_filter_e filter);
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ int ui_toolbar_create(GtkWidget *vbox)
|
|||||||
|
|
||||||
messages_label = gtk_label_new("Messages");
|
messages_label = gtk_label_new("Messages");
|
||||||
|
|
||||||
/* Button to deactivate filtering */
|
/* Button to Enable filtering */
|
||||||
{
|
{
|
||||||
ui_main_data.filters_enabled = gtk_toggle_tool_button_new();
|
ui_main_data.filters_enabled = gtk_toggle_tool_button_new();
|
||||||
gtk_tool_button_set_label (GTK_TOOL_BUTTON(ui_main_data.filters_enabled), "Filters");
|
gtk_tool_button_set_label (GTK_TOOL_BUTTON(ui_main_data.filters_enabled), "Filters");
|
||||||
|
|||||||
Reference in New Issue
Block a user