Reverted again the gdk_threads_enter/leave sentences:
[modest] / src / maemo / modest-msg-view-window.c
index 4cdfaeb..29e67b6 100644 (file)
@@ -943,9 +943,9 @@ modest_msg_view_window_last_message_selected (ModestMsgViewWindow *window)
                        if (!(tny_header_get_flags(header)&TNY_HEADER_FLAG_DELETED)) {
                                has_next = TRUE;
                                break;
-                       }
-                       
+                       }       
                }
+               gtk_tree_path_free (path);
                return !has_next;
        } else {
                return TRUE;
@@ -1052,13 +1052,15 @@ modest_msg_view_window_select_next_message (ModestMsgViewWindow *window)
                        /* Mark as read */
                        flags = tny_header_get_flags (header);
                        if (!(flags & TNY_HEADER_FLAG_SEEN))
-/*                             tny_header_set_flags (header, flags | TNY_HEADER_FLAG_SEEN); */
                                tny_header_set_flags (header, TNY_HEADER_FLAG_SEEN);
 
-                       /* Msg download initied */
-
+                       /* Msg download completed */
+                       if (flags & TNY_HEADER_FLAG_CACHED)
+                               mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_OPEN, G_OBJECT(window));
+                       else
+                               mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(window));
+                               
                        /* New mail operation */
-                       mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(window));
                        modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op);
                        modest_mail_operation_get_msg (mail_op, header, view_msg_cb, NULL);
                        g_object_unref (mail_op);
@@ -1110,11 +1112,15 @@ modest_msg_view_window_select_first_message (ModestMsgViewWindow *self)
        /* Mark as read */
        flags = tny_header_get_flags (header);
        if (!(flags & TNY_HEADER_FLAG_SEEN))
-/*             tny_header_set_flags (header, flags | TNY_HEADER_FLAG_SEEN); */
                tny_header_set_flags (header, TNY_HEADER_FLAG_SEEN);
        
+       /* Msg download completed */
+       if (flags & TNY_HEADER_FLAG_CACHED)
+               mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_OPEN, G_OBJECT(self));
+       else 
+               mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(self));
+       
        /* New mail operation */
-       mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(self));
        modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op);
        modest_mail_operation_get_msg (mail_op, header, view_msg_cb, NULL);
        g_object_unref (mail_op);
@@ -1166,11 +1172,15 @@ modest_msg_view_window_select_previous_message (ModestMsgViewWindow *window)
                /* Mark as read */
                flags = tny_header_get_flags (header);
                if (!(flags & TNY_HEADER_FLAG_SEEN))
-/*                     tny_header_set_flags (header, flags | TNY_HEADER_FLAG_SEEN); */
                        tny_header_set_flags (header, TNY_HEADER_FLAG_SEEN);
-
+               
+               /* Msg download completed */
+               if (flags & TNY_HEADER_FLAG_CACHED)
+                       mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_OPEN, G_OBJECT(window));
+               else
+                       mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(window));
+               
                /* New mail operation */
-               mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(window));
                modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op);
                modest_mail_operation_get_msg (mail_op, header, view_msg_cb, NULL);             
 
@@ -1488,6 +1498,7 @@ on_queue_changed (ModestMailOperationQueue *queue,
        switch (op_type) {
        case MODEST_MAIL_OPERATION_TYPE_SEND:
        case MODEST_MAIL_OPERATION_TYPE_RECEIVE:
+       case MODEST_MAIL_OPERATION_TYPE_OPEN:
                mode = TOOLBAR_MODE_TRANSFER;
                break;
        default:
@@ -1762,6 +1773,8 @@ modest_msg_view_window_remove_attachments (ModestMsgViewWindow *window)
        gchar *confirmation_message;
        gint response;
        gint n_attachments;
+       TnyMsg *msg;
+/*     TnyFolder *folder; */
 
        g_return_if_fail (MODEST_IS_MSG_VIEW_WINDOW (window));
        priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
@@ -1797,11 +1810,23 @@ modest_msg_view_window_remove_attachments (ModestMsgViewWindow *window)
        if (response != GTK_RESPONSE_OK)
                return;
 
+       msg = modest_msg_view_get_message (MODEST_MSG_VIEW (priv->msg_view));
+/*     folder = tny_msg_get_folder (msg); */
+/*     tny_msg_uncache_attachments (msg); */
+/*     tny_folder_refresh (folder, NULL); */
+/*     g_object_unref (folder); */
+       
+       modest_msg_view_set_message (MODEST_MSG_VIEW (priv->msg_view), msg);
+
        for (node = mime_parts; node != NULL; node = g_list_next (node)) {
-               modest_msg_view_remove_attachment (MODEST_MSG_VIEW (priv->msg_view), node->data);
+               tny_mime_part_set_purged (TNY_MIME_PART (node->data));
+/*             modest_msg_view_remove_attachment (MODEST_MSG_VIEW (priv->msg_view), node->data); */
        }
+       tny_msg_rewrite_cache (msg);
        g_list_foreach (mime_parts, (GFunc) g_object_unref, NULL);
        g_list_free (mime_parts);
+       modest_platform_information_banner (NULL, NULL, _("mcen_ib_removing_attachment"));
+
 }