From: Felipe Erias Morandeira Date: Wed, 12 Dec 2007 12:14:35 +0000 (+0000) Subject: Fixes NB#78203 X-Git-Tag: git_migration_finished~1937 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=d08fd58a15eb3a02abb305a9315ef48ead85716c Fixes NB#78203 * The modest_mail_operation_remove_msgs operation takes into account the "leave on server" setting. pmo-trunk-r3901 --- diff --git a/src/modest-mail-operation.c b/src/modest-mail-operation.c index ede8f8e..d9e31bc 100644 --- a/src/modest-mail-operation.c +++ b/src/modest-mail-operation.c @@ -2475,12 +2475,25 @@ modest_mail_operation_remove_msgs (ModestMailOperation *self, tny_folder_remove_msgs (folder, remove_headers, &(priv->error)); if (!priv->error) { - if (TNY_IS_CAMEL_IMAP_FOLDER (folder) || - TNY_IS_CAMEL_POP_FOLDER (folder)) - tny_folder_sync_async(folder, FALSE, NULL, NULL, NULL); /* FALSE --> don't expunge */ + gboolean expunge, leave_on_server; + const gchar *account_name; + TnyAccount *account; + + account = tny_folder_get_account (folder); + account_name = modest_tny_account_get_parent_modest_account_name_for_server_account (account); + leave_on_server = + modest_account_mgr_get_leave_on_server (modest_runtime_get_account_mgr (), + account_name); + + if (TNY_IS_CAMEL_POP_FOLDER (folder) && !leave_on_server) + expunge = TRUE; else - /* local folders */ - tny_folder_sync_async(folder, TRUE, NULL, NULL, NULL); /* TRUE --> expunge */ + expunge = FALSE; + + /* Sync folder */ + tny_folder_sync_async(folder, expunge, NULL, NULL, NULL); + + g_object_unref (account); } diff --git a/src/widgets/modest-details-dialog.c b/src/widgets/modest-details-dialog.c index 1400192..6ab72cd 100644 --- a/src/widgets/modest-details-dialog.c +++ b/src/widgets/modest-details-dialog.c @@ -298,12 +298,12 @@ modest_details_dialog_set_folder_default (ModestDetailsDialog *self, gtk_dialog_add_button (GTK_DIALOG (self), _("mcen_bd_close"), GTK_RESPONSE_CLOSE); /* Get data. We use our function because it's recursive */ - if (TNY_IS_FOLDER_STORE (folder)) { - count = modest_tny_folder_store_get_message_count (TNY_FOLDER_STORE (folder)); - size = modest_tny_folder_store_get_local_size (TNY_FOLDER_STORE (folder)); - } else { + if (TNY_IS_FOLDER (folder)) { count = tny_folder_get_all_count (TNY_FOLDER (folder)); size = tny_folder_get_local_size (TNY_FOLDER (folder)); + } else { + count = modest_tny_folder_store_get_message_count (TNY_FOLDER_STORE (folder)); + size = modest_tny_folder_store_get_local_size (TNY_FOLDER_STORE (folder)); } /* Format count and size */