static void get_msg_cb (TnyFolder *folder,
gboolean cancelled,
TnyMsg *msg,
- GError **err,
+ GError *rr,
gpointer user_data);
static void get_msg_status_cb (GObject *obj,
if (new_msg) {
TnyHeader *header;
+ TnyHeaderFlags flags = 0;
+
/* Set priority flags in message */
header = tny_msg_get_header (new_msg);
if (info->priority_flags != 0)
- tny_header_set_flags (header, info->priority_flags);
- if (info->attachments_list != NULL) {
- tny_header_set_flags (header, TNY_HEADER_FLAG_ATTACHMENTS);
- }
+ flags |= info->priority_flags;
+
+ /* Set attachment flags in message */
+ if (info->attachments_list != NULL)
+ flags |= TNY_HEADER_FLAG_ATTACHMENTS;
+
+ tny_header_set_flags (header, flags);
g_object_unref (G_OBJECT(header));
} else {
priv->status = MODEST_MAIL_OPERATION_STATUS_FAILED;
goto out;
/* Perform send (if operation was not cancelled) */
-/* 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); */
modest_tny_send_queue_try_to_send (send_queue);
-/* g_source_remove (timeout); */
} else {
g_set_error (&(priv->error), MODEST_MAIL_OPERATION_ERROR,
MODEST_MAIL_OPERATION_ERROR_INSTANCE_CREATION_FAILED,
idle_info->mail_op = g_object_ref (info->mail_op);
idle_info->new_headers = num_new_headers;
idle_info->callback = info->callback;
+ idle_info->user_data = info->user_data;
g_idle_add (idle_update_account_cb, idle_info);
}
* which is already GDK locked by Tinymail */
/* no gdk_threads_enter (), CHECKED */
- g_signal_emit (G_OBJECT (self), signals[PROGRESS_CHANGED_SIGNAL], 0, state, NULL);
+
+ g_signal_emit (G_OBJECT (self), signals[PROGRESS_CHANGED_SIGNAL], 0, state, NULL);
+
/* no gdk_threads_leave (), CHECKED */
g_slice_free (ModestMailOperationState, state);
static void
-transfer_folder_cb (TnyFolder *folder,
+transfer_folder_cb (TnyFolder *folder, gboolean cancelled,
TnyFolderStore *into,
- gboolean cancelled,
TnyFolder *new_folder,
- GError **err,
+ GError *err,
gpointer user_data)
{
XFerMsgAsyncHelper *helper;
self = helper->mail_op;
priv = MODEST_MAIL_OPERATION_GET_PRIVATE(self);
- if (*err) {
- priv->error = g_error_copy (*err);
+ if (err) {
+ priv->error = g_error_copy (err);
priv->done = 0;
priv->status = MODEST_MAIL_OPERATION_STATUS_FAILED;
} else if (cancelled) {
if (folder) {
/* Get account and set it into mail_operation */
priv->account = modest_tny_folder_get_account (TNY_FOLDER(folder));
+
+ /* Check for cached messages */
+ if (tny_header_get_flags (header) & TNY_HEADER_FLAG_CACHED)
+ priv->op_type = MODEST_MAIL_OPERATION_TYPE_OPEN;
+ else
+ priv->op_type = MODEST_MAIL_OPERATION_TYPE_RECEIVE;
helper = g_slice_new0 (GetMsgAsyncHelper);
helper->mail_op = self;
get_msg_cb (TnyFolder *folder,
gboolean cancelled,
TnyMsg *msg,
- GError **error,
+ GError *error,
gpointer user_data)
{
GetMsgAsyncHelper *helper = NULL;
priv = MODEST_MAIL_OPERATION_GET_PRIVATE(self);
/* Check errors and cancel */
- if (*error) {
- priv->error = g_error_copy (*error);
+ if (error) {
+ priv->error = g_error_copy (error);
priv->status = MODEST_MAIL_OPERATION_STATUS_FAILED;
} else if (cancelled) {
priv->status = MODEST_MAIL_OPERATION_STATUS_CANCELED;
header = TNY_HEADER (tny_iterator_get_current (iter));
folder = tny_header_get_folder (header);
+ /* Check for cached messages */
+ if (tny_header_get_flags (header) & TNY_HEADER_FLAG_CACHED)
+ priv->op_type = MODEST_MAIL_OPERATION_TYPE_OPEN;
+ else
+ priv->op_type = MODEST_MAIL_OPERATION_TYPE_RECEIVE;
+
/* Get message from folder */
if (folder) {
TnyMsg *msg;
static void
-transfer_msgs_cb (TnyFolder *folder, gboolean cancelled, GError **err, gpointer user_data)
+transfer_msgs_cb (TnyFolder *folder, gboolean cancelled, GError *err, gpointer user_data)
{
XFerMsgAsyncHelper *helper;
ModestMailOperation *self;
priv = MODEST_MAIL_OPERATION_GET_PRIVATE (self);
- if (*err) {
- priv->error = g_error_copy (*err);
+ if (err) {
+ priv->error = g_error_copy (err);
priv->done = 0;
priv->status = MODEST_MAIL_OPERATION_STATUS_FAILED;
} else if (cancelled) {
static void
on_refresh_folder (TnyFolder *folder,
gboolean cancelled,
- GError **error,
+ GError *error,
gpointer user_data)
{
RefreshAsyncHelper *helper = NULL;
g_return_if_fail(priv!=NULL);
- if (*error) {
- priv->error = g_error_copy (*error);
+ if (error) {
+ priv->error = g_error_copy (error);
priv->status = MODEST_MAIL_OPERATION_STATUS_FAILED;
+ printf("DEBUG: %s: Operation error:\n %s", __FUNCTION__,
+ error->message);
goto out;
}
MODEST_MAIL_OPERATION_ERROR_ITEM_NOT_FOUND,
_("Error trying to refresh the contents of %s"),
tny_folder_get_name (folder));
+ printf("DEBUG: %s: Operation cancelled.\n", __FUNCTION__);
goto out;
}
priv->status = MODEST_MAIL_OPERATION_STATUS_SUCCESS;
- out:
+
/* Call user defined callback, if it exists */
if (helper->user_callback) {
/* no gdk_threads_leave (), CHECKED */
}
+ out:
/* Free */
g_slice_free (RefreshAsyncHelper, helper);