aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
Diffstat (limited to 'mail')
-rw-r--r--mail/ChangeLog17
-rw-r--r--mail/mail-callbacks.c28
-rw-r--r--mail/mail-config.c25
-rw-r--r--mail/mail-config.h3
4 files changed, 63 insertions, 10 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 1ba972f910..0772093ae5 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,20 @@
+2001-08-16 Jeffrey Stedfast <fejj@ximian.com>
+
+ * mail-callbacks.c (confirm_expunge): Respect the user's desire to
+ be prompted to confirm that he wants to expunge the blasted
+ folder. Also, don't set the usize - that's just an evil hack and
+ you may find it will cut off text once the label has been
+ translated.
+ (create_msg_composer): In order for the security options to be
+ checked when composing a new message, we must set the from account
+ explicitly even though the composer hdrs sets the default from
+ account and emits the signal because at that stage the composer
+ hasn't yet connected to the signals and thus the bonobo menu items
+ don't get set.
+
+ * mail-config.c (mail_config_set_confirm_expunge): New.
+ (mail_config_get_confirm_expunge): New.
+
2001-08-16 Peter Williams <peterw@ximian.com>
* subscribe-dialog.c (fe_got_children): Sort the nodes here...
diff --git a/mail/mail-callbacks.c b/mail/mail-callbacks.c
index f84f28332d..81fd4e43be 100644
--- a/mail/mail-callbacks.c
+++ b/mail/mail-callbacks.c
@@ -288,7 +288,7 @@ struct _send_data {
};
static void
-composer_sent_cb(char *uri, CamelMimeMessage *message, gboolean sent, void *data)
+composer_sent_cb (char *uri, CamelMimeMessage *message, gboolean sent, void *data)
{
struct _send_data *send = data;
@@ -354,7 +354,7 @@ composer_get_message (EMsgComposer *composer)
return NULL;
}
}
-
+
/* Check for no subject */
subject = camel_mime_message_get_subject (message);
if (subject == NULL || subject[0] == '\0') {
@@ -396,11 +396,11 @@ composer_send_cb (EMsgComposer *composer, gpointer data)
message = composer_get_message (composer);
if (!message)
return;
-
+
transport = mail_config_get_default_transport ();
if (!transport)
return;
-
+
send = g_malloc (sizeof (*send));
send->psd = psd;
send->composer = composer;
@@ -451,6 +451,7 @@ create_msg_composer (const char *url)
composer = url ? e_msg_composer_new_from_url (url) : e_msg_composer_new ();
if (composer) {
+ e_msg_composer_hdrs_set_from_account (composer->hdrs, account->name);
e_msg_composer_set_send_html (composer, send_html);
e_msg_composer_show_sig_file (composer);
}
@@ -1673,25 +1674,36 @@ expunged_folder (CamelFolder *f, void *data)
static gboolean
confirm_expunge (void)
{
- GtkWidget *dialog, *label;
+ GtkWidget *dialog, *label, *checkbox;
int button;
+ if (!mail_config_get_confirm_expunge ())
+ return TRUE;
+
dialog = gnome_dialog_new (_("Warning"),
GNOME_STOCK_BUTTON_YES,
GNOME_STOCK_BUTTON_NO,
NULL);
- gtk_widget_set_usize (GTK_WIDGET (dialog), 323, 180);
-
- label = gtk_label_new (_("This operation will permanently erase all messages marked as deleted. If you continue, you will not be able to recover these messages. \n \n Really erase these messages? "));
+ label = gtk_label_new (_("This operation will permanently erase all messages marked as deleted. If you continue, you will not be able to recover these messages.\n\nReally erase these messages?"));
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
gtk_widget_show (label);
gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (dialog)->vbox), label, TRUE, TRUE, 4);
+ checkbox = gtk_check_button_new_with_label (_("Do not ask me again."));
+ gtk_object_ref (GTK_OBJECT (checkbox));
+ gtk_widget_show (checkbox);
+ gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (dialog)->vbox), checkbox, TRUE, TRUE, 4);
+
button = gnome_dialog_run_and_close (GNOME_DIALOG (dialog));
+ if (button == 0 && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbox)))
+ mail_config_set_confirm_expunge (FALSE);
+
+ gtk_object_unref (GTK_OBJECT (checkbox));
+
if (button == 0)
return TRUE;
else
diff --git a/mail/mail-config.c b/mail/mail-config.c
index f40d999b0a..2050da0e05 100644
--- a/mail/mail-config.c
+++ b/mail/mail-config.c
@@ -66,6 +66,7 @@ typedef struct {
guint32 citation_color;
gboolean prompt_empty_subject;
gboolean prompt_only_bcc;
+ gboolean confirm_expunge;
gboolean do_seen_timeout;
gint seen_timeout;
gboolean empty_trash_on_exit;
@@ -517,6 +518,10 @@ config_read (void)
config->prompt_only_bcc = bonobo_config_get_boolean_with_default (
config->db, "/Mail/Prompts/only_bcc", TRUE, NULL);
+ /* Expunge */
+ config->confirm_expunge = bonobo_config_get_boolean_with_default (
+ config->db, "/Mail/Prompts/confirm_expunge", TRUE, NULL);
+
/* PGP/GPG */
config->pgp_path = bonobo_config_get_string (config->db,
"/Mail/PGP/path", NULL);
@@ -786,11 +791,15 @@ mail_config_write_on_exit (void)
/* Empty Subject */
bonobo_config_set_boolean (config->db, "/Mail/Prompts/empty_subject",
- config->prompt_empty_subject, NULL);
+ config->prompt_empty_subject, NULL);
/* Only Bcc */
bonobo_config_set_boolean (config->db, "/Mail/Prompts/only_bcc",
- config->prompt_only_bcc, NULL);
+ config->prompt_only_bcc, NULL);
+
+ /* Expunge */
+ bonobo_config_set_boolean (config->db, "/Mail/Prompts/confirm_expunge",
+ config->confirm_expunge, NULL);
/* PGP/GPG */
bonobo_config_set_string_wrapper (config->db, "/Mail/PGP/path",
@@ -1144,6 +1153,18 @@ mail_config_set_prompt_only_bcc (gboolean value)
config->prompt_only_bcc = value;
}
+gboolean
+mail_config_get_confirm_expunge (void)
+{
+ return config->confirm_expunge;
+}
+
+void
+mail_config_set_confirm_expunge (gboolean value)
+{
+ config->confirm_expunge = value;
+}
+
struct {
char *bin;
diff --git a/mail/mail-config.h b/mail/mail-config.h
index db057f0656..76aa3b60cd 100644
--- a/mail/mail-config.h
+++ b/mail/mail-config.h
@@ -148,6 +148,9 @@ void mail_config_set_prompt_empty_subject (gboolean value);
gboolean mail_config_get_prompt_only_bcc (void);
void mail_config_set_prompt_only_bcc (gboolean value);
+gboolean mail_config_get_confirm_expunge (void);
+void mail_config_set_confirm_expunge (gboolean value);
+
CamelPgpType mail_config_get_pgp_type (void);
void mail_config_set_pgp_type (CamelPgpType pgp_type);