From 5be8aeed4ccca2a2088508d64205ea3f6b6554bc Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Mon, 13 Aug 2001 19:55:40 +0000 Subject: Confirm that the user really wants to expunge. (save_msg_ok): Set the 2001-08-13 Jeffrey Stedfast * mail-callbacks.c (expunge_folder): Confirm that the user really wants to expunge. (save_msg_ok): Set the parent window here. svn path=/trunk/; revision=11949 --- mail/ChangeLog | 6 ++++++ mail/mail-callbacks.c | 30 +++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) (limited to 'mail') diff --git a/mail/ChangeLog b/mail/ChangeLog index 09d6813499..4ef4c7b3c1 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,9 @@ +2001-08-13 Jeffrey Stedfast + + * mail-callbacks.c (expunge_folder): Confirm that the user really + wants to expunge. + (save_msg_ok): Set the parent window here. + 2001-08-13 Peter Williams * mail-config.c (remove_account_shortcuts): Remove the shortcuts diff --git a/mail/mail-callbacks.c b/mail/mail-callbacks.c index 6ad6008ccf..5fed62e747 100644 --- a/mail/mail-callbacks.c +++ b/mail/mail-callbacks.c @@ -1487,6 +1487,7 @@ save_msg_ok (GtkWidget *widget, gpointer user_data) GNOME_STOCK_BUTTON_NO, NULL); + gtk_widget_set_parent (dialog, GTK_WIDGET (user_data)); text = gtk_label_new (_("A file by that name already exists.\nOverwrite it?")); gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (dialog)->vbox), text, TRUE, TRUE, 4); gtk_window_set_policy (GTK_WINDOW (dialog), FALSE, TRUE, FALSE); @@ -1669,12 +1670,39 @@ expunged_folder (CamelFolder *f, void *data) g_free (data); } +static gboolean +confirm_expunge (void) +{ + GtkWidget *dialog, *label; + int button; + + dialog = gnome_dialog_new (_("Are you sure?"), + GNOME_STOCK_BUTTON_YES, + GNOME_STOCK_BUTTON_NO, + NULL); + + label = gtk_label_new (_("You are about to expunge a folder. This will\n" + "permantly remove all messages with a \"deleted\"\n" + "flag from both this folder and the Trash folder.\n\n" + "Are you sure you want to continue?")); + + gtk_widget_show (label); + gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (dialog)->vbox), label, TRUE, TRUE, 4); + + button = gnome_dialog_run_and_close (GNOME_DIALOG (dialog)); + + if (button == 0) + return TRUE; + else + return FALSE; +} + void expunge_folder (BonoboUIComponent *uih, void *user_data, const char *path) { FolderBrowser *fb = FOLDER_BROWSER (user_data); - if (fb->folder && (fb->expunging == NULL || fb->folder != fb->expunging)) { + if (fb->folder && (fb->expunging == NULL || fb->folder != fb->expunging) && confirm_expunge ()) { struct _expunged_folder_data *data; CamelMessageInfo *info; -- cgit v1.2.3