From 4b308cddb0efde0acf808f3a52a4e7653e9e0070 Mon Sep 17 00:00:00 2001 From: Not Zed Date: Thu, 18 Mar 2004 04:58:29 +0000 Subject: started writing this, but i couldn't be fucked right now - apparently 2004-03-18 Not Zed * mail-config.c (mail_config_writable): started writing this, but i couldn't be fucked right now - apparently gnome is supposed to use the gconf thing which just doens't work. i'll waste a few hours trying to get it to work again first before i keep going with this. 2004-03-17 Not Zed * em-format-html.c (efh_message_deliverystatus): format as plain text too. * em-format.c (emf_message_deliverystatus): format delivery status messages as plain text, rather than as messages. since they wont be CamelMimeMessages. Maybe they should be silently hidden. * mail-offline-handler.c (store_go_online): split this, only call add_store/note_store once we've actually set the store online. (store_went_online): set the store up once we're fully online. Works around a deadlock in #55618. * em-account-prefs.c (account_cursor_change): disable editing/adding/removing accounts etc if accounts aren't editable. (em_account_prefs_construct): call above after setup. * mail-component.c (mc_quit_sync): if we have empty on exit days, check that. keep track of the last empty on exit time. * em-mailer-prefs.c (emmp_empty_trash_init): init the trash stuff here. (em_mailer_prefs_apply): save empty trash on exit frequency. svn path=/trunk/; revision=25110 --- mail/mail-component.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'mail/mail-component.c') diff --git a/mail/mail-component.c b/mail/mail-component.c index c519e108dd..73d178f47a 100644 --- a/mail/mail-component.c +++ b/mail/mail-component.c @@ -539,10 +539,19 @@ mc_quit_sync_done(CamelStore *store, void *data) static void mc_quit_sync(CamelStore *store, struct _store_info *si, MailComponent *mc) { - int expunge = gconf_client_get_bool(mail_config_get_gconf_client(), "/apps/evolution/mail/trash/empty_on_exit", NULL); + GConfClient *gconf = mail_config_get_gconf_client(); + gboolean expunge; + int now = time(NULL)/60/60/24, days; + + expunge = gconf_client_get_bool(gconf, "/apps/evolution/mail/trash/empty_on_exit", NULL) + && ((days = gconf_client_get_int(gconf, "/apps/evolution/mail/trash/empty_on_exit_days", NULL)) == 0 + || (days + gconf_client_get_int(gconf, "/apps/evolution/mail/trash/empty_date", NULL)) <= now); mc->priv->quit_count++; mail_sync_store(store, expunge, mc_quit_sync_done, mc); + + if (expunge) + gconf_client_set_int(gconf, "/apps/evolution/mail/trash/empty_date", now, NULL); } static CORBA_boolean -- cgit v1.2.3