header = tny_msg_get_header (new_msg);
if (priority_flags != 0)
tny_header_set_flags (header, priority_flags);
+ if (attachments_list != NULL) {
+ tny_header_set_flags (header, TNY_HEADER_FLAG_ATTACHMENTS);
+ }
g_object_unref (G_OBJECT(header));
/* Call mail operation */
* because this function requires it to have a UID. */
tny_folder_remove_msg (folder, header, NULL);
tny_header_set_flags (header, TNY_HEADER_FLAG_DELETED);
+ tny_header_set_flags (header, TNY_HEADER_FLAG_SEEN);
g_object_unref (header);
}
}
g_object_unref (G_OBJECT (new_msg));
}
-void
+TnyMsg*
modest_mail_operation_save_to_drafts (ModestMailOperation *self,
TnyTransportAccount *transport_account,
TnyMsg *draft_msg,
TnyHeader *header = NULL;
ModestMailOperationPrivate *priv = NULL;
- g_return_if_fail (MODEST_IS_MAIL_OPERATION (self));
- g_return_if_fail (TNY_IS_TRANSPORT_ACCOUNT (transport_account));
+ g_return_val_if_fail (MODEST_IS_MAIL_OPERATION (self), NULL);
+ g_return_val_if_fail (TNY_IS_TRANSPORT_ACCOUNT (transport_account), NULL);
priv = MODEST_MAIL_OPERATION_GET_PRIVATE(self);
/* add priority flags */
header = tny_msg_get_header (msg);
tny_header_set_flags (header, priority_flags);
+ if (attachments_list != NULL)
+ tny_header_set_flags (header, TNY_HEADER_FLAG_ATTACHMENTS);
g_object_unref (G_OBJECT(header));
folder = modest_tny_account_get_special_folder (TNY_ACCOUNT (transport_account), TNY_FOLDER_TYPE_DRAFTS);
/* Remove the old draft expunging it */
tny_folder_remove_msg (folder, header, NULL);
tny_header_set_flags (header, TNY_HEADER_FLAG_DELETED);
+ tny_header_set_flags (header, TNY_HEADER_FLAG_SEEN);
tny_folder_sync (folder, FALSE, &(priv->error)); /* FALSE --> don't expunge */
g_object_unref (header);
}
priv->status = MODEST_MAIL_OPERATION_STATUS_FAILED;
end:
- if (msg)
- g_object_unref (G_OBJECT(msg));
if (folder)
g_object_unref (G_OBJECT(folder));
modest_mail_operation_notify_end (self);
+ return msg;
}
typedef struct
static void
foreach_add_item (gpointer header, gpointer user_data)
{
- /* printf("DEBUG: %s: header subject=%s\n",
- * __FUNCTION__, tny_header_get_subject(TNY_HEADER(header)));
- */
tny_list_prepend (TNY_LIST (user_data),
g_object_ref (G_OBJECT (header)));
}
list = tny_simple_list_new ();
tny_folder_change_get_added_headers (change, list);
- /* printf ("DEBUG: %s: Calling foreach with a list of size=%d\n",
- * __FUNCTION__, tny_list_get_length(list));
- */
-
/* Add them to the folder observer */
tny_list_foreach (list, foreach_add_item,
derived->new_headers);
g_ptr_array_free (new_headers, FALSE);
}
- /* Perform send */
- priv->op_type = MODEST_MAIL_OPERATION_TYPE_SEND;
+ /* Perform send (if operation was not cancelled) */
+ if (did_a_cancel) goto out;
+/* priv->op_type = MODEST_MAIL_OPERATION_TYPE_SEND; */
priv->done = 0;
priv->total = 0;
if (priv->account != NULL)
send_queue = modest_runtime_get_send_queue (info->transport_account);
if (send_queue) {
- timeout = g_timeout_add (250, idle_notify_progress, info->mail_op);
+/* timeout = g_timeout_add (250, idle_notify_progress, info->mail_op); */
modest_tny_send_queue_try_to_send (send_queue);
- g_source_remove (timeout);
+/* g_source_remove (timeout); */
} else {
g_set_error (&(priv->error), MODEST_MAIL_OPERATION_ERROR,
MODEST_MAIL_OPERATION_ERROR_INSTANCE_CREATION_FAILED,
g_return_if_fail (status->code == TNY_FOLDER_STATUS_CODE_COPY_FOLDER);
helper = (XFerMsgAsyncHelper *) user_data;
- g_return_if_fail (helper != NULL);
+ g_return_if_fail (helper != NULL);
self = helper->mail_op;
priv = MODEST_MAIL_OPERATION_GET_PRIVATE(self);
tny_folder_remove_msg (folder, header, &(priv->error));
if (!priv->error) {
tny_header_set_flags (header, TNY_HEADER_FLAG_DELETED);
+ tny_header_set_flags (header, TNY_HEADER_FLAG_SEEN);
if (TNY_IS_CAMEL_IMAP_FOLDER (folder))
tny_folder_sync(folder, FALSE, &(priv->error)); /* FALSE --> don't expunge */
priv->status = MODEST_MAIL_OPERATION_STATUS_FAILED;
g_set_error (&(priv->error), MODEST_MAIL_OPERATION_ERROR,
MODEST_MAIL_OPERATION_ERROR_FOLDER_RULES,
- _("ckct_ib_unable_to_paste_here"));
+ _CS("ckct_ib_unable_to_paste_here"));
/* Notify the queue */
modest_mail_operation_notify_end (self);
return;
}
priv->status = MODEST_MAIL_OPERATION_STATUS_SUCCESS;
-
out:
/* Call user defined callback, if it exists */
if (helper->user_callback) {
gdk_threads_enter ();
- helper->user_callback (priv->source, folder, helper->user_data);
+ helper->user_callback (self, folder, helper->user_data);
gdk_threads_leave ();
}
priv = MODEST_MAIL_OPERATION_GET_PRIVATE(self);
- if (!priv) {
- g_warning ("BUG: %s: priv == NULL", __FUNCTION__);
- return;
- }
-
/* Set the account back to not busy */
if (priv->account_name) {
modest_account_mgr_set_account_busy (modest_runtime_get_account_mgr(),