* Set the proper status of the mail operation
[modest] / src / modest-mail-operation.c
index ff0b2e3..0caffc3 100644 (file)
@@ -783,7 +783,6 @@ modest_mail_operation_send_new_mail_cb (ModestMailOperation *self,
        TnyFolder *draft_folder = NULL;
        TnyFolder *outbox_folder = NULL;
        TnyHeader *header = NULL;
-       GError *err = NULL;
 
        if (!msg) {
                goto end;
@@ -801,6 +800,7 @@ modest_mail_operation_send_new_mail_cb (ModestMailOperation *self,
        modest_mail_operation_send_mail (self, info->transport_account, msg);
 
        if (info->draft_msg != NULL) {
+               TnyList *tmp_headers = NULL;
                TnyFolder *folder = NULL;
                TnyFolder *src_folder = NULL;
                TnyFolderType folder_type;              
@@ -844,11 +844,12 @@ modest_mail_operation_send_new_mail_cb (ModestMailOperation *self,
                        src_folder = draft_folder;
 
                /* Note: This can fail (with a warning) if the message is not really already in a folder,
-                * because this function requires it to have a UID. */          
-               tny_folder_remove_msg (src_folder, header, NULL);
-
-               tny_folder_sync (folder, TRUE, &err); /* FALSE --> don't expunge */
-/*             tny_folder_sync_async (src_folder, TRUE, NULL, NULL, NULL);  /\* expunge *\/ */
+                * because this function requires it to have a UID. */
+               tmp_headers = tny_simple_list_new ();
+               tny_list_append (tmp_headers, (GObject*) header);
+               tny_folder_remove_msgs_async (src_folder, tmp_headers, NULL, NULL, NULL);
+               g_object_unref (tmp_headers);
+               tny_folder_sync_async (src_folder, TRUE, NULL, NULL, NULL);  /* expunge */
                
                g_object_unref (folder);
        }
@@ -856,8 +857,6 @@ modest_mail_operation_send_new_mail_cb (ModestMailOperation *self,
 end:
        if (header)
                g_object_unref (header);
-       if (err != NULL)
-               g_error_free(err);      
        if (info->draft_msg)
                g_object_unref (info->draft_msg);
        if (draft_folder)
@@ -2110,10 +2109,11 @@ modest_mail_operation_rename_folder (ModestMailOperation *self,
                                               transfer_folder_cb,
                                               transfer_folder_status_cb,
                                               helper);
+                       g_object_unref (into);
                } else {
+                       g_object_unref (into);
                        goto error;
                }
-               g_object_unref (into);
 
                return;
        }
@@ -2235,9 +2235,10 @@ get_msg_async_cb (TnyFolder *folder,
        }
 
        /* If canceled by the user, ignore the error given by Tinymail */
-       if (priv->status == MODEST_MAIL_OPERATION_STATUS_CANCELED || canceled) {
+       if (canceled) {
                canceled = TRUE;
                finished = TRUE;
+               priv->status == MODEST_MAIL_OPERATION_STATUS_CANCELED;
        } else if (err) {
                priv->status = MODEST_MAIL_OPERATION_STATUS_FINISHED_WITH_ERRORS;
                if (err) {
@@ -2611,16 +2612,12 @@ transfer_msgs_cb (TnyFolder *folder, gboolean cancelled, GError *err, gpointer u
 
        priv = MODEST_MAIL_OPERATION_GET_PRIVATE (self);
 
-       if (err) {
+       if (cancelled) {
+               priv->status = MODEST_MAIL_OPERATION_STATUS_CANCELED;
+       } else if (err) {
                priv->error = g_error_copy (err);
                priv->done = 0;
                priv->status = MODEST_MAIL_OPERATION_STATUS_FAILED;     
-       } else if (cancelled) {
-               priv->status = MODEST_MAIL_OPERATION_STATUS_CANCELED;
-               g_set_error (&(priv->error), MODEST_MAIL_OPERATION_ERROR,
-                            MODEST_MAIL_OPERATION_ERROR_ITEM_NOT_FOUND,
-                            _("Error trying to refresh the contents of %s"),
-                            tny_folder_get_name (folder));
        } else if (priv->status != MODEST_MAIL_OPERATION_STATUS_CANCELED) {
                if (helper->more_msgs) {
                        /* We'll transfer the next message in the list */
@@ -2635,7 +2632,6 @@ transfer_msgs_cb (TnyFolder *folder, gboolean cancelled, GError *err, gpointer u
                                finished = FALSE;
                        }
                }
-
                if (finished) {
                        priv->done = 1;
                        priv->status = MODEST_MAIL_OPERATION_STATUS_SUCCESS;
@@ -3064,7 +3060,9 @@ modest_mail_operation_sync_folder (ModestMailOperation *self,
 
        modest_mail_operation_notify_start (self);
        g_object_ref (self);
-       tny_folder_sync_async (folder, expunge, (TnyFolderCallback) sync_folder_finish_callback, NULL, self);
+       tny_folder_sync_async (folder, expunge, 
+                              (TnyFolderCallback) sync_folder_finish_callback, 
+                              NULL, self);
 }
 
 static void