X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-gtkhtml-mime-part-view.c;h=d541cec6f91141c521c47dde0945d42bed5e8206;hb=5a94779449f6a59173a1e5686825ad0c05845a3b;hp=0a3fd5d152d4a1f903ee2dfb2f963e41f585ee0f;hpb=3b214150a992267f0722e89c94759f8e3c637c0a;p=modest diff --git a/src/widgets/modest-gtkhtml-mime-part-view.c b/src/widgets/modest-gtkhtml-mime-part-view.c index 0a3fd5d..d541cec 100644 --- a/src/widgets/modest-gtkhtml-mime-part-view.c +++ b/src/widgets/modest-gtkhtml-mime-part-view.c @@ -34,6 +34,7 @@ #include #include #include +#include "modest-tny-mime-part.h" #include #include #include @@ -352,7 +353,7 @@ on_url_requested (GtkWidget *widget, const gchar *uri, GtkHTMLStream *stream, tny_stream = TNY_STREAM (modest_tny_stream_gtkhtml_new (stream)); g_signal_emit_by_name (MODEST_MIME_PART_VIEW (self), "fetch-url", uri, tny_stream, &result); - gtk_html_stream_close (stream, result?GTK_HTML_STREAM_OK:GTK_HTML_STREAM_ERROR); + tny_stream_close (tny_stream); g_object_unref (tny_stream); return result; } @@ -374,9 +375,8 @@ set_html_part (ModestGtkhtmlMimePartView *self, TnyMimePart *part) tny_stream_reset (tny_stream); tny_mime_part_decode_to_stream ((TnyMimePart*)part, tny_stream, NULL); + tny_stream_close (tny_stream); g_object_unref (G_OBJECT(tny_stream)); - - gtk_html_stream_destroy (gtkhtml_stream); } static void @@ -396,11 +396,13 @@ set_text_part (ModestGtkhtmlMimePartView *self, TnyMimePart *part) // FIXME: tinymail tny_mime_part_decode_to_stream ((TnyMimePart*)part, text_to_html_stream, NULL); + tny_stream_write (text_to_html_stream, "\n", 1); tny_stream_reset (text_to_html_stream); + tny_stream_close (text_to_html_stream); g_object_unref (G_OBJECT(text_to_html_stream)); g_object_unref (G_OBJECT(tny_stream)); - gtk_html_stream_destroy (gtkhtml_stream); + /* gtk_html_stream_destroy (gtkhtml_stream); */ } static void @@ -434,10 +436,30 @@ set_part (ModestGtkhtmlMimePartView *self, TnyMimePart *part) return; } - if (tny_mime_part_content_type_is (part, "text/html")) + if (tny_mime_part_content_type_is (part, "text/html")) { set_html_part (self, part); - else - set_text_part (self, part); + } else { + if (tny_mime_part_content_type_is (part, "message/rfc822")) { + gchar *header_content_type, *header_content_type_lower; + header_content_type = modest_tny_mime_part_get_header_value (part, "Content-Type"); + if (header_content_type) { + header_content_type = g_strstrip (header_content_type); + header_content_type_lower = g_ascii_strdown (header_content_type, -1); + + if (!g_ascii_strcasecmp (header_content_type_lower, "text/html")) + set_html_part (self, part); + else + set_text_part (self, part); + + g_free (header_content_type_lower); + g_free (header_content_type); + } else { + set_text_part (self, part); + } + } else { + set_text_part (self, part); + } + } } @@ -545,9 +567,9 @@ tny_mime_part_view_init (gpointer g, gpointer iface_data) { TnyMimePartViewIface *klass = (TnyMimePartViewIface *)g; - klass->get_part_func = modest_gtkhtml_mime_part_view_get_part; - klass->set_part_func = modest_gtkhtml_mime_part_view_set_part; - klass->clear_func = modest_gtkhtml_mime_part_view_clear; + klass->get_part = modest_gtkhtml_mime_part_view_get_part; + klass->set_part = modest_gtkhtml_mime_part_view_set_part; + klass->clear = modest_gtkhtml_mime_part_view_clear; return; }