diff options
author | Tomas Popela <tpopela@redhat.com> | 2014-06-17 22:17:51 +0800 |
---|---|---|
committer | Tomas Popela <tpopela@redhat.com> | 2014-06-17 22:24:15 +0800 |
commit | 3ef3e963573965827a6b72b8096e15b24c2db77f (patch) | |
tree | 81483d28e6bdde988e08d6fd456db4714ec01be1 | |
parent | 45271d47fca8a4ba6927cc428ab41c637da821b4 (diff) | |
download | gsoc2013-evolution-3ef3e963573965827a6b72b8096e15b24c2db77f.tar gsoc2013-evolution-3ef3e963573965827a6b72b8096e15b24c2db77f.tar.gz gsoc2013-evolution-3ef3e963573965827a6b72b8096e15b24c2db77f.tar.bz2 gsoc2013-evolution-3ef3e963573965827a6b72b8096e15b24c2db77f.tar.lz gsoc2013-evolution-3ef3e963573965827a6b72b8096e15b24c2db77f.tar.xz gsoc2013-evolution-3ef3e963573965827a6b72b8096e15b24c2db77f.tar.zst gsoc2013-evolution-3ef3e963573965827a6b72b8096e15b24c2db77f.zip |
Bug 731767 - [webkit-composer] Inline images not attached to the email
Change image's source value immediately after creating the Camel part for it.
-rw-r--r-- | e-util/e-html-editor-view.c | 62 |
1 files changed, 26 insertions, 36 deletions
diff --git a/e-util/e-html-editor-view.c b/e-util/e-html-editor-view.c index 19184ef1db..3a712bf2ed 100644 --- a/e-util/e-html-editor-view.c +++ b/e-util/e-html-editor-view.c @@ -6126,34 +6126,30 @@ e_html_editor_view_get_parts_for_inline_images (EHTMLEditorView *view, added = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, NULL); for (ii = 0; ii < length; ii++) { - CamelMimePart *part; + const gchar *id; + gchar *cid; WebKitDOMNode *node = webkit_dom_node_list_item (list, ii); gchar *src = webkit_dom_element_get_attribute ( WEBKIT_DOM_ELEMENT (node), "src"); - if (!g_hash_table_lookup (added, src)) { + if ((id = g_hash_table_lookup (added, src)) != NULL) { + cid = g_strdup_printf ("cid:%s", id); + } else { + CamelMimePart *part; + part = e_html_editor_view_add_inline_image_from_element ( view, WEBKIT_DOM_ELEMENT (node), "src", uid_domain); parts = g_list_append (parts, part); - g_hash_table_insert ( - added, src, (gpointer) camel_mime_part_get_content_id (part)); - } - g_free (src); - } - for (ii = 0; ii < length; ii++) { - WebKitDOMNode *node = webkit_dom_node_list_item (list, ii); - const gchar *id; - gchar *src = webkit_dom_element_get_attribute ( - WEBKIT_DOM_ELEMENT (node), "src"); + id = camel_mime_part_get_content_id (part); + cid = g_strdup_printf ("cid:%s", id); - if ((id = g_hash_table_lookup (added, src)) != NULL) { - gchar *cid = g_strdup_printf ("cid:%s", id); - webkit_dom_element_set_attribute ( - WEBKIT_DOM_ELEMENT (node), "src", cid, NULL); - g_free (cid); + g_hash_table_insert (added, src, (gpointer) id); } + webkit_dom_element_set_attribute ( + WEBKIT_DOM_ELEMENT (node), "src", cid, NULL); g_free (src); + g_free (cid); } list = webkit_dom_document_query_selector_all ( @@ -6161,36 +6157,30 @@ e_html_editor_view_get_parts_for_inline_images (EHTMLEditorView *view, length = webkit_dom_node_list_get_length (list); for (ii = 0; ii < length; ii++) { CamelMimePart *part; + const gchar *id; + gchar *cid = NULL; WebKitDOMNode *node = webkit_dom_node_list_item (list, ii); gchar *src = webkit_dom_element_get_attribute ( WEBKIT_DOM_ELEMENT (node), "background"); - if (!g_hash_table_lookup (added, src)) { + if ((id = g_hash_table_lookup (added, src)) != NULL) { + cid = g_strdup_printf ("cid:%s", id); + webkit_dom_element_set_attribute ( + WEBKIT_DOM_ELEMENT (node), "background", cid, NULL); + } else { part = e_html_editor_view_add_inline_image_from_element ( view, WEBKIT_DOM_ELEMENT (node), "background", uid_domain); if (part) { parts = g_list_append (parts, part); - g_hash_table_insert ( - added, src, - (gpointer) camel_mime_part_get_content_id (part)); + id = camel_mime_part_get_content_id (part); + g_hash_table_insert (added, src, (gpointer) id); + cid = g_strdup_printf ("cid:%s", id); + webkit_dom_element_set_attribute ( + WEBKIT_DOM_ELEMENT (node), "background", cid, NULL); } } g_free (src); - } - - for (ii = 0; ii < length; ii++) { - WebKitDOMNode *node = webkit_dom_node_list_item (list, ii); - gchar *src = webkit_dom_element_get_attribute ( - WEBKIT_DOM_ELEMENT (node), "background"); - const gchar *id; - - if ((id = g_hash_table_lookup (added, src)) != NULL) { - gchar *cid = g_strdup_printf ("cid:%s", id); - webkit_dom_element_set_attribute ( - WEBKIT_DOM_ELEMENT (node), "background", cid, NULL); - g_free (cid); - } - g_free (src); + g_free (cid); } g_hash_table_destroy (added); |