From: Jose Dapena Paz Date: Thu, 26 Nov 2009 16:25:30 +0000 (+0100) Subject: In bodystruct support, if there are embedded internal images and they X-Git-Tag: jdapena-ppa-3.90.4-modest0~84 X-Git-Url: https://vcs.maemo.org/git/?a=commitdiff_plain;h=8d153b8dcba2ef35588de786530570e17e2a2338;p=modest In bodystruct support, if there are embedded internal images and they weren't fetched, say that we have blocked external images. --- diff --git a/src/widgets/modest-gtkhtml-msg-view.c b/src/widgets/modest-gtkhtml-msg-view.c index 6a239bd..59d1b73 100644 --- a/src/widgets/modest-gtkhtml-msg-view.c +++ b/src/widgets/modest-gtkhtml-msg-view.c @@ -52,6 +52,7 @@ #include #include #include +#include /* 'private'/'protected' functions */ static void modest_gtkhtml_msg_view_class_init (ModestGtkhtmlMsgViewClass *klass); @@ -272,6 +273,8 @@ struct _ModestGtkhtmlMsgViewPrivate { /* link click management */ gchar *last_url; + + gboolean has_blocked_bs_images; }; #define MODEST_GTKHTML_MSG_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \ @@ -1148,6 +1151,8 @@ modest_gtkhtml_msg_view_init (ModestGtkhtmlMsgView *obj) priv = MODEST_GTKHTML_MSG_VIEW_GET_PRIVATE(obj); + priv->has_blocked_bs_images = FALSE; + priv->idle_changes_count = 0; priv->idle_readjust_scroll_id = 0; priv->idle_resize_children_id = 0; @@ -1601,7 +1606,8 @@ has_blocked_external_images (ModestGtkhtmlMsgView *self) { ModestGtkhtmlMsgViewPrivate *priv = MODEST_GTKHTML_MSG_VIEW_GET_PRIVATE (self); - return (modest_mime_part_view_has_external_images (MODEST_MIME_PART_VIEW (priv->body_view)) && + return ((modest_mime_part_view_has_external_images (MODEST_MIME_PART_VIEW (priv->body_view)) || + (priv->has_blocked_bs_images)) && !modest_mime_part_view_get_view_images (MODEST_MIME_PART_VIEW (priv->body_view))); } @@ -1749,6 +1755,13 @@ on_fetch_url (GtkWidget *widget, const gchar *uri, } else { return FALSE; } + } else if (TNY_IS_CAMEL_BS_MIME_PART (part) && + !tny_camel_bs_mime_part_is_fetched (TNY_CAMEL_BS_MIME_PART (part))){ + if (!modest_mime_part_view_get_view_images (MODEST_MIME_PART_VIEW (priv->body_view))) { + priv->has_blocked_bs_images = TRUE; + tny_stream_close (stream); + return TRUE; + } } tny_mime_part_decode_to_stream ((TnyMimePart*)part, stream, NULL); @@ -1768,6 +1781,7 @@ set_message (ModestGtkhtmlMsgView *self, TnyMsg *msg, TnyMimePart *other_body) g_return_if_fail (self); priv = MODEST_GTKHTML_MSG_VIEW_GET_PRIVATE(self); + priv->has_blocked_bs_images = FALSE; modest_mail_header_view_set_loading (MODEST_MAIL_HEADER_VIEW (priv->mail_header_view), FALSE); gtk_widget_set_no_show_all (priv->mail_header_view, FALSE); modest_mime_part_view_set_view_images (MODEST_MIME_PART_VIEW (priv->body_view), FALSE); @@ -1924,6 +1938,7 @@ set_header (ModestGtkhtmlMsgView *self, TnyHeader *header) } priv = MODEST_GTKHTML_MSG_VIEW_GET_PRIVATE(self); + priv->has_blocked_bs_images = FALSE; modest_mail_header_view_set_loading (MODEST_MAIL_HEADER_VIEW (priv->mail_header_view), TRUE); gtk_widget_set_no_show_all (priv->mail_header_view, FALSE); modest_mime_part_view_set_view_images (MODEST_MIME_PART_VIEW (priv->body_view), FALSE);