TRUE);
/* Cancel the sending of the following next messages */
- tny_send_queue_cancel (TNY_SEND_QUEUE (queue), TNY_SEND_QUEUE_CANCEL_ACTION_SUSPEND, NULL);
+ if (TNY_IS_SEND_QUEUE (queue))
+ tny_send_queue_cancel (TNY_SEND_QUEUE (queue), TNY_SEND_QUEUE_CANCEL_ACTION_SUSPEND, NULL);
}
return canceled;
CreateMsgInfo *info = (CreateMsgInfo *) thread_data;
TnyMsg *new_msg = NULL;
ModestMailOperationPrivate *priv;
+ gint attached = 0;
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->attachments_list,
+ 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->plain_body, info->attachments_list,
- info->images_list,
+ info->images_list, &attached,
&(priv->error));
}
tny_header_set_flag (header, info->priority_flags);
/* Set attachment flags in message */
- if (info->attachments_list != NULL)
+ if (info->attachments_list != NULL && attached > 0)
tny_header_set_flag (header, TNY_HEADER_FLAG_ATTACHMENTS);
g_object_unref (G_OBJECT(header));
send_queue = modest_runtime_get_send_queue (transport_account, TRUE);
g_object_unref (transport_account);
- /* Get outbox folder */
- outbox = tny_send_queue_get_outbox (TNY_SEND_QUEUE (send_queue));
- if (outbox) { /* this could fail in some cases */
- num_messages = tny_folder_get_all_count (outbox);
- g_object_unref (outbox);
- } else {
- g_warning ("%s: could not get outbox", __FUNCTION__);
- num_messages = 0;
- }
+ if (TNY_IS_SEND_QUEUE (send_queue)) {
+ /* Get outbox folder */
+ outbox = tny_send_queue_get_outbox (TNY_SEND_QUEUE (send_queue));
+ if (outbox) { /* this could fail in some cases */
+ num_messages = tny_folder_get_all_count (outbox);
+ g_object_unref (outbox);
+ } else {
+ g_warning ("%s: could not get outbox", __FUNCTION__);
+ num_messages = 0;
+ }
- if (num_messages != 0) {
- /* Reenable suspended items */
- modest_tny_send_queue_wakeup (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);
+ if (num_messages != 0) {
+ /* Reenable suspended items */
+ modest_tny_send_queue_wakeup (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);
+ }
}
}
if (traccount) {
ModestTnySendQueueStatus status;
ModestTnySendQueue *send_queue = modest_runtime_get_send_queue(traccount, TRUE);
- TnyIterator *iter = tny_list_create_iterator(headers);
- g_object_unref(remove_headers);
- remove_headers = TNY_LIST(tny_simple_list_new());
- while (!tny_iterator_is_done(iter)) {
- char *msg_id;
- TnyHeader *hdr = TNY_HEADER(tny_iterator_get_current(iter));
- msg_id = modest_tny_send_queue_get_msg_id (hdr);
- status = modest_tny_send_queue_get_msg_status(send_queue, msg_id);
- if (status != MODEST_TNY_SEND_QUEUE_SENDING) {
- tny_list_append(remove_headers, G_OBJECT(hdr));
+
+ if (TNY_IS_SEND_QUEUE (send_queue)) {
+ TnyIterator *iter = tny_list_create_iterator(headers);
+ g_object_unref(remove_headers);
+ remove_headers = TNY_LIST(tny_simple_list_new());
+ while (!tny_iterator_is_done(iter)) {
+ char *msg_id;
+ TnyHeader *hdr = TNY_HEADER(tny_iterator_get_current(iter));
+ msg_id = modest_tny_send_queue_get_msg_id (hdr);
+ status = modest_tny_send_queue_get_msg_status(send_queue, msg_id);
+ if (status != MODEST_TNY_SEND_QUEUE_SENDING) {
+ tny_list_append(remove_headers, G_OBJECT(hdr));
+ }
+ g_object_unref(hdr);
+ g_free(msg_id);
+ tny_iterator_next(iter);
}
- g_object_unref(hdr);
- g_free(msg_id);
- tny_iterator_next(iter);
+ g_object_unref(iter);
}
- g_object_unref(iter);
g_object_unref(traccount);
}
}
ModestTnyFolderRules rules = 0;
TnyAccount *dst_account = NULL;
gboolean leave_on_server;
+ ModestMailOperationState *state;
g_return_if_fail (self && MODEST_IS_MAIL_OPERATION (self));
g_return_if_fail (headers && TNY_IS_LIST (headers));
helper->delete = (leave_on_server) ? FALSE : delete_original;
modest_mail_operation_notify_start (self);
+
+ /* Start notifying progress */
+ state = modest_mail_operation_clone_state (self);
+ state->done = 0;
+ state->total = 0;
+ g_signal_emit (G_OBJECT (self), signals[PROGRESS_CHANGED_SIGNAL], 0, state, NULL);
+ g_slice_free (ModestMailOperationState, state);
+
tny_folder_transfer_msgs_async (src_folder,
helper->headers,
folder,