* Fixes NB#62003, application do not longer hang when forwarding messages
authorSergio Villar Senin <svillar@igalia.com>
Mon, 2 Jul 2007 10:57:12 +0000 (10:57 +0000)
committerSergio Villar Senin <svillar@igalia.com>
Mon, 2 Jul 2007 10:57:12 +0000 (10:57 +0000)
* the reply_forward_cb only allows now to reply/forward more than one mail, did that in order to get progress information, while get_msgs_full is not migrated to use the async calls to tinymail

pmo-trunk-r2526

src/maemo/modest-main-window-ui.h
src/modest-mail-operation.c
src/modest-ui-actions.c

index d58aa91..92c1d03 100644 (file)
@@ -113,9 +113,9 @@ static const GtkActionEntry modest_action_entries [] = {
         */
        /* Headers Toolbar */
        { "ToolbarMessageNew",        MODEST_STOCK_NEW_MAIL,     N_("qgn_toolb_messagin_new"), NULL, NULL,  G_CALLBACK (modest_ui_actions_on_new_msg) },
-       { "ToolbarMessageReply",      MODEST_STOCK_REPLY,     N_("qgn_toolb_messagin_reply"),          NULL, NULL,  G_CALLBACK (modest_ui_actions_on_reply) },
-       { "ToolbarMessageReplyAll",   MODEST_STOCK_REPLY_ALL,     N_("qgn_toolb_messagin_replyall"),         NULL, NULL,  G_CALLBACK (modest_ui_actions_on_reply_all) },
-       { "ToolbarMessageForward",    MODEST_STOCK_FORWARD,     N_("qgn_toolb_messagin_forward"),      NULL, NULL,  G_CALLBACK (modest_ui_actions_on_forward) },
+       { "ToolbarMessageReply",      MODEST_STOCK_REPLY,     N_("mcen_me_inbox_reply"),          NULL, NULL,  G_CALLBACK (modest_ui_actions_on_reply) },
+       { "ToolbarMessageReplyAll",   MODEST_STOCK_REPLY_ALL,     N_("mcen_me_inbox_replytoall"),         NULL, NULL,  G_CALLBACK (modest_ui_actions_on_reply_all) },
+       { "ToolbarMessageForward",    MODEST_STOCK_FORWARD,     N_("mcen_me_inbox_forward"),      NULL, NULL,  G_CALLBACK (modest_ui_actions_on_forward) },
        { "ToolbarSendReceive",       MODEST_STOCK_REFRESH,   N_("qgn_toolb_gene_refresh"),      NULL, NULL,  G_CALLBACK (modest_ui_actions_on_send_receive) },
 /*     { "ToolbarToggleView",        MODEST_STOCK_SPLIT_VIEW,      N_("gqn_toolb_rss_fldonoff"),                "<CTRL>t", NULL,  G_CALLBACK (modest_ui_actions_toggle_folders_view) }, */
        { "ToolbarDeleteMessage",     MODEST_STOCK_DELETE,     N_("qgn_toolb_gene_deletebutton"),             NULL, NULL,  G_CALLBACK (modest_ui_actions_on_delete) },
index 4a987c7..0831808 100644 (file)
@@ -1340,9 +1340,6 @@ transfer_folder_status_cb (GObject *obj,
        self = MODEST_MAIL_OPERATION (user_data);
        priv = MODEST_MAIL_OPERATION_GET_PRIVATE(self);
 
-       if ((status->position == 1) && (status->of_total == 100))
-               return;
-
        priv->done = status->position;
        priv->total = status->of_total;
 
@@ -1632,9 +1629,6 @@ get_msg_status_cb (GObject *obj,
        if(priv->status == MODEST_MAIL_OPERATION_STATUS_CANCELED)
                return;
 
-       if ((status->position == 1) && (status->of_total == 100))
-               return;
-
        priv->done = 1;
        priv->total = 1;
 
@@ -1942,9 +1936,6 @@ transfer_msgs_status_cb (GObject *obj,
        self = helper->mail_op;
        priv = MODEST_MAIL_OPERATION_GET_PRIVATE(self);
 
-       if ((status->position == 1) && (status->of_total == 100))
-               return;
-
        priv->done = status->position;
        priv->total = status->of_total;
 
index 97a3de7..86f1b90 100644 (file)
@@ -950,6 +950,7 @@ cleanup:
                g_object_unref (G_OBJECT (account));
 /*     g_object_unref (msg); */
        g_object_unref (header);
+       free_reply_forward_helper (rf_helper);
 }
 
 /*
@@ -1069,17 +1070,31 @@ reply_forward (ReplyForwardAction action, ModestWindow *win)
                } else
                        reply_forward_cb (NULL, header, msg, rf_helper);
        } else {
+               TnyHeader *header;
+               TnyIterator *iter;
+
                /* Retrieve messages */
                mail_op = modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_RECEIVE, 
                                                                         G_OBJECT(win),
                                                                         modest_ui_actions_get_msgs_full_error_handler, 
                                                                         NULL);
                modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op);
-               modest_mail_operation_get_msgs_full (mail_op, 
-                                                    header_list, 
-                                                    reply_forward_cb, 
-                                                    rf_helper, 
-                                                    free_reply_forward_helper);
+
+               /* Only reply/forward to one message */
+               iter = tny_list_create_iterator (header_list);
+               header = TNY_HEADER (tny_iterator_get_current (iter));
+               g_object_unref (iter);
+
+               modest_mail_operation_get_msg (mail_op,
+                                              header,
+                                              reply_forward_cb,
+                                              rf_helper);
+
+/*             modest_mail_operation_get_msgs_full (mail_op,  */
+/*                                                  header_list,  */
+/*                                                  reply_forward_cb,  */
+/*                                                  rf_helper,  */
+/*                                                  free_reply_forward_helper); */
 
                /* Clean */
                g_object_unref(mail_op);