X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-mail-operation.c;h=55d5c862f26829f3835925b9986a727fc4309d72;hb=83c3671f0e0b2ff021d3cb8b37653e66c1e38066;hp=90342d49953a7984b85658ca77500c3ae979e44e;hpb=85a57f911013b1ac70cd2f07c1f230e772b18183;p=modest diff --git a/src/modest-mail-operation.c b/src/modest-mail-operation.c index 90342d4..55d5c86 100644 --- a/src/modest-mail-operation.c +++ b/src/modest-mail-operation.c @@ -489,11 +489,6 @@ modest_mail_operation_cancel (ModestMailOperation *self) priv = MODEST_MAIL_OPERATION_GET_PRIVATE (self); - /* Note that if we call cancel with an already canceled mail - operation the progress changed signal won't be emitted */ - if (priv->status == MODEST_MAIL_OPERATION_STATUS_CANCELED) - return FALSE; - /* Set new status */ priv->status = MODEST_MAIL_OPERATION_STATUS_CANCELED; @@ -1228,7 +1223,7 @@ inbox_refreshed_cb (TnyFolder *inbox, ModestAccountRetrieveType retrieve_type; TnyList *new_headers = NULL; gboolean headers_only, ignore_limit; - TnyTransportAccount *transport_account; + TnyTransportAccount *transport_account = NULL; info = (UpdateAccountInfo *) user_data; priv = MODEST_MAIL_OPERATION_GET_PRIVATE (info->mail_op); @@ -1350,6 +1345,7 @@ inbox_refreshed_cb (TnyFolder *inbox, guint num_messages; send_queue = modest_runtime_get_send_queue (transport_account); + g_object_unref (transport_account); /* Get outbox folder */ outbox = tny_send_queue_get_outbox (TNY_SEND_QUEUE (send_queue)); @@ -1371,7 +1367,7 @@ inbox_refreshed_cb (TnyFolder *inbox, /* Try to send */ tny_camel_send_queue_flush (TNY_CAMEL_SEND_QUEUE (send_queue)); } - } + } /* Check if the operation was a success */ if (!priv->error) @@ -1495,7 +1491,6 @@ modest_mail_operation_update_account (ModestMailOperation *self, UpdateAccountInfo *info = NULL; ModestMailOperationPrivate *priv = NULL; ModestTnyAccountStore *account_store = NULL; - TnyStoreAccount *store_account = NULL; TnyList *folders; ModestMailOperationState *state; @@ -1508,11 +1503,10 @@ modest_mail_operation_update_account (ModestMailOperation *self, /* Get the store account */ account_store = modest_runtime_get_account_store (); - store_account = (TnyStoreAccount *) + priv->account = modest_tny_account_store_get_server_account (account_store, account_name, TNY_ACCOUNT_TYPE_STORE); - priv->account = g_object_ref (store_account); /* Create the helper object */ info = g_slice_new0 (UpdateAccountInfo); @@ -1540,7 +1534,7 @@ modest_mail_operation_update_account (ModestMailOperation *self, /* Get all folders and continue in the callback */ folders = tny_simple_list_new (); - tny_folder_store_get_folders_async (TNY_FOLDER_STORE (store_account), + tny_folder_store_get_folders_async (TNY_FOLDER_STORE (priv->account), folders, NULL, recurse_folders_async_cb, NULL, info); @@ -1707,7 +1701,6 @@ modest_mail_operation_remove_folder (ModestMailOperation *self, TnyFolder *folder, gboolean remove_to_trash) { - TnyAccount *account; ModestMailOperationPrivate *priv; ModestTnyFolderRules rules; @@ -1728,14 +1721,13 @@ modest_mail_operation_remove_folder (ModestMailOperation *self, } /* Get the account */ - account = modest_tny_folder_get_account (folder); - priv->account = g_object_ref(account); + priv->account = modest_tny_folder_get_account (folder); priv->op_type = MODEST_MAIL_OPERATION_TYPE_DELETE; /* Delete folder or move to trash */ if (remove_to_trash) { TnyFolder *trash_folder = NULL; - trash_folder = modest_tny_account_get_special_folder (account, + trash_folder = modest_tny_account_get_special_folder (priv->account, TNY_FOLDER_TYPE_TRASH); /* TODO: error_handling */ if (trash_folder) { @@ -1761,7 +1753,6 @@ modest_mail_operation_remove_folder (ModestMailOperation *self, } else g_warning ("%s: could not get parent folder", __FUNCTION__); } - g_object_unref (G_OBJECT (account)); end: /* Notify about operation end */ @@ -2160,8 +2151,11 @@ get_msg_async_cb (TnyFolder *folder, finished = (priv->done == priv->total) ? TRUE : FALSE; } - /* Check errors */ - if (canceled || err) { + /* If canceled by the user, ignore the error given by Tinymail */ + if (priv->status == MODEST_MAIL_OPERATION_STATUS_CANCELED) { + canceled = TRUE; + finished = TRUE; + } else if (canceled || err) { priv->status = MODEST_MAIL_OPERATION_STATUS_FINISHED_WITH_ERRORS; if (err) { priv->error = g_error_copy ((const GError *) err); @@ -2175,9 +2169,6 @@ get_msg_async_cb (TnyFolder *folder, } else if (finished && priv->status == MODEST_MAIL_OPERATION_STATUS_IN_PROGRESS) { /* Set the success status before calling the user callback */ priv->status = MODEST_MAIL_OPERATION_STATUS_SUCCESS; - } else if (priv->status == MODEST_MAIL_OPERATION_STATUS_CANCELED) { - canceled = TRUE; - finished = TRUE; }