- GtkTextBuffer *buf;
- GtkTextIter begin, end;
- TnyStream* txt_stream, *gtkhtml_stream;
- gchar *txt, *html_attachments;
- ModestMsgViewPrivate *priv;
-
- g_return_val_if_fail (self, FALSE);
- g_return_val_if_fail (tny_body, FALSE);
-
- priv = MODEST_MSG_VIEW_GET_PRIVATE(self);
-
- buf = gtk_text_buffer_new (NULL);
- txt_stream = TNY_STREAM(tny_gtk_text_buffer_stream_new (buf));
-
- tny_stream_reset (txt_stream);
-
- gtkhtml_stream =
- TNY_STREAM(modest_tny_stream_gtkhtml_new
- (gtk_html_begin(GTK_HTML(priv->gtkhtml))));
-
- html_attachments = attachments_as_html(self, msg);
- if (html_attachments) {
- tny_stream_write (gtkhtml_stream, html_attachments,
- strlen(html_attachments));
- tny_stream_reset (gtkhtml_stream);
- g_free (html_attachments);
- }
-
- // FIXME: tinymail
- tny_mime_part_decode_to_stream ((TnyMimePart*)tny_body,
- txt_stream);
- tny_stream_reset (txt_stream);
-
- gtk_text_buffer_get_bounds (buf, &begin, &end);
- txt = gtk_text_buffer_get_text (buf, &begin, &end, FALSE);
- if (txt) {
- gchar *html = modest_text_utils_convert_to_html (txt);
- tny_stream_write (gtkhtml_stream, html, strlen(html));
- tny_stream_reset (gtkhtml_stream);
- g_free (txt);
- g_free (html);
- }
-
- g_object_unref (G_OBJECT(gtkhtml_stream));
- g_object_unref (G_OBJECT(txt_stream));
- g_object_unref (G_OBJECT(buf));
-
- return TRUE;