X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-mail-operation.c;h=f41bfda0c4c4c45ac78d8482bd5a6bad9285bf8e;hp=0199d9e6cd1f81bc28d28cbfb92d4dfe1d28805e;hb=68945e42768533308e3b94f0dc046ef722e56115;hpb=90ff729ad8d144bdfe7665aa0426c5a2c6e13bc9 diff --git a/src/modest-mail-operation.c b/src/modest-mail-operation.c index 0199d9e..f41bfda 100644 --- a/src/modest-mail-operation.c +++ b/src/modest-mail-operation.c @@ -105,6 +105,7 @@ struct _ModestMailOperationPrivate { typedef struct _GetMsgAsyncHelper { ModestMailOperation *mail_op; + TnyHeader *header; GetMsgAsyncUserCallback user_callback; gpointer user_data; } GetMsgAsyncHelper; @@ -477,6 +478,8 @@ modest_mail_operation_clone_state (ModestMailOperation *self) state->done = priv->done; state->total = priv->total; state->finished = modest_mail_operation_is_finished (self); + state->bytes_done = 0; + state->bytes_total = 0; return state; } @@ -1488,6 +1491,7 @@ void modest_mail_operation_get_msg (ModestMailOperation *self, helper->mail_op = self; helper->user_callback = user_callback; helper->user_data = user_data; + helper->header = g_object_ref (header); tny_folder_get_msg_async (folder, header, get_msg_cb, get_msg_status_cb, helper); @@ -1540,11 +1544,12 @@ get_msg_cb (TnyFolder *folder, /* If user defined callback function was defined, call it */ if (helper->user_callback) { - helper->user_callback (self, NULL, msg, helper->user_data); + helper->user_callback (self, helper->header, msg, helper->user_data); } out: /* Free */ + g_object_unref (helper->header); g_slice_free (GetMsgAsyncHelper, helper); /* Notify about operation end */ @@ -1577,6 +1582,8 @@ get_msg_status_cb (GObject *obj, priv->total = 1; state = modest_mail_operation_clone_state (self); + state->bytes_done = status->position; + state->bytes_total = status->of_total; g_signal_emit (G_OBJECT (self), signals[PROGRESS_CHANGED_SIGNAL], 0, state, NULL); g_slice_free (ModestMailOperationState, state); }