diff options
author | Ulf Lamping <ulf.lamping@web.de> | 2004-01-29 23:11:38 +0000 |
---|---|---|
committer | Ulf Lamping <ulf.lamping@web.de> | 2004-01-29 23:11:38 +0000 |
commit | 3c76ec1aa2df73ab7548905da786d99b576515eb (patch) | |
tree | e67e54cfc7b598ee8815ba2984c94c0cf20901ff /gtk/capture_dlg.c | |
parent | 419837e53154a82f09b29e2ee1467182c3c40c5d (diff) |
every GUI action, which will erease a currently unsaved capture file,
will now raise a dialog "Save xy before z?" with Yes/No/Cancel buttons.
svn path=/trunk/; revision=9908
Diffstat (limited to 'gtk/capture_dlg.c')
-rw-r--r-- | gtk/capture_dlg.c | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/gtk/capture_dlg.c b/gtk/capture_dlg.c index 93b55f7d9b..20efc68a60 100644 --- a/gtk/capture_dlg.c +++ b/gtk/capture_dlg.c @@ -1,7 +1,7 @@ /* capture_dlg.c * Routines for packet capture windows * - * $Id: capture_dlg.c,v 1.97 2004/01/26 09:05:59 guy Exp $ + * $Id: capture_dlg.c,v 1.98 2004/01/29 23:11:37 ulfl Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -48,6 +48,7 @@ #include "ringbuffer.h" #include <epan/filesystem.h> #include "compat_macros.h" +#include "file_dlg.h" #ifdef _WIN32 #include "capture-wpcap.h" @@ -260,7 +261,7 @@ set_link_type_list(GtkWidget *linktype_om, GtkWidget *entry) } void -capture_prep_cb(GtkWidget *w _U_, gpointer d _U_) +capture_prep(void) { GtkWidget *main_vb, *capture_fr, *capture_vb, @@ -759,6 +760,42 @@ capture_prep_cb(GtkWidget *w _U_, gpointer d _U_) gtk_widget_show(cap_open_w); } +static void +capture_prep_answered_cb(gpointer dialog _U_, gint btn, gpointer data) +{ + switch(btn) { + case(ESD_BTN_YES): + /* save file first */ + file_save_as_cmd(after_save_capture_dialog, data); + break; + case(ESD_BTN_NO): + capture_prep(); + break; + case(ESD_BTN_CANCEL): + break; + default: + g_assert_not_reached(); + } +} + +void +capture_prep_cb(GtkWidget *w, gpointer d _U_) +{ + gpointer dialog; + + if((cfile.state != FILE_CLOSED) && !cfile.user_saved) { + /* user didn't saved his current file, ask him */ + dialog = simple_dialog(ESD_TYPE_QUEST | ESD_TYPE_MODAL, + ESD_BTN_YES | ESD_BTN_NO | ESD_BTN_CANCEL, + "Save packets to \"%s\" before capturing?", + cf_get_display_name(&cfile)); + simple_dialog_set_cb(dialog, capture_prep_answered_cb, NULL); + } else { + /* unchanged file, just capture a new one */ + capture_prep(); + } +} + static void select_link_type_cb(GtkWidget *w, gpointer data) { |