X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-tny-msg.c;h=675fce396cdc9fbeb0d92ae60fc4f060ec57999b;hb=bac5b9ce2f6d579d6d4bb0969c97537300cfc1c8;hp=26b26473a6a079f3238f1bfd4301227b7689115e;hpb=23b77fcc7767731bd6d8b59c303afc393694908c;p=modest diff --git a/src/modest-tny-msg.c b/src/modest-tny-msg.c index 26b2647..675fce3 100644 --- a/src/modest-tny-msg.c +++ b/src/modest-tny-msg.c @@ -71,16 +71,20 @@ modest_tny_msg_new (const gchar* mailto, const gchar* from, const gchar *cc, tny_header_set_to (TNY_HEADER (header), mailto); tny_header_set_cc (TNY_HEADER (header), cc); tny_header_set_bcc (TNY_HEADER (header), bcc); - tny_header_set_subject (TNY_HEADER (header), subject); + + if (subject) + tny_header_set_subject (TNY_HEADER (header), subject); content_type = get_content_type(body); - /* Add the body of the new mail */ + /* Add the body of the new mail */ + /* This is needed even if body is NULL or empty. */ add_body_part (new_msg, body, content_type, (attachments ? TRUE: FALSE)); g_free (content_type); /* Add attachments */ - add_attachments (new_msg, (GList*) attachments); + if (attachments) + add_attachments (new_msg, (GList*) attachments); return new_msg; } @@ -135,7 +139,7 @@ add_body_part (TnyMsg *msg, /* Create the stream */ text_body_stream = TNY_STREAM (tny_camel_stream_new (camel_stream_mem_new_with_buffer - (body, strlen(body)))); + (body, (body ? strlen(body) : 0)))); /* Create body part if needed */ if (has_attachments) @@ -249,13 +253,18 @@ modest_tny_msg_get_body (TnyMsg *msg, gboolean want_html) tny_stream_reset (stream); tny_mime_part_decode_to_stream (body, stream); tny_stream_reset (stream); - - g_object_unref (G_OBJECT(stream)); - g_object_unref (G_OBJECT(body)); gtk_text_buffer_get_bounds (buf, &start, &end); to_quote = gtk_text_buffer_get_text (buf, &start, &end, FALSE); + if (tny_mime_part_content_type_is (body, "text/plain")) { + gchar *to_quote_converted = modest_text_utils_convert_to_html (to_quote); + g_free (to_quote); + to_quote = to_quote_converted; + } + g_object_unref (buf); + g_object_unref (G_OBJECT(stream)); + g_object_unref (G_OBJECT(body)); return to_quote; } @@ -337,13 +346,14 @@ modest_tny_msg_find_body_part (TnyMsg *msg, gboolean want_html) static TnyMsg * -create_reply_forward_mail (TnyMsg *msg, const gchar *from, gboolean is_reply, guint type) +create_reply_forward_mail (TnyMsg *msg, const gchar *from, const gchar *signature, gboolean is_reply, guint type) { TnyMsg *new_msg; TnyHeader *new_header, *header; gchar *new_subject; TnyMimePart *body; ModestFormatter *formatter; + gchar *subject_prefix; /* Get body from original msg. Always look for the text/plain part of the message to create the reply/forwarded mail */ @@ -351,7 +361,10 @@ create_reply_forward_mail (TnyMsg *msg, const gchar *from, gboolean is_reply, gu body = modest_tny_msg_find_body_part (msg, FALSE); /* TODO: select the formatter from account prefs */ - formatter = modest_formatter_new ("text/plain"); + if (modest_conf_get_bool (modest_runtime_get_conf (), MODEST_CONF_PREFER_FORMATTED_TEXT, NULL)) + formatter = modest_formatter_new ("text/html", signature); + else + formatter = modest_formatter_new ("text/plain", signature); /* Format message body */ if (is_reply) { @@ -384,9 +397,14 @@ create_reply_forward_mail (TnyMsg *msg, const gchar *from, gboolean is_reply, gu tny_header_set_replyto (new_header, from); /* Change the subject */ + if (is_reply) + subject_prefix = g_strconcat (_("mail_va_re"), ":", NULL); + else + subject_prefix = g_strconcat (_("mail_va_fw"), ":", NULL); new_subject = (gchar *) modest_text_utils_derived_subject (tny_header_get_subject(header), - (is_reply) ? _("Re:") : _("Fwd:")); + subject_prefix); + g_free (subject_prefix); tny_header_set_subject (new_header, (const gchar *) new_subject); g_free (new_subject); @@ -413,13 +431,14 @@ add_if_attachment (gpointer data, gpointer user_data) TnyMsg* modest_tny_msg_create_forward_msg (TnyMsg *msg, const gchar *from, + const gchar *signature, ModestTnyMsgForwardType forward_type) { TnyMsg *new_msg; TnyList *parts = NULL; GList *attachments_list = NULL; - new_msg = create_reply_forward_mail (msg, from, FALSE, forward_type); + new_msg = create_reply_forward_mail (msg, from, signature, FALSE, forward_type); /* Add attachments */ parts = TNY_LIST (tny_simple_list_new()); @@ -438,6 +457,7 @@ modest_tny_msg_create_forward_msg (TnyMsg *msg, TnyMsg* modest_tny_msg_create_reply_msg (TnyMsg *msg, const gchar *from, + const gchar *signature, ModestTnyMsgReplyType reply_type, ModestTnyMsgReplyMode reply_mode) { @@ -448,7 +468,7 @@ modest_tny_msg_create_reply_msg (TnyMsg *msg, const gchar *cc = NULL, *bcc = NULL; GString *tmp = NULL; - new_msg = create_reply_forward_mail (msg, from, TRUE, reply_type); + new_msg = create_reply_forward_mail (msg, from, signature, TRUE, reply_type); /* Fill the header */ header = tny_msg_get_header (msg);