const gchar *html_body, const GList *attachments_list,
const GList *images_list,
TnyHeaderFlags priority_flags,
+ const gchar *references, const gchar *in_reply_to,
ModestMailOperationCreateMsgCallback callback,
gpointer userdata);
gchar *cc;
gchar *bcc;
gchar *subject;
+ gchar *references;
+ gchar *in_reply_to;
gchar *plain_body;
gchar *html_body;
GList *attachments_list;
priv = MODEST_MAIL_OPERATION_GET_PRIVATE(info->mail_op);
if (info->html_body == NULL) {
new_msg = modest_tny_msg_new (info->to, info->from, info->cc,
- info->bcc, info->subject, info->plain_body,
+ info->bcc, info->subject,
+ info->references, info->in_reply_to,
+ info->plain_body,
info->attachments_list, &attached,
&(priv->error));
} else {
new_msg = modest_tny_msg_new_html_plain (info->to, info->from, info->cc,
- info->bcc, info->subject, info->html_body,
+ info->bcc, info->subject,
+ info->references, info->in_reply_to,
+ info->html_body,
info->plain_body, info->attachments_list,
info->images_list, &attached,
&(priv->error));
g_free (info->plain_body);
g_free (info->html_body);
g_free (info->subject);
+ g_free (info->references);
+ g_free (info->in_reply_to);
g_list_foreach (info->attachments_list, (GFunc) g_object_unref, NULL);
g_list_free (info->attachments_list);
g_list_foreach (info->images_list, (GFunc) g_object_unref, NULL);
const GList *attachments_list,
const GList *images_list,
TnyHeaderFlags priority_flags,
+ const gchar *references,
+ const gchar *in_reply_to,
ModestMailOperationCreateMsgCallback callback,
gpointer userdata)
{
info->subject = g_strdup (subject);
info->plain_body = g_strdup (plain_body);
info->html_body = g_strdup (html_body);
+ info->references = g_strdup (references);
+ info->in_reply_to = g_strdup (in_reply_to);
info->attachments_list = g_list_copy ((GList *) attachments_list);
g_list_foreach (info->attachments_list, (GFunc) g_object_ref, NULL);
info->images_list = g_list_copy ((GList *) images_list);
const gchar *html_body,
const GList *attachments_list,
const GList *images_list,
+ const gchar *references,
+ const gchar *in_reply_to,
TnyHeaderFlags priority_flags)
{
ModestMailOperationPrivate *priv = NULL;
modest_mail_operation_create_msg (self, from, to, cc, bcc, subject, plain_body, html_body,
attachments_list, images_list, priority_flags,
+ references, in_reply_to,
modest_mail_operation_send_new_mail_cb, info);
}
}
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;
const GList *attachments_list,
const GList *images_list,
TnyHeaderFlags priority_flags,
+ const gchar *references,
+ const gchar *in_reply_to,
SaveToDraftstCallback callback,
gpointer user_data)
{
modest_mail_operation_notify_start (self);
modest_mail_operation_create_msg (self, from, to, cc, bcc, subject, plain_body, html_body,
attachments_list, images_list, priority_flags,
+ references, in_reply_to,
modest_mail_operation_save_to_drafts_cb, info);
}
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;
/* 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);
}
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;
}
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;
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);
}
/* 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);
}
/* We want the most recent ones (greater time_t) at the
beginning */
if (sent1 < sent2)
- return 1;
- else
return -1;
+ else
+ return 1;
}
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);