* add debugging code to the send-queue and the operations-queue;
[modest] / src / modest-mail-operation.c
index 34a5001..48f3c14 100644 (file)
@@ -635,20 +635,21 @@ modest_mail_operation_send_mail (ModestMailOperation *self,
        } else {
                /* Add the msg to the queue */
                modest_mail_operation_notify_start (self);
-               modest_tny_send_queue_add (MODEST_TNY_SEND_QUEUE(send_queue), 
-                                          msg, 
-                                          &(priv->error));
-
-               priv->status = MODEST_MAIL_OPERATION_STATUS_IN_PROGRESS;
 
                info = g_slice_new0 (SendMsgInfo);
 
                info->mail_op = g_object_ref (self);
                info->msg = g_object_ref (msg);
                info->msg_sent_handler = g_signal_connect (G_OBJECT (send_queue), "msg-sent",
-                                                          G_CALLBACK (send_mail_msg_sent_handler), info);
+                               G_CALLBACK (send_mail_msg_sent_handler), info);
                info->error_happened_handler = g_signal_connect (G_OBJECT (send_queue), "error-happened",
-                                                                G_CALLBACK (send_mail_error_happened_handler), info);
+                               G_CALLBACK (send_mail_error_happened_handler), info);
+
+               modest_tny_send_queue_add (MODEST_TNY_SEND_QUEUE(send_queue), 
+                               msg, 
+                               &(priv->error));
+
+               priv->status = MODEST_MAIL_OPERATION_STATUS_IN_PROGRESS;
        }
 
 }
@@ -707,6 +708,8 @@ send_mail_error_happened_handler (TnySendQueue *queue, TnyHeader *header, TnyMsg
        if (msgid2 == NULL) msgid2 = "(null)";
 
        if (!strcmp (msgid1, msgid2)) {
+               if (error != NULL)
+                       g_warning ("%s: %s\n", __FUNCTION__, error->message);
                ModestMailOperationPrivate *priv = MODEST_MAIL_OPERATION_GET_PRIVATE (info->mail_op);
                priv->status = MODEST_MAIL_OPERATION_STATUS_FAILED;
                g_set_error (&(priv->error), MODEST_MAIL_OPERATION_ERROR,
@@ -2646,7 +2649,6 @@ transfer_msgs_cb (TnyFolder *folder, gboolean cancelled, GError *err, gpointer u
 
                        tny_iterator_next (iter);
                }
-
        }
                
 
@@ -3008,3 +3010,41 @@ modest_mail_operation_noop (ModestMailOperation *self)
        modest_mail_operation_notify_start (self);
        modest_mail_operation_notify_end (self);
 }
+
+
+gchar*
+modest_mail_operation_to_string (ModestMailOperation *self)
+{
+       const gchar *type, *status, *account_id;
+       ModestMailOperationPrivate *priv = NULL;
+       
+       g_return_val_if_fail (self, NULL);
+
+       priv = MODEST_MAIL_OPERATION_GET_PRIVATE(self);
+       
+       switch (priv->op_type) {
+       case MODEST_MAIL_OPERATION_TYPE_SEND:    type= "SEND";    break;
+       case MODEST_MAIL_OPERATION_TYPE_RECEIVE: type= "RECEIVE"; break;
+       case MODEST_MAIL_OPERATION_TYPE_OPEN:    type= "OPEN";    break;
+       case MODEST_MAIL_OPERATION_TYPE_DELETE:  type= "DELETE";  break;
+       case MODEST_MAIL_OPERATION_TYPE_INFO:    type= "INFO";    break;
+       case MODEST_MAIL_OPERATION_TYPE_UNKNOWN: type= "UNKNOWN"; break;
+       default: type = "UNEXPECTED"; break;
+       }
+
+       switch (priv->status) {
+       case MODEST_MAIL_OPERATION_STATUS_INVALID:              status= "INVALID"; break;
+       case MODEST_MAIL_OPERATION_STATUS_SUCCESS:              status= "SUCCESS"; break;
+       case MODEST_MAIL_OPERATION_STATUS_FINISHED_WITH_ERRORS: status= "FINISHED-WITH-ERRORS"; break;
+       case MODEST_MAIL_OPERATION_STATUS_FAILED:               status= "FAILED"; break;
+       case MODEST_MAIL_OPERATION_STATUS_IN_PROGRESS:          status= "IN-PROGRESS"; break;
+       case MODEST_MAIL_OPERATION_STATUS_CANCELED:             status= "CANCELLED"; break;
+       default:                                                status= "UNEXPECTED"; break;
+       } 
+
+       account_id = priv->account ? tny_account_get_id (priv->account) : "";
+       
+       return g_strdup_printf ("%p \"%s\" (%s) [%s] {%d/%d} '%s'", self, account_id,type, status,
+                               priv->done, priv->total,
+                               priv->error && priv->error->message ? priv->error->message : "");
+}