X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-tny-send-queue.c;h=e0716b9977bbeba6ce63e379168b6fa1de7c6e51;hb=d9dc4e2f6f3fa6148212b17a37a4a555d9514fea;hp=8a6b9a1ff446646100f3e18911c9cb2385474744;hpb=94dd9606eadbd7df971e7abc458bbbd903cdc772;p=modest diff --git a/src/modest-tny-send-queue.c b/src/modest-tny-send-queue.c index 8a6b9a1..e0716b9 100644 --- a/src/modest-tny-send-queue.c +++ b/src/modest-tny-send-queue.c @@ -442,8 +442,7 @@ modest_tny_send_queue_new (TnyCamelTransportAccount *account) modest_tny_send_queue_wakeup (self); /* Frees */ - g_object_unref (G_OBJECT (headers)); - g_object_unref (G_OBJECT (priv->outbox)); + g_object_unref (headers); g_object_unref (iter); /* Do this at the end, because it'll call tny_send_queue_flush @@ -514,12 +513,8 @@ modest_tny_send_queue_get_msg_id (TnyHeader *header) static void -_on_msg_start_sending (TnySendQueue *self, - TnyHeader *header, - TnyMsg *msg, - int done, - int total, - gpointer user_data) +_on_msg_start_sending (TnySendQueue *self, TnyHeader *header, + TnyMsg *msg, int done, int total, gpointer user_data) { ModestTnySendQueuePrivate *priv = NULL; GList *item = NULL; @@ -530,16 +525,20 @@ _on_msg_start_sending (TnySendQueue *self, /* Get message uid */ msg_id = modest_tny_send_queue_get_msg_id (header); - - /* Get status info */ - item = modest_tny_send_queue_lookup_info (MODEST_TNY_SEND_QUEUE (self), msg_id); - - /* Set current status item */ - info = item->data; - info->status = MODEST_TNY_SEND_QUEUE_SENDING; - g_signal_emit (self, signals[STATUS_CHANGED_SIGNAL], 0, info->msg_id, info->status); - priv->current = item; - + if (msg_id) + item = modest_tny_send_queue_lookup_info (MODEST_TNY_SEND_QUEUE (self), msg_id); + else + g_warning ("%s: could not get msg-id for header", __FUNCTION__); + + if (item) { + /* Set current status item */ + info = item->data; + info->status = MODEST_TNY_SEND_QUEUE_SENDING; + g_signal_emit (self, signals[STATUS_CHANGED_SIGNAL], 0, info->msg_id, info->status); + priv->current = item; + } else + g_warning ("%s: could not find item with id '%s'", __FUNCTION__, msg_id); + /* free */ g_free (msg_id); } @@ -748,6 +747,9 @@ modest_tny_send_queue_wakeup (ModestTnySendQueue *self) tny_iterator_next (iter); } + /* Make changes persistent on disk */ + tny_folder_sync_async (priv->outbox, FALSE, NULL, NULL, NULL); + /* Frees */ g_object_unref (iter); g_object_unref (G_OBJECT (headers));