Don't make setting progress depend on widget being visible in msg view
[modest] / src / hildon2 / modest-msg-view-window.c
index 315f3c8..c9ab43e 100644 (file)
@@ -33,6 +33,7 @@
 #include <tny-msg.h>
 #include <tny-mime-part.h>
 #include <tny-vfs-stream.h>
+#include <tny-error.h>
 #include "modest-marshal.h"
 #include "modest-platform.h"
 #include <modest-utils.h>
@@ -489,9 +490,7 @@ set_progress_hint (ModestMsgViewWindow *self,
        /* Sets current progress hint */
        priv->progress_hint = enabled;
 
-       if (GTK_WIDGET_VISIBLE (self)) {
-               hildon_gtk_window_set_progress_indicator (GTK_WINDOW (self), enabled?1:0);
-       }
+       hildon_gtk_window_set_progress_indicator (GTK_WINDOW (self), enabled?1:0);
 
 }
 
@@ -1537,7 +1536,7 @@ modest_msg_view_window_zoom_plus (ModestWindow *window)
 
        /* set zoom level */
        int_zoom = (gint) rint (zoom_level*100.0+0.1);
-       banner_text = g_strdup_printf (_("wdgt_ib_zoom"), int_zoom);
+       banner_text = g_strdup_printf (_HL("wdgt_ib_zoom"), int_zoom);
        modest_platform_information_banner (GTK_WIDGET (window), NULL, banner_text);
        g_free (banner_text);
        modest_zoomable_set_zoom (MODEST_ZOOMABLE (priv->msg_view), zoom_level);
@@ -1578,7 +1577,7 @@ modest_msg_view_window_zoom_minus (ModestWindow *window)
 
        /* set zoom level */
        int_zoom = (gint) rint (zoom_level*100.0+0.1);
-       banner_text = g_strdup_printf (_("wdgt_ib_zoom"), int_zoom);
+       banner_text = g_strdup_printf (_HL("wdgt_ib_zoom"), int_zoom);
        modest_platform_information_banner (GTK_WIDGET (window), NULL, banner_text);
        g_free (banner_text);
        modest_zoomable_set_zoom (MODEST_ZOOMABLE (priv->msg_view), zoom_level);
@@ -2280,7 +2279,7 @@ on_account_removed (TnyAccountStore *account_store,
                parent_acc = modest_tny_account_get_parent_modest_account_name_for_server_account (account);
 
                /* Close this window if I'm showing a message of the removed account */
-               if (strcmp (parent_acc, our_acc) == 0)
+               if (our_acc && parent_acc && strcmp (parent_acc, our_acc) == 0)
                        modest_ui_actions_on_close_window (NULL, MODEST_WINDOW (user_data));
        }
 }
@@ -2394,7 +2393,8 @@ modest_msg_view_window_get_attachments (ModestMsgViewWindow *win)
        g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW (win), NULL);
        priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (win);
 
-       selected_attachments = modest_msg_view_get_selected_attachments (MODEST_MSG_VIEW (priv->msg_view));
+       /* In Hildon 2.2 as there's no selection we assume we have all attachments selected */
+       selected_attachments = modest_msg_view_get_attachments (MODEST_MSG_VIEW (priv->msg_view));
        
        return selected_attachments;
 }
@@ -2643,8 +2643,14 @@ save_mime_part_to_file (SaveMimePartInfo *info)
                stream = tny_vfs_stream_new (handle);
                if (tny_mime_part_decode_to_stream (pair->part, stream, &error) < 0) {
                        g_warning ("modest: could not save attachment %s: %d (%s)\n", pair->filename, error?error->code:-1, error?error->message:"Unknown error");
-                       
-                       info->result = GNOME_VFS_ERROR_IO;
+
+                       if ((error->domain == TNY_ERROR_DOMAIN) && 
+                           (error->code = TNY_IO_ERROR_WRITE) &&
+                           (errno == ENOSPC)) {
+                               info->result = GNOME_VFS_ERROR_NO_SPACE;
+                       } else {
+                               info->result = GNOME_VFS_ERROR_IO;
+                       }
                }
                g_object_unref (G_OBJECT (stream));
                g_object_unref (pair->part);
@@ -2771,7 +2777,9 @@ modest_msg_view_window_save_attachments (ModestMsgViewWindow *window, TnyList *m
        priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
 
        if (mime_parts == NULL) {
-               mime_parts = modest_msg_view_get_selected_attachments (MODEST_MSG_VIEW (priv->msg_view));
+               /* In Hildon 2.2 save and delete operate over all the attachments as there's no
+                * selection available */
+               mime_parts = modest_msg_view_get_attachments (MODEST_MSG_VIEW (priv->msg_view));
                if (mime_parts == NULL || tny_list_get_length (mime_parts) == 0)
                        return;
        } else {
@@ -2867,10 +2875,10 @@ modest_msg_view_window_remove_attachments (ModestMsgViewWindow *window, gboolean
        g_return_if_fail (MODEST_IS_MSG_VIEW_WINDOW (window));
        priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
 
-       if (get_all)
-               mime_parts = modest_msg_view_get_attachments (MODEST_MSG_VIEW (priv->msg_view));
-       else
-               mime_parts = modest_msg_view_get_selected_attachments (MODEST_MSG_VIEW (priv->msg_view));
+       /* In hildon 2.2 we ignore the get_all flag as we always get all attachments. This is
+        * because we don't have selection
+        */
+       mime_parts = modest_msg_view_get_attachments (MODEST_MSG_VIEW (priv->msg_view));
                
        /* Remove already purged messages from mime parts list */
        iter = tny_list_create_iterator (mime_parts);
@@ -3119,21 +3127,21 @@ setup_menu (ModestMsgViewWindow *self)
        modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_inbox_forward"), "<Control>d",
                                           APP_MENU_CALLBACK (modest_ui_actions_on_forward),
                                           MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_reply_msg));
-       
+
        modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_inbox_mark_as_read"), NULL,
                                           APP_MENU_CALLBACK (modest_ui_actions_on_mark_as_read),
                                           MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_mark_as_read_msg_in_view));
        modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_inbox_mark_as_unread"), NULL,
                                           APP_MENU_CALLBACK (modest_ui_actions_on_mark_as_unread),
                                           MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_mark_as_unread_msg_in_view));
-       
+
        modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_viewer_save_attachments"), NULL,
                                           APP_MENU_CALLBACK (modest_ui_actions_save_attachments),
                                           MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_save_attachments));
        modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_inbox_remove_attachments"), NULL,
                                           APP_MENU_CALLBACK (modest_ui_actions_remove_attachments),
                                           MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_remove_attachments));
-       
+
        modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_new_message"), "<Control>n",
                                           APP_MENU_CALLBACK (modest_ui_actions_on_new_msg),
                                           MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_new_msg));