From ae6344a22b041577fdab9bf3866dbfe779dc1409 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Tue, 4 Dec 2012 19:32:25 +0100 Subject: Bug #315317 - Add option to expunge messages on folder leave --- modules/mail/e-mail-shell-backend.c | 4 ++-- modules/mail/e-mail-shell-view-private.c | 2 +- modules/mail/em-mailer-prefs.c | 15 +++++++++------ 3 files changed, 12 insertions(+), 9 deletions(-) (limited to 'modules/mail') diff --git a/modules/mail/e-mail-shell-backend.c b/modules/mail/e-mail-shell-backend.c index 7db1b13b86..c05e8518fe 100644 --- a/modules/mail/e-mail-shell-backend.c +++ b/modules/mail/e-mail-shell-backend.c @@ -663,7 +663,7 @@ mail_shell_backend_delete_junk_policy_decision (EMailBackend *backend) empty_date = g_settings_get_int (settings, "junk-empty-date"); } - delete_junk &= (empty_days == 0) || (empty_date + empty_days <= now); + delete_junk = delete_junk && ((empty_days == 0) || (empty_days > 0 && empty_date + empty_days <= now)); if (delete_junk) { g_settings_set_int (settings, "junk-empty-date", now); @@ -704,7 +704,7 @@ mail_shell_backend_empty_trash_policy_decision (EMailBackend *backend) empty_date = g_settings_get_int (settings, "trash-empty-date"); } - empty_trash &= (empty_days == 0) || (empty_date + empty_days <= now); + empty_trash = empty_trash && ((empty_days == 0) || (empty_days > 0 && empty_date + empty_days <= now)); if (empty_trash) { g_settings_set_int (settings, "trash-empty-date", now); diff --git a/modules/mail/e-mail-shell-view-private.c b/modules/mail/e-mail-shell-view-private.c index 6bdbcb3adf..9752461191 100644 --- a/modules/mail/e-mail-shell-view-private.c +++ b/modules/mail/e-mail-shell-view-private.c @@ -532,7 +532,7 @@ mail_shell_view_prepare_for_quit_cb (EMailShellView *mail_shell_view, return; mail_sync_folder ( - folder, + folder, TRUE, mail_shell_view_prepare_for_quit_done_cb, g_object_ref (activity)); } diff --git a/modules/mail/em-mailer-prefs.c b/modules/mail/em-mailer-prefs.c index 4720470c2a..0dd3d38147 100644 --- a/modules/mail/em-mailer-prefs.c +++ b/modules/mail/em-mailer-prefs.c @@ -83,10 +83,11 @@ static const struct { const gchar *label; gint days; } empty_trash_frequency[] = { - { N_("Every time"), 0 }, - { N_("Once per day"), 1 }, - { N_("Once per week"), 7 }, - { N_("Once per month"), 30 }, + { N_("On exit, every time"), 0 }, + { N_("On exit, once per day"), 1 }, + { N_("On exit, once per week"), 7 }, + { N_("On exit, once per month"), 30 }, + { N_("Immediately, on folder leave"), -1 } }; G_DEFINE_TYPE ( @@ -623,7 +624,8 @@ emmp_empty_trash_init (EMMailerPrefs *prefs, gtk_list_store_clear (store); for (ii = 0; ii < G_N_ELEMENTS (empty_trash_frequency); ii++) { - if (days >= empty_trash_frequency[ii].days) + if (days == empty_trash_frequency[ii].days || + (empty_trash_frequency[ii].days != -1 && days > empty_trash_frequency[ii].days)) hist = ii; gtk_list_store_append (store, &iter); @@ -672,7 +674,8 @@ emmp_empty_junk_init (EMMailerPrefs *prefs, gtk_list_store_clear (store); for (ii = 0; ii < G_N_ELEMENTS (empty_trash_frequency); ii++) { - if (days >= empty_trash_frequency[ii].days) + if (days == empty_trash_frequency[ii].days || + (empty_trash_frequency[ii].days != -1 && days >= empty_trash_frequency[ii].days)) hist = ii; gtk_list_store_append (store, &iter); -- cgit v1.2.3