Added also new tool button layout for font face (fixes NB#107766)
[modest] / src / modest-mail-operation.c
index cd899a5..4ca9397 100644 (file)
@@ -1232,16 +1232,18 @@ modest_mail_operation_save_to_drafts_cb (ModestMailOperation *self,
        }
 
        if (!priv->error || priv->error->code == MODEST_MAIL_OPERATION_ERROR_FILE_IO) {
-               SaveToDraftsAddMsgInfo *cb_info = g_slice_new(SaveToDraftsAddMsgInfo);
-               cb_info->transport_account = g_object_ref(info->transport_account);
-               cb_info->draft_msg = info->draft_msg ? g_object_ref(info->draft_msg) : NULL;
-               cb_info->callback = info->callback;
-               cb_info->user_data = info->user_data;
-               cb_info->drafts = g_object_ref(drafts);
-               cb_info->msg = g_object_ref(msg);
-               cb_info->mailop = g_object_ref(self);
-               tny_folder_add_msg_async(drafts, msg, modest_mail_operation_save_to_drafts_add_msg_cb,
-                                        NULL, cb_info);
+               if (drafts) {
+                       SaveToDraftsAddMsgInfo *cb_info = g_slice_new(SaveToDraftsAddMsgInfo);
+                       cb_info->transport_account = g_object_ref(info->transport_account);
+                       cb_info->draft_msg = info->draft_msg ? g_object_ref(info->draft_msg) : NULL;
+                       cb_info->callback = info->callback;
+                       cb_info->user_data = info->user_data;
+                       cb_info->drafts = g_object_ref(drafts);
+                       cb_info->msg = g_object_ref(msg);
+                       cb_info->mailop = g_object_ref(self);
+                       tny_folder_add_msg_async(drafts, msg, modest_mail_operation_save_to_drafts_add_msg_cb,
+                                                NULL, cb_info);
+               }
        } else {
                /* Call the user callback */
                priv->status = MODEST_MAIL_OPERATION_STATUS_FAILED;
@@ -1433,7 +1435,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 +1443,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);
                        }
@@ -1560,7 +1561,8 @@ inbox_refreshed_cb (TnyFolder *inbox,
                                     MODEST_MAIL_OPERATION_ERROR_OPERATION_CANCELED,
                                     "canceled");
 
-               tny_folder_remove_observer (inbox, info->inbox_observer);
+               if (inbox)
+                       tny_folder_remove_observer (inbox, info->inbox_observer);
                g_object_unref (info->inbox_observer);
                info->inbox_observer = NULL;
 
@@ -1597,7 +1599,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 +1619,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 +1649,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 +1670,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 +1693,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 +1969,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 +2228,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);
@@ -2576,11 +2580,10 @@ get_msg_async_cb (TnyFolder *folder,
                priv->status = MODEST_MAIL_OPERATION_STATUS_CANCELED;
        } else if (err) {
                priv->status = MODEST_MAIL_OPERATION_STATUS_FINISHED_WITH_ERRORS;
-               if (err) {
-                       priv->error = g_error_copy ((const GError *) err);
+               priv->error = g_error_copy ((const GError *) err);
+               if (priv->error) {
                        priv->error->domain = MODEST_MAIL_OPERATION_ERROR;
-               }
-               if (!priv->error) {
+               } else {
                        g_set_error (&(priv->error), MODEST_MAIL_OPERATION_ERROR,
                                     MODEST_MAIL_OPERATION_ERROR_ITEM_NOT_FOUND,
                                     err->message);
@@ -3438,6 +3441,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);