aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Popela <tpopela@redhat.com>2014-06-30 22:02:29 +0800
committerTomas Popela <tpopela@redhat.com>2014-06-30 22:02:29 +0800
commitb73adeb5e0456cba8a6592d16941e7911d81d5d4 (patch)
tree9d61d30c64cfb0fb6640cf99b6394f2e038b587c
parent784c8fdc06b5d9204139cde8bb3bbb93832cdba2 (diff)
downloadgsoc2013-evolution-b73adeb5e0456cba8a6592d16941e7911d81d5d4.tar
gsoc2013-evolution-b73adeb5e0456cba8a6592d16941e7911d81d5d4.tar.gz
gsoc2013-evolution-b73adeb5e0456cba8a6592d16941e7911d81d5d4.tar.bz2
gsoc2013-evolution-b73adeb5e0456cba8a6592d16941e7911d81d5d4.tar.lz
gsoc2013-evolution-b73adeb5e0456cba8a6592d16941e7911d81d5d4.tar.xz
gsoc2013-evolution-b73adeb5e0456cba8a6592d16941e7911d81d5d4.tar.zst
gsoc2013-evolution-b73adeb5e0456cba8a6592d16941e7911d81d5d4.zip
Bug 473198 - evolution should ignore signature when checking for missing attachments
Introduce method that returns body inner text without signature text.
-rw-r--r--composer/e-composer-private.c1
-rw-r--r--composer/e-msg-composer.c38
-rw-r--r--composer/e-msg-composer.h2
-rw-r--r--plugins/attachment-reminder/attachment-reminder.c3
4 files changed, 43 insertions, 1 deletions
diff --git a/composer/e-composer-private.c b/composer/e-composer-private.c
index bc3b6d8078..f36f217f4d 100644
--- a/composer/e-composer-private.c
+++ b/composer/e-composer-private.c
@@ -1177,6 +1177,7 @@ insert:
body = webkit_dom_document_get_body (document);
element = webkit_dom_document_create_element (document, "DIV", NULL);
+ webkit_dom_element_set_class_name (element, "-x-evo-signature-wrapper");
webkit_dom_html_element_set_inner_html (
WEBKIT_DOM_HTML_ELEMENT (element), html_buffer->str, NULL);
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c
index 2489a2e137..2e1f12df28 100644
--- a/composer/e-msg-composer.c
+++ b/composer/e-msg-composer.c
@@ -4925,6 +4925,44 @@ e_msg_composer_get_reply_to (EMsgComposer *composer)
}
/**
+ * e_msg_composer_get_raw_message_text_without_signature:
+ *
+ * Returns the text/plain of the message from composer without signature
+ **/
+GByteArray *
+e_msg_composer_get_raw_message_text_without_signature (EMsgComposer *composer)
+{
+ EHTMLEditor *editor;
+ EHTMLEditorView *view;
+ GByteArray *array;
+ gint ii, length;
+ WebKitDOMDocument *document;
+ WebKitDOMNodeList *list;
+
+ g_return_val_if_fail (E_IS_MSG_COMPOSER (composer), NULL);
+
+ editor = e_msg_composer_get_editor (composer);
+ view = e_html_editor_get_view (editor);
+ document = webkit_web_view_get_dom_document (WEBKIT_WEB_VIEW (view));
+ array = g_byte_array_new ();
+
+ list = webkit_dom_document_query_selector_all (
+ document, "body > *:not(.-x-evo-signature-wrapper)", NULL);
+ length = webkit_dom_node_list_get_length (list);
+ for (ii = 0; ii < length; ii++) {
+ gchar *text;
+ WebKitDOMNode *node = webkit_dom_node_list_item (list, ii);
+
+ text = webkit_dom_html_element_get_inner_text (
+ WEBKIT_DOM_HTML_ELEMENT (node));
+ g_byte_array_append (array, (guint8 *) text, strlen (text));
+ g_free (text);
+ }
+
+ return array;
+}
+
+/**
* e_msg_composer_get_raw_message_text:
*
* Returns the text/plain of the message from composer
diff --git a/composer/e-msg-composer.h b/composer/e-msg-composer.h
index f6990415f7..1efc6c124e 100644
--- a/composer/e-msg-composer.h
+++ b/composer/e-msg-composer.h
@@ -181,6 +181,8 @@ EComposerHeaderTable *
EAttachmentView *
e_msg_composer_get_attachment_view
(EMsgComposer *composer);
+GByteArray * e_msg_composer_get_raw_message_text_without_signature
+ (EMsgComposer *composer);
GByteArray * e_msg_composer_get_raw_message_text
(EMsgComposer *composer);
diff --git a/plugins/attachment-reminder/attachment-reminder.c b/plugins/attachment-reminder/attachment-reminder.c
index d3edd3c01e..17b2b5c020 100644
--- a/plugins/attachment-reminder/attachment-reminder.c
+++ b/plugins/attachment-reminder/attachment-reminder.c
@@ -86,7 +86,8 @@ org_gnome_evolution_attachment_reminder (EPlugin *ep,
if (check_for_attachment (t->composer))
return;
- raw_msg_barray = e_msg_composer_get_raw_message_text (t->composer);
+ raw_msg_barray =
+ e_msg_composer_get_raw_message_text_without_signature (t->composer);
if (!raw_msg_barray)
return;