* The modest_mail_operation_remove_msgs operation takes into account the "leave on server" setting.
pmo-trunk-r3901
tny_folder_remove_msgs (folder, remove_headers, &(priv->error));
if (!priv->error) {
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;
- /* 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);
gtk_dialog_add_button (GTK_DIALOG (self), _("mcen_bd_close"), GTK_RESPONSE_CLOSE);
/* Get data. We use our function because it's recursive */
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));
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 */
}
/* Format count and size */