Fixes NB#78203
authorFelipe Erias Morandeira <femorandeira@igalia.com>
Wed, 12 Dec 2007 12:14:35 +0000 (12:14 +0000)
committerFelipe Erias Morandeira <femorandeira@igalia.com>
Wed, 12 Dec 2007 12:14:35 +0000 (12:14 +0000)
   * The modest_mail_operation_remove_msgs operation takes into account the "leave on server" setting.

pmo-trunk-r3901

src/modest-mail-operation.c
src/widgets/modest-details-dialog.c

index ede8f8e..d9e31bc 100644 (file)
@@ -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);
        }
        
        
index 1400192..6ab72cd 100644 (file)
@@ -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 */