aboutsummaryrefslogtreecommitdiffstats
path: root/em-format/e-mail-parser-headers.c
diff options
context:
space:
mode:
authorDan Vrátil <dvratil@redhat.com>2012-06-14 18:01:41 +0800
committerDan Vrátil <dvratil@redhat.com>2012-06-14 18:14:45 +0800
commit4f47f662f6daa7b9a3daed77d66b2022ae8398ab (patch)
tree24fe8456d16c4c42145771780c575f9ca9c7c126 /em-format/e-mail-parser-headers.c
parent50ad565a15f4e630c06f78dddc6b3d00ea7ee34a (diff)
downloadgsoc2013-evolution-4f47f662f6daa7b9a3daed77d66b2022ae8398ab.tar
gsoc2013-evolution-4f47f662f6daa7b9a3daed77d66b2022ae8398ab.tar.gz
gsoc2013-evolution-4f47f662f6daa7b9a3daed77d66b2022ae8398ab.tar.bz2
gsoc2013-evolution-4f47f662f6daa7b9a3daed77d66b2022ae8398ab.tar.lz
gsoc2013-evolution-4f47f662f6daa7b9a3daed77d66b2022ae8398ab.tar.xz
gsoc2013-evolution-4f47f662f6daa7b9a3daed77d66b2022ae8398ab.tar.zst
gsoc2013-evolution-4f47f662f6daa7b9a3daed77d66b2022ae8398ab.zip
Bug #674887 - Hang on sender's photo lookup
Diffstat (limited to 'em-format/e-mail-parser-headers.c')
-rw-r--r--em-format/e-mail-parser-headers.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/em-format/e-mail-parser-headers.c b/em-format/e-mail-parser-headers.c
index 06f28746f0..0a2c2bd40e 100644
--- a/em-format/e-mail-parser-headers.c
+++ b/em-format/e-mail-parser-headers.c
@@ -58,6 +58,31 @@ G_DEFINE_TYPE_EXTENDED (
static const gchar *parser_mime_types[] = { "application/vnd.evolution.headers", NULL };
+static void
+empe_headers_bind_dom (EMailPart *part,
+ WebKitDOMElement *element)
+{
+ WebKitDOMDocument *document;
+ WebKitDOMElement *photo;
+ gchar *addr, *uri;
+ gboolean only_local;
+
+ document = webkit_dom_node_get_owner_document (WEBKIT_DOM_NODE (element));
+ photo = webkit_dom_document_get_element_by_id (document, "__evo-contact-photo");
+
+ addr = webkit_dom_element_get_attribute (photo, "data-mailaddr");
+ only_local = webkit_dom_element_has_attribute (photo, "data-onlylocal");
+
+ uri = g_strdup_printf ("mail://contact-photo?mailaddr=%s%s",
+ addr, only_local ? "&only-local-photo=1" : "");
+
+ webkit_dom_html_image_element_set_src (
+ WEBKIT_DOM_HTML_IMAGE_ELEMENT (photo), uri);
+
+ g_free (addr);
+ g_free (uri);
+}
+
static GSList *
empe_headers_parse (EMailParserExtension *extension,
EMailParser *parser,
@@ -76,6 +101,7 @@ empe_headers_parse (EMailParserExtension *extension,
mail_part = e_mail_part_new (part, part_id->str);
mail_part->mime_type = g_strdup ("application/vnd.evolution.headers");
+ mail_part->bind_func = empe_headers_bind_dom;
g_string_truncate (part_id, len);
return g_slist_append (NULL, mail_part);