X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmodest-mail-operation.c;h=b5926683c2dbb71030d7b4b9d7a304bee71028db;hb=3449c1e0b6acdd87e28263928d9cf079f075e06f;hp=cd899a5f46973ec93b945805d9f37e28e0a916de;hpb=d6556234cbdb19dd96b89ddb86a2f1b0f43ea901;p=modest diff --git a/src/modest-mail-operation.c b/src/modest-mail-operation.c index cd899a5..b592668 100644 --- a/src/modest-mail-operation.c +++ b/src/modest-mail-operation.c @@ -1433,7 +1433,7 @@ update_account_send_mail (UpdateAccountInfo *info) g_warning ("%s: could not get outbox", __FUNCTION__); num_messages = 0; } - + if (num_messages != 0) { ModestMailOperation *mail_op; /* Reenable suspended items */ @@ -1441,9 +1441,8 @@ update_account_send_mail (UpdateAccountInfo *info) modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op); modest_mail_operation_queue_wakeup (mail_op, MODEST_TNY_SEND_QUEUE (send_queue)); - + /* Try to send */ - tny_camel_send_queue_flush (TNY_CAMEL_SEND_QUEUE (send_queue)); modest_tny_send_queue_set_requested_send_receive (MODEST_TNY_SEND_QUEUE (send_queue), info->interactive); } @@ -1597,7 +1596,7 @@ inbox_refreshed_cb (TnyFolder *inbox, /* Apply per-message size limits */ if (tny_header_get_message_size (header) < max_size) g_ptr_array_add (new_headers_array, g_object_ref (header)); - + g_object_unref (header); tny_iterator_next (new_headers_iter); } @@ -1617,14 +1616,14 @@ inbox_refreshed_cb (TnyFolder *inbox, retrieve_limit = modest_account_mgr_get_retrieve_limit (mgr, info->account_name); if (retrieve_limit == 0) retrieve_limit = G_MAXINT; - + /* Get per-account retrieval type */ retrieve_type = modest_account_mgr_get_retrieve_type (mgr, info->account_name); headers_only = (retrieve_type == MODEST_ACCOUNT_RETRIEVE_HEADERS_ONLY); /* Order by date */ g_ptr_array_sort (new_headers_array, (GCompareFunc) compare_headers_by_date); - + /* Ask the users if they want to retrieve all the messages even though the limit was exceeded */ ignore_limit = FALSE; @@ -1647,7 +1646,7 @@ inbox_refreshed_cb (TnyFolder *inbox, } g_ptr_array_foreach (new_headers_array, (GFunc) g_object_unref, NULL); g_ptr_array_free (new_headers_array, FALSE); - + if (!headers_only && (tny_list_get_length (new_headers) > 0)) { gint msg_num = 0; TnyIterator *iter; @@ -1668,16 +1667,16 @@ inbox_refreshed_cb (TnyFolder *inbox, msg_info->more_msgs = g_object_ref (iter); msg_info->user_data = info; - while ((msg_num < priv->total ) && !tny_iterator_is_done (iter)) { + while ((msg_num < priv->total ) && !tny_iterator_is_done (iter)) { TnyHeader *header = TNY_HEADER (tny_iterator_get_current (iter)); TnyFolder *folder = tny_header_get_folder (header); /* Get message in an async way */ - tny_folder_get_msg_async (folder, header, update_account_get_msg_async_cb, + tny_folder_get_msg_async (folder, header, update_account_get_msg_async_cb, NULL, msg_info); g_object_unref (folder); - + msg_num++; tny_iterator_next (iter); } @@ -1691,11 +1690,11 @@ inbox_refreshed_cb (TnyFolder *inbox, /* If we don't have to retrieve the new messages then simply send mail */ update_account_send_mail (info); - + /* Check if the operation was a success */ if (!priv->error) priv->status = MODEST_MAIL_OPERATION_STATUS_SUCCESS; - + /* Call the user callback and free */ update_account_notify_user_and_free (info, new_headers); } @@ -1967,9 +1966,9 @@ compare_headers_by_date (gconstpointer a, /* We want the most recent ones (greater time_t) at the beginning */ if (sent1 < sent2) - return 1; - else return -1; + else + return 1; } @@ -2226,8 +2225,10 @@ transfer_folder_cb (TnyFolder *folder, } /* Update state of new folder */ - tny_folder_refresh_async (new_folder, NULL, NULL, NULL); - tny_folder_poke_status (new_folder); + if (new_folder) { + tny_folder_refresh_async (new_folder, NULL, NULL, NULL); + tny_folder_poke_status (new_folder); + } /* Notify about operation end */ modest_mail_operation_notify_end (self); @@ -3438,6 +3439,7 @@ queue_wakeup_callback (ModestTnySendQueue *queue, priv = MODEST_MAIL_OPERATION_GET_PRIVATE (mail_op); priv->status = MODEST_MAIL_OPERATION_STATUS_SUCCESS; + tny_camel_send_queue_flush (TNY_CAMEL_SEND_QUEUE (queue)); /* Notify end */ modest_mail_operation_notify_end (mail_op);