Moved operation running test to cover also reload operations.

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4863 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
winckel
2014-01-13 23:20:06 +00:00
parent bb84c46c4f
commit 0241785ad4
2 changed files with 163 additions and 167 deletions
+40 -17
View File
@@ -29,8 +29,9 @@
#include "locate_root.h" #include "locate_root.h"
#include "xml_parse.h" #include "xml_parse.h"
static gboolean refresh_message_list = TRUE; static gboolean refresh_message_list = TRUE;
static gboolean filters_changed = FALSE; static gboolean filters_changed = FALSE;
static gboolean operation_running = FALSE;
gboolean ui_callback_on_open_messages(GtkWidget *widget, gpointer data) gboolean ui_callback_on_open_messages(GtkWidget *widget, gpointer data)
{ {
@@ -38,13 +39,18 @@ gboolean ui_callback_on_open_messages(GtkWidget *widget, gpointer data)
g_message("Open messages event occurred %d", refresh); g_message("Open messages event occurred %d", refresh);
if (refresh && (ui_main_data.messages_file_name != NULL)) if (operation_running == FALSE)
{ {
CHECK_FCT(ui_messages_read (ui_main_data.messages_file_name)); operation_running = TRUE;
} if (refresh && (ui_main_data.messages_file_name != NULL))
else {
{ CHECK_FCT(ui_messages_read (ui_main_data.messages_file_name));
CHECK_FCT(ui_messages_open_file_chooser()); }
else
{
CHECK_FCT(ui_messages_open_file_chooser());
}
operation_running = FALSE;
} }
return TRUE; return TRUE;
@@ -54,7 +60,12 @@ gboolean ui_callback_on_save_messages(GtkWidget *widget, gpointer data)
{ {
g_message("Save messages event occurred"); g_message("Save messages event occurred");
CHECK_FCT(ui_messages_save_file_chooser()); if (operation_running == FALSE)
{
operation_running = TRUE;
CHECK_FCT(ui_messages_save_file_chooser());
operation_running = FALSE;
}
return TRUE; return TRUE;
} }
@@ -93,13 +104,19 @@ gboolean ui_callback_on_open_filters(GtkWidget *widget, gpointer data)
g_message("Open filters event occurred"); g_message("Open filters event occurred");
if (refresh && (ui_main_data.filters_file_name != NULL)) if (operation_running == FALSE)
{ {
CHECK_FCT(ui_filters_read (ui_main_data.filters_file_name)); operation_running = TRUE;
} if (refresh && (ui_main_data.filters_file_name != NULL))
else {
{
CHECK_FCT(ui_filters_open_file_chooser()); CHECK_FCT(ui_filters_read (ui_main_data.filters_file_name));
}
else
{
CHECK_FCT(ui_filters_open_file_chooser());
}
operation_running = FALSE;
} }
return TRUE; return TRUE;
@@ -107,8 +124,14 @@ gboolean ui_callback_on_open_filters(GtkWidget *widget, gpointer data)
gboolean ui_callback_on_save_filters(GtkWidget *widget, gpointer data) gboolean ui_callback_on_save_filters(GtkWidget *widget, gpointer data)
{ {
g_message("Save filters event occurred"); if (operation_running == FALSE)
CHECK_FCT(ui_filters_save_file_chooser()); {
operation_running = TRUE;
g_message("Save filters event occurred");
CHECK_FCT(ui_filters_save_file_chooser());
operation_running = FALSE;
}
return TRUE; return TRUE;
} }
@@ -28,7 +28,6 @@
static const itti_message_types_t itti_dump_xml_definition_end = ITTI_DUMP_XML_DEFINITION_END; static const itti_message_types_t itti_dump_xml_definition_end = ITTI_DUMP_XML_DEFINITION_END;
static const itti_message_types_t itti_dump_message_type_end = ITTI_DUMP_MESSAGE_TYPE_END; static const itti_message_types_t itti_dump_message_type_end = ITTI_DUMP_MESSAGE_TYPE_END;
static gboolean chooser_running;
static FILE *messages_file; static FILE *messages_file;
static uint32_t message_number; static uint32_t message_number;
static gboolean ui_abort; static gboolean ui_abort;
@@ -357,33 +356,79 @@ int ui_messages_open_file_chooser(void)
{ {
int result = RC_OK; int result = RC_OK;
if (chooser_running == FALSE) GtkWidget *filechooser;
{ gboolean accept;
GtkWidget *filechooser; char *filename;
gboolean accept;
char *filename;
chooser_running = TRUE; filechooser = gtk_file_chooser_dialog_new ("Select file", GTK_WINDOW (ui_main_data.window),
filechooser = gtk_file_chooser_dialog_new ("Select file", GTK_WINDOW (ui_main_data.window), GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); gtk_filter_add (filechooser, "Log files", "*.log");
gtk_filter_add (filechooser, "All files", "*");
/* Process the response */
accept = gtk_dialog_run (GTK_DIALOG (filechooser)) == GTK_RESPONSE_ACCEPT;
if (accept)
{
filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser));
}
gtk_widget_destroy (filechooser);
if (accept)
{
result = ui_messages_read (filename);
if (result == RC_OK)
{
/* Update messages file name for future use */
if (ui_main_data.messages_file_name != NULL)
{
g_free (ui_main_data.messages_file_name);
}
ui_main_data.messages_file_name = filename;
}
else
{
g_free (filename);
}
}
return result;
}
int ui_messages_save_file_chooser(void)
{
int result = RC_OK;
GtkWidget *filechooser;
/* Check if there is something to save */
if (xml_raw_data_size > 0)
{
filechooser = gtk_file_chooser_dialog_new ("Save file", GTK_WINDOW (ui_main_data.window),
GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL,
GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
gtk_filter_add (filechooser, "Log files", "*.log"); gtk_filter_add (filechooser, "Log files", "*.log");
gtk_filter_add (filechooser, "All files", "*"); gtk_filter_add (filechooser, "All files", "*");
/* Process the response */ gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (filechooser), TRUE);
accept = gtk_dialog_run (GTK_DIALOG (filechooser)) == GTK_RESPONSE_ACCEPT;
if (accept) if (ui_main_data.messages_file_name != NULL)
{ {
filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser)); gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (filechooser), ui_main_data.messages_file_name);
} }
gtk_widget_destroy (filechooser); else
if (accept)
{ {
result = ui_messages_read (filename); gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (filechooser), "messages.log");
}
/* Process the response */
if (gtk_dialog_run (GTK_DIALOG (filechooser)) == GTK_RESPONSE_ACCEPT)
{
char *filename;
filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser));
result = ui_messages_file_write (filename);
if (result == RC_OK) if (result == RC_OK)
{ {
/* Update messages file name for future use */ /* Update filters file name for future use */
if (ui_main_data.messages_file_name != NULL) if (ui_main_data.messages_file_name != NULL)
{ {
g_free (ui_main_data.messages_file_name); g_free (ui_main_data.messages_file_name);
@@ -395,65 +440,7 @@ int ui_messages_open_file_chooser(void)
g_free (filename); g_free (filename);
} }
} }
chooser_running = FALSE; gtk_widget_destroy (filechooser);
}
return result;
}
int ui_messages_save_file_chooser(void)
{
int result = RC_OK;
if (chooser_running == FALSE)
{
GtkWidget *filechooser;
chooser_running = TRUE;
/* Check if there is something to save */
if (xml_raw_data_size > 0)
{
filechooser = gtk_file_chooser_dialog_new ("Save file", GTK_WINDOW (ui_main_data.window),
GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL,
GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
gtk_filter_add (filechooser, "Log files", "*.log");
gtk_filter_add (filechooser, "All files", "*");
gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (filechooser), TRUE);
if (ui_main_data.messages_file_name != NULL)
{
gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (filechooser), ui_main_data.messages_file_name);
}
else
{
gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (filechooser), "messages.log");
}
/* Process the response */
if (gtk_dialog_run (GTK_DIALOG (filechooser)) == GTK_RESPONSE_ACCEPT)
{
char *filename;
filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser));
result = ui_messages_file_write (filename);
if (result == RC_OK)
{
/* Update filters file name for future use */
if (ui_main_data.messages_file_name != NULL)
{
g_free (ui_main_data.messages_file_name);
}
ui_main_data.messages_file_name = filename;
}
else
{
g_free (filename);
}
}
gtk_widget_destroy (filechooser);
}
chooser_running = FALSE;
} }
return result; return result;
@@ -462,47 +449,40 @@ int ui_messages_save_file_chooser(void)
int ui_filters_open_file_chooser(void) int ui_filters_open_file_chooser(void)
{ {
int result = RC_OK; int result = RC_OK;
GtkWidget *filechooser;
gboolean accept;
char *filename;
if (chooser_running == FALSE) filechooser = gtk_file_chooser_dialog_new ("Select file", GTK_WINDOW (ui_main_data.window),
GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
gtk_filter_add (filechooser, "Filters files", "*.xml");
gtk_filter_add (filechooser, "All files", "*");
/* Process the response */
accept = gtk_dialog_run (GTK_DIALOG (filechooser)) == GTK_RESPONSE_ACCEPT;
if (accept)
{ {
GtkWidget *filechooser; filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser));
gboolean accept; }
char *filename; gtk_widget_destroy (filechooser);
if (accept)
chooser_running = TRUE; {
result = ui_filters_read (filename);
filechooser = gtk_file_chooser_dialog_new ("Select file", GTK_WINDOW (ui_main_data.window), if (result == RC_OK)
GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
gtk_filter_add (filechooser, "Filters files", "*.xml");
gtk_filter_add (filechooser, "All files", "*");
/* Process the response */
accept = gtk_dialog_run (GTK_DIALOG (filechooser)) == GTK_RESPONSE_ACCEPT;
if (accept)
{ {
filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser)); /* Update filters file name for future use */
if (ui_main_data.filters_file_name != NULL)
{
g_free (ui_main_data.filters_file_name);
}
ui_main_data.filters_file_name = filename;
} }
gtk_widget_destroy (filechooser); else
if (accept)
{ {
result = ui_filters_read (filename); g_free (filename);
if (result == RC_OK)
{
/* Update filters file name for future use */
if (ui_main_data.filters_file_name != NULL)
{
g_free (ui_main_data.filters_file_name);
}
ui_main_data.filters_file_name = filename;
}
else
{
g_free (filename);
}
} }
chooser_running = FALSE;
} }
return result; return result;
@@ -511,54 +491,47 @@ int ui_filters_open_file_chooser(void)
int ui_filters_save_file_chooser(void) int ui_filters_save_file_chooser(void)
{ {
int result = RC_OK; int result = RC_OK;
GtkWidget *filechooser;
if (chooser_running == FALSE) filechooser = gtk_file_chooser_dialog_new ("Save file", GTK_WINDOW (ui_main_data.window),
GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
gtk_filter_add (filechooser, "Filters files", "*.xml");
gtk_filter_add (filechooser, "All files", "*");
gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (filechooser), TRUE);
if (ui_main_data.filters_file_name != NULL)
{ {
GtkWidget *filechooser; gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (filechooser), ui_main_data.filters_file_name);
}
else
{
gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (filechooser), "filters.xml");
}
chooser_running = TRUE; /* Process the response */
if (gtk_dialog_run (GTK_DIALOG (filechooser)) == GTK_RESPONSE_ACCEPT)
{
char *filename;
filechooser = gtk_file_chooser_dialog_new ("Save file", GTK_WINDOW (ui_main_data.window), filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser));
GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, result = ui_filters_file_write (filename);
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); if (result == RC_OK)
gtk_filter_add (filechooser, "Filters files", "*.xml");
gtk_filter_add (filechooser, "All files", "*");
gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (filechooser), TRUE);
if (ui_main_data.filters_file_name != NULL)
{ {
gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (filechooser), ui_main_data.filters_file_name); /* Update filters file name for future use */
if (ui_main_data.filters_file_name != NULL)
{
g_free (ui_main_data.filters_file_name);
}
ui_main_data.filters_file_name = filename;
} }
else else
{ {
gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (filechooser), "filters.xml"); g_free (filename);
} }
/* Process the response */
if (gtk_dialog_run (GTK_DIALOG (filechooser)) == GTK_RESPONSE_ACCEPT)
{
char *filename;
filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser));
result = ui_filters_file_write (filename);
if (result == RC_OK)
{
/* Update filters file name for future use */
if (ui_main_data.filters_file_name != NULL)
{
g_free (ui_main_data.filters_file_name);
}
ui_main_data.filters_file_name = filename;
}
else
{
g_free (filename);
}
}
gtk_widget_destroy (filechooser);
chooser_running = FALSE;
} }
gtk_widget_destroy (filechooser);
return result; return result;
} }