#include <gtkhtml/gtkhtml-search.h>
#include <tny-stream.h>
#include <tny-mime-part-view.h>
+#include "modest-tny-mime-part.h"
#include <modest-stream-text-to-html.h>
#include <modest-text-utils.h>
#include <modest-conf.h>
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;
}
tny_stream = TNY_STREAM(modest_tny_stream_gtkhtml_new (gtkhtml_stream));
tny_stream_reset (tny_stream);
- tny_mime_part_decode_to_stream ((TnyMimePart*)part, 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
modest_stream_text_to_html_set_full_limit (MODEST_STREAM_TEXT_TO_HTML (text_to_html_stream), 640*1024);
// FIXME: tinymail
- tny_mime_part_decode_to_stream ((TnyMimePart*)part, text_to_html_stream);
+ 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
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);
+ }
+ }
}
{
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;
}