X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-mail-operation-queue.c;h=d22917fd513cbf518aa142939b6e1d7bc2fd3b8d;hp=02b1f1a3016c296d837feb632c44c5479dc5319b;hb=83c3671f0e0b2ff021d3cb8b37653e66c1e38066;hpb=8b08d2fd3eebc0584a5c49abdcd26c52b65737f0 diff --git a/src/modest-mail-operation-queue.c b/src/modest-mail-operation-queue.c index 02b1f1a..d22917f 100644 --- a/src/modest-mail-operation-queue.c +++ b/src/modest-mail-operation-queue.c @@ -292,7 +292,9 @@ modest_mail_operation_queue_remove (ModestMailOperationQueue *self, /* Check errors */ status = modest_mail_operation_get_status (mail_op); - if (status != MODEST_MAIL_OPERATION_STATUS_SUCCESS) { + if (status == MODEST_MAIL_OPERATION_STATUS_CANCELED) { + g_warning ("%s: operation canceled \n", __FUNCTION__); + } else if (status != MODEST_MAIL_OPERATION_STATUS_SUCCESS) { /* This is a sanity check. Shouldn't be needed, but prevent possible application crashes. It's useful also for detecting mail operations with invalid @@ -300,13 +302,10 @@ modest_mail_operation_queue_remove (ModestMailOperationQueue *self, if (modest_mail_operation_get_error (mail_op) != NULL) { modest_mail_operation_execute_error_handler (mail_op); } else { - if (status == MODEST_MAIL_OPERATION_STATUS_CANCELED) - g_warning ("%s: operation canceled \n", __FUNCTION__); - else - g_warning ("%s: possible error in a mail operation " \ - "implementation. The status is not successful " \ - "but the mail operation does not have any " \ - "error set\n", __FUNCTION__); + g_warning ("%s: possible error in a mail operation " \ + "implementation. The status is not successful " \ + "but the mail operation does not have any " \ + "error set\n", __FUNCTION__); } } @@ -441,3 +440,34 @@ modest_mail_operation_queue_get_by_source ( return found_operations; } + +static void +accumulate_mail_op_strings (ModestMailOperation *op, gchar **str) +{ + *str = g_strdup_printf ("%s\n%s", *str, modest_mail_operation_to_string (op)); +} + + +gchar* +modest_mail_operation_queue_to_string (ModestMailOperationQueue *self) +{ + gchar *str; + guint len; + ModestMailOperationQueuePrivate *priv; + + g_return_val_if_fail (MODEST_IS_MAIL_OPERATION_QUEUE (self), NULL); + + priv = MODEST_MAIL_OPERATION_QUEUE_GET_PRIVATE(self); + + len = g_queue_get_length (priv->op_queue); + str = g_strdup_printf ("mail operation queue (%02d)\n-------------------------", len); + if (len == 0) + str = g_strdup_printf ("%s\n%s", str, ""); + else { + g_mutex_lock (priv->queue_lock); + g_queue_foreach (priv->op_queue, (GFunc)accumulate_mail_op_strings, &str); + g_mutex_unlock (priv->queue_lock); + } + + return str; +}