diff options
author | Dan Vrátil <dvratil@redhat.com> | 2012-08-28 20:09:25 +0800 |
---|---|---|
committer | Dan Vrátil <dvratil@redhat.com> | 2012-08-28 20:09:25 +0800 |
commit | 0a6672a1bd2354198f8d37a8f4a7ff26d4f6af78 (patch) | |
tree | 3fb6e9fe8b0909292a1796e04029efb7e8f52731 | |
parent | 2773f4abee66d3572f1137fc1db8bd21c916e2bf (diff) | |
download | gsoc2013-evolution-0a6672a1bd2354198f8d37a8f4a7ff26d4f6af78.tar.gz gsoc2013-evolution-0a6672a1bd2354198f8d37a8f4a7ff26d4f6af78.tar.zst gsoc2013-evolution-0a6672a1bd2354198f8d37a8f4a7ff26d4f6af78.zip |
Add support for application/ics to ITIP formatter
-rw-r--r-- | modules/itip-formatter/e-mail-formatter-itip.c | 4 | ||||
-rw-r--r-- | modules/itip-formatter/e-mail-parser-itip.c | 19 |
2 files changed, 20 insertions, 3 deletions
diff --git a/modules/itip-formatter/e-mail-formatter-itip.c b/modules/itip-formatter/e-mail-formatter-itip.c index 3b761276a1..ca6b2f64cd 100644 --- a/modules/itip-formatter/e-mail-formatter-itip.c +++ b/modules/itip-formatter/e-mail-formatter-itip.c @@ -58,7 +58,9 @@ G_DEFINE_DYNAMIC_TYPE_EXTENDED ( E_TYPE_MAIL_FORMATTER_EXTENSION, e_mail_formatter_formatter_extension_interface_init)); -static const gchar * formatter_mime_types[] = { "text/calendar" , NULL }; +static const gchar * formatter_mime_types[] = { "text/calendar", + "application/ics", + NULL }; static gboolean emfe_itip_format (EMailFormatterExtension *extension, diff --git a/modules/itip-formatter/e-mail-parser-itip.c b/modules/itip-formatter/e-mail-parser-itip.c index 6c740ada75..56bbd53da1 100644 --- a/modules/itip-formatter/e-mail-parser-itip.c +++ b/modules/itip-formatter/e-mail-parser-itip.c @@ -68,7 +68,9 @@ G_DEFINE_DYNAMIC_TYPE_EXTENDED ( E_TYPE_MAIL_PARSER_EXTENSION, e_mail_parser_parser_extension_interface_init)); -static const gchar * parser_mime_types[] = { "text/calendar", NULL }; +static const gchar * parser_mime_types[] = { "text/calendar", + "application/ics", + NULL }; static void mail_part_itip_free (EMailPart *mail_part) @@ -192,6 +194,8 @@ empe_itip_parse (EMailParserExtension *extension, CamelStream *stream; GByteArray *byte_array; gint len; + const CamelContentDisposition *disposition; + GSList *parts; len = part_id->len; g_string_append_printf (part_id, ".itip"); @@ -204,6 +208,7 @@ empe_itip_parse (EMailParserExtension *extension, (GFreeFunc) mail_part_itip_free); itip_part->parent.mime_type = g_strdup ("text/calendar"); itip_part->parent.bind_func = bind_itip_view; + itip_part->parent.force_collapse = TRUE; itip_part->delete_message = g_settings_get_boolean (settings, CONF_KEY_DELETE); itip_part->has_organizer = FALSE; itip_part->no_reply_wanted = FALSE; @@ -228,9 +233,19 @@ empe_itip_parse (EMailParserExtension *extension, (gchar *) byte_array->data, byte_array->len); g_object_unref (stream); + + parts = g_slist_append (NULL, itip_part); + + disposition = camel_mime_part_get_content_disposition (part); + if (disposition && + (g_strcmp0 (disposition->disposition, "attachment") == 0)) { + parts = e_mail_parser_wrap_as_attachment ( + parser, part, parts, part_id, cancellable); + } + g_string_truncate (part_id, len); - return g_slist_append (NULL, itip_part); + return parts; } static guint32 |