aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Popela <tpopela@redhat.com>2014-06-17 22:17:51 +0800
committerTomas Popela <tpopela@redhat.com>2014-06-17 22:24:15 +0800
commit3ef3e963573965827a6b72b8096e15b24c2db77f (patch)
tree81483d28e6bdde988e08d6fd456db4714ec01be1
parent45271d47fca8a4ba6927cc428ab41c637da821b4 (diff)
downloadgsoc2013-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.c62
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);