aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2012-05-22 03:52:12 +0000
committerGuy Harris <guy@alum.mit.edu>2012-05-22 03:52:12 +0000
commit90c43120ca914ca400e682f9e32e38887cd83269 (patch)
treecea9bd1151a72bef785296474a0e7282eeab6598
parentd231102428a43bef635801718838aa406719e5a0 (diff)
The GUI's state machine requires that, when reloading a capture after a
save, we post capture file callback events similar to the ones posted when reading a capture - otherwise, the reload will leave the welcome screen up. Rename cf_cb_file_save_reload_finished to cf_cb_file_reload_finished, add a cf_cb_file_reload_started callback, have them work similarly to read_finished and read_started except that the reload uses "Reloading" in the progress bar and status bar. Clean up some indentation while we're at it. svn path=/trunk/; revision=42764
-rw-r--r--file.c23
-rw-r--r--file.h15
-rw-r--r--ui/gtk/main.c19
-rw-r--r--ui/gtk/main_statusbar.c23
-rw-r--r--ui/qt/wireshark_application.cpp12
5 files changed, 44 insertions, 48 deletions
diff --git a/file.c b/file.c
index 54dbc5f168..360879d376 100644
--- a/file.c
+++ b/file.c
@@ -482,7 +482,7 @@ calc_progbar_val(capture_file *cf, gint64 size, gint64 file_pos, gchar *status_s
}
cf_read_status_t
-cf_read(capture_file *cf, gboolean from_save)
+cf_read(capture_file *cf, gboolean reloading)
{
int err;
gchar *err_info;
@@ -525,10 +525,10 @@ cf_read(capture_file *cf, gboolean from_save)
name_ptr = get_basename(cf->filename);
- if (from_save == FALSE)
- cf_callback_invoke(cf_cb_file_read_started, cf);
+ if (reloading)
+ cf_callback_invoke(cf_cb_file_reload_started, cf);
else
- cf_callback_invoke(cf_cb_file_save_started, (gpointer)name_ptr);
+ cf_callback_invoke(cf_cb_file_read_started, cf);
/* Find the size of the file. */
size = wtap_file_size(cf->wth, NULL);
@@ -562,11 +562,11 @@ cf_read(capture_file *cf, gboolean from_save)
*/
if ((progbar == NULL) && !(count % MIN_NUMBER_OF_PACKET)){
progbar_val = calc_progbar_val(cf, size, file_pos, status_str, sizeof(status_str));
- if (from_save == FALSE)
- progbar = delayed_create_progress_dlg("Loading", name_ptr,
+ if (reloading)
+ progbar = delayed_create_progress_dlg("Reloading", name_ptr,
TRUE, &stop_flag, &start_time, progbar_val);
else
- progbar = delayed_create_progress_dlg("Saving", name_ptr,
+ progbar = delayed_create_progress_dlg("Loading", name_ptr,
TRUE, &stop_flag, &start_time, progbar_val);
}
@@ -660,10 +660,10 @@ cf_read(capture_file *cf, gboolean from_save)
cf->current_row = 0;
new_packet_list_thaw();
- if (from_save == FALSE)
- cf_callback_invoke(cf_cb_file_read_finished, cf);
+ if (reloading)
+ cf_callback_invoke(cf_cb_file_reload_finished, cf);
else
- cf_callback_invoke(cf_cb_file_save_finished, cf);
+ cf_callback_invoke(cf_cb_file_read_finished, cf);
/* If we have any displayed packets to select, select the first of those
packets by making the first row the selected row. */
@@ -3975,7 +3975,6 @@ cf_save(capture_file *cf, const char *fname, packet_range_t *range, guint save_f
correctly for the "no capture file open" state). */
break;
}
- cf_callback_invoke(cf_cb_file_save_reload_finished, cf);
}
}
return CF_OK;
@@ -4204,7 +4203,7 @@ cf_reload(capture_file *cf) {
is_tempfile = cf->is_tempfile;
cf->is_tempfile = FALSE;
if (cf_open(cf, filename, is_tempfile, &err) == CF_OK) {
- switch (cf_read(cf, FALSE)) {
+ switch (cf_read(cf, TRUE)) {
case CF_READ_OK:
case CF_READ_ERROR:
diff --git a/file.h b/file.h
index d42f793efe..1b093e3c7e 100644
--- a/file.h
+++ b/file.h
@@ -40,20 +40,20 @@ extern "C" {
/** Return values from functions that only can succeed or fail. */
typedef enum {
- CF_OK, /**< operation succeeded */
- CF_ERROR /**< operation got an error (function may provide err with details) */
+ CF_OK, /**< operation succeeded */
+ CF_ERROR /**< operation got an error (function may provide err with details) */
} cf_status_t;
/** Return values from functions that read capture files. */
typedef enum {
- CF_READ_OK, /**< operation succeeded */
- CF_READ_ERROR, /**< operation got an error (function may provide err with details) */
- CF_READ_ABORTED /**< operation aborted by user */
+ CF_READ_OK, /**< operation succeeded */
+ CF_READ_ERROR, /**< operation got an error (function may provide err with details) */
+ CF_READ_ABORTED /**< operation aborted by user */
} cf_read_status_t;
/** Return values from functions that print sets of packets. */
typedef enum {
- CF_PRINT_OK, /**< print operation succeeded */
+ CF_PRINT_OK, /**< print operation succeeded */
CF_PRINT_OPEN_ERROR, /**< print operation failed while opening printer */
CF_PRINT_WRITE_ERROR /**< print operation failed while writing to the printer */
} cf_print_status_t;
@@ -63,12 +63,13 @@ typedef enum {
cf_cb_file_closed,
cf_cb_file_read_started,
cf_cb_file_read_finished,
+ cf_cb_file_reload_started,
+ cf_cb_file_reload_finished,
cf_cb_packet_selected,
cf_cb_packet_unselected,
cf_cb_field_unselected,
cf_cb_file_save_started,
cf_cb_file_save_finished,
- cf_cb_file_save_reload_finished,
cf_cb_file_save_failed
} cf_cbs;
diff --git a/ui/gtk/main.c b/ui/gtk/main.c
index 2b5605a6a8..ec953f31b9 100644
--- a/ui/gtk/main.c
+++ b/ui/gtk/main.c
@@ -1721,13 +1721,6 @@ main_cf_cb_field_unselected(capture_file *cf)
}
static void
-main_cf_cb_file_save_reload_finished(gpointer data _U_)
-{
- set_display_filename(&cfile);
- set_menus_for_capture_file(&cfile);
-}
-
-static void
main_cf_callback(gint event, gpointer data, gpointer user_data _U_)
{
switch(event) {
@@ -1747,6 +1740,14 @@ main_cf_callback(gint event, gpointer data, gpointer user_data _U_)
g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Read finished");
main_cf_cb_file_read_finished(data);
break;
+ case(cf_cb_file_reload_started):
+ g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Reload started");
+ main_cf_cb_file_read_started(data);
+ break;
+ case(cf_cb_file_reload_finished):
+ g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Reload finished");
+ main_cf_cb_file_read_finished(data);
+ break;
case(cf_cb_packet_selected):
main_cf_cb_packet_selected(data);
break;
@@ -1762,10 +1763,6 @@ main_cf_callback(gint event, gpointer data, gpointer user_data _U_)
case(cf_cb_file_save_finished):
g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Save finished");
break;
- case(cf_cb_file_save_reload_finished):
- g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Reload finished");
- main_cf_cb_file_save_reload_finished(data);
- break;
case(cf_cb_file_save_failed):
g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Save failed");
break;
diff --git a/ui/gtk/main_statusbar.c b/ui/gtk/main_statusbar.c
index fe3dc074db..d7efa82a42 100644
--- a/ui/gtk/main_statusbar.c
+++ b/ui/gtk/main_statusbar.c
@@ -738,7 +738,7 @@ statusbar_cf_file_closed_cb(capture_file *cf _U_)
static void
-statusbar_cf_file_read_started_cb(capture_file *cf)
+statusbar_cf_file_read_started_cb(capture_file *cf, const char *action)
{
const gchar *name_ptr;
@@ -747,7 +747,7 @@ statusbar_cf_file_read_started_cb(capture_file *cf)
name_ptr = get_basename(cf->filename);
- statusbar_push_file_msg(" Loading: %s", name_ptr);
+ statusbar_push_file_msg(" %s: %s", action, name_ptr);
}
@@ -937,14 +937,6 @@ statusbar_cf_file_save_finished_cb(gpointer data _U_)
}
static void
-statusbar_cf_file_reload_finished_cb(capture_file *cf)
-{
- statusbar_pop_file_msg();
- statusbar_set_filename(cf->filename, cf->f_datalen, &(cf->elapsed_time));
-}
-
-
-static void
statusbar_cf_file_save_failed_cb(gpointer data _U_)
{
/* Pop the "Saving:" message off the status bar. */
@@ -964,11 +956,17 @@ statusbar_cf_callback(gint event, gpointer data, gpointer user_data _U_)
statusbar_cf_file_closed_cb(data);
break;
case(cf_cb_file_read_started):
- statusbar_cf_file_read_started_cb(data);
+ statusbar_cf_file_read_started_cb(data, "Loading");
break;
case(cf_cb_file_read_finished):
statusbar_cf_file_read_finished_cb(data);
break;
+ case(cf_cb_file_reload_started):
+ statusbar_cf_file_read_started_cb(data, "Reloading");
+ break;
+ case(cf_cb_file_reload_finished):
+ statusbar_cf_file_read_finished_cb(data);
+ break;
case(cf_cb_packet_selected):
break;
case(cf_cb_packet_unselected):
@@ -982,9 +980,6 @@ statusbar_cf_callback(gint event, gpointer data, gpointer user_data _U_)
case(cf_cb_file_save_finished):
statusbar_cf_file_save_finished_cb(data);
break;
- case(cf_cb_file_save_reload_finished):
- statusbar_cf_file_reload_finished_cb(data);
- break;
case(cf_cb_file_save_failed):
statusbar_cf_file_save_failed_cb(data);
break;
diff --git a/ui/qt/wireshark_application.cpp b/ui/qt/wireshark_application.cpp
index 535be844b0..8cfee2b093 100644
--- a/ui/qt/wireshark_application.cpp
+++ b/ui/qt/wireshark_application.cpp
@@ -200,6 +200,14 @@ void WiresharkApplication::captureFileCallback(int event, void * data)
g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Read finished");
emit captureFileReadFinished(cf);
break;
+ case(cf_cb_file_reload_started):
+ g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Reload started");
+ emit captureFileReadStarted(cf);
+ break;
+ case(cf_cb_file_reload_finished):
+ g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Reload finished");
+ emit captureFileReadFinished(cf);
+ break;
case(cf_cb_packet_selected):
case(cf_cb_packet_unselected):
@@ -213,10 +221,6 @@ void WiresharkApplication::captureFileCallback(int event, void * data)
// case(cf_cb_file_save_finished):
// g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Save finished");
// break;
-// case(cf_cb_file_save_reload_finished):
-// g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Reload finished");
-// main_cf_cb_file_save_reload_finished(data);
-// break;
// case(cf_cb_file_save_failed):
// g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Save failed");
// break;