diff options
author | gerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7> | 2002-09-22 17:52:38 +0000 |
---|---|---|
committer | gerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7> | 2002-09-22 17:52:38 +0000 |
commit | 436b5067bcd1d1eb73fc50a4e79df012aa0ae069 (patch) | |
tree | 0e8b595f637073b7806ae464c6178f1ad1a8861c /gtk2 | |
parent | 074cf40d6531ffd70132117ca9b252b76f978e58 (diff) |
From Graeme Hewson:
In my recent patches to set and use a default directory, I neglected
to set the directory when the user enters a file name directly into the
"Capture Options" and "Print" dialogs instead of using the file dialog.
This set of patches corrects this.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@6318 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'gtk2')
-rw-r--r-- | gtk2/capture_dlg.c | 14 | ||||
-rw-r--r-- | gtk2/print_dlg.c | 38 |
2 files changed, 32 insertions, 20 deletions
diff --git a/gtk2/capture_dlg.c b/gtk2/capture_dlg.c index 2ccc070792..7dc8f07364 100644 --- a/gtk2/capture_dlg.c +++ b/gtk2/capture_dlg.c @@ -1,7 +1,7 @@ /* capture_dlg.c * Routines for packet capture windows * - * $Id: capture_dlg.c,v 1.6 2002/09/09 20:39:01 guy Exp $ + * $Id: capture_dlg.c,v 1.7 2002/09/22 17:52:38 gerald Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -621,7 +621,6 @@ static void cap_prep_fs_ok_cb(GtkWidget *w _U_, gpointer data) { gchar *cf_name; - gchar *dirname; cf_name = g_strdup(gtk_file_selection_get_filename( GTK_FILE_SELECTION (data))); @@ -641,10 +640,6 @@ cap_prep_fs_ok_cb(GtkWidget *w _U_, gpointer data) E_CAP_FILE_TE_KEY)), cf_name); gtk_widget_destroy(GTK_WIDGET(data)); - - /* Save the directory name for future file dialogs. */ - dirname = get_dirname(cf_name); /* Overwrites cf_name */ - set_last_open_dir(dirname); g_free(cf_name); } @@ -690,6 +685,8 @@ capture_prep_ok_cb(GtkWidget *ok_bt _U_, gpointer parent_w) { const gchar *filter_text; const gchar *g_save_file; gchar *save_file; + gchar *cf_name; + gchar *dirname; if_cb = (GtkWidget *) gtk_object_get_data(GTK_OBJECT(parent_w), E_CAP_IFACE_KEY); snap_cb = (GtkWidget *) gtk_object_get_data(GTK_OBJECT(parent_w), E_CAP_SNAP_CB_KEY); @@ -763,6 +760,11 @@ capture_prep_ok_cb(GtkWidget *ok_bt _U_, gpointer parent_w) { if (g_save_file && g_save_file[0]) { /* User specified a file to which the capture should be written. */ save_file = g_strdup(g_save_file); + /* Save the directory name for future file dialogs. */ + cf_name = g_strdup(g_save_file); + dirname = get_dirname(cf_name); /* Overwrites cf_name */ + set_last_open_dir(dirname); + g_free(cf_name); } else { /* User didn't specify a file; save to a temporary file. */ save_file = NULL; diff --git a/gtk2/print_dlg.c b/gtk2/print_dlg.c index 8645b905e9..a5878b94ac 100644 --- a/gtk2/print_dlg.c +++ b/gtk2/print_dlg.c @@ -1,7 +1,7 @@ /* print_dlg.c * Dialog boxes for printing * - * $Id: print_dlg.c,v 1.4 2002/09/09 20:39:01 guy Exp $ + * $Id: print_dlg.c,v 1.5 2002/09/22 17:52:38 gerald Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -458,31 +458,27 @@ print_file_cb(GtkWidget *file_bt, gpointer file_te) static void print_fs_ok_cb(GtkWidget *w _U_, gpointer data) { - gchar *cf_name; - gchar *dirname; + gchar *f_name; - cf_name = g_strdup(gtk_file_selection_get_filename( + f_name = g_strdup(gtk_file_selection_get_filename( GTK_FILE_SELECTION (data))); /* Perhaps the user specified a directory instead of a file. Check whether they did. */ - if (test_for_directory(cf_name) == EISDIR) { + if (test_for_directory(f_name) == EISDIR) { /* It's a directory - set the file selection box to display it. */ - set_last_open_dir(cf_name); - g_free(cf_name); + set_last_open_dir(f_name); + g_free(f_name); gtk_file_selection_set_filename(GTK_FILE_SELECTION(data), last_open_dir); return; } gtk_entry_set_text(GTK_ENTRY(gtk_object_get_data(GTK_OBJECT(data), - PRINT_FILE_TE_KEY)), cf_name); + PRINT_FILE_TE_KEY)), f_name); gtk_widget_destroy(GTK_WIDGET(data)); - /* Save the directory name for future file dialogs. */ - dirname = get_dirname(cf_name); /* Overwrites cf_name */ - set_last_open_dir(dirname); - g_free(cf_name); + g_free(f_name); } static void @@ -533,6 +529,9 @@ print_ok_cb(GtkWidget *ok_bt, gpointer parent_w) { GtkWidget *button; print_args_t print_args; + const gchar *g_dest; + gchar *f_name; + gchar *dirname; #ifdef _WIN32 int win_printer_flag = FALSE; #endif @@ -542,8 +541,19 @@ print_ok_cb(GtkWidget *ok_bt, gpointer parent_w) print_args.to_file = print_to_file; if (print_args.to_file) { - print_args.dest = g_strdup(gtk_entry_get_text(GTK_ENTRY(gtk_object_get_data(GTK_OBJECT(ok_bt), - PRINT_FILE_TE_KEY)))); + g_dest = gtk_entry_get_text(GTK_ENTRY(gtk_object_get_data(GTK_OBJECT(ok_bt), + PRINT_FILE_TE_KEY))); + if (!g_dest[0]) { + simple_dialog(ESD_TYPE_CRIT, NULL, + "Printing to file, but no file specified."); + return; + } + print_args.dest = g_strdup(g_dest); + /* Save the directory name for future file dialogs. */ + f_name = g_strdup(g_dest); + dirname = get_dirname(f_name); /* Overwrites f_name */ + set_last_open_dir(dirname); + g_free(f_name); } else { #ifdef _WIN32 win_printer_flag = TRUE; |