[evolution] Bug 473198 - evolution should ignore signature when checking for missing attachments



commit b73adeb5e0456cba8a6592d16941e7911d81d5d4
Author: Tomas Popela <tpopela redhat com>
Date:   Mon Jun 30 16:02:29 2014 +0200

    Bug 473198 - evolution should ignore signature when checking for missing attachments
    
    Introduce method that returns body inner text without signature text.

 composer/e-composer-private.c                     |    1 +
 composer/e-msg-composer.c                         |   38 +++++++++++++++++++++
 composer/e-msg-composer.h                         |    2 +
 plugins/attachment-reminder/attachment-reminder.c |    3 +-
 4 files changed, 43 insertions(+), 1 deletions(-)
---
diff --git a/composer/e-composer-private.c b/composer/e-composer-private.c
index bc3b6d8..f36f217 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 2489a2e..2e1f12d 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 f699041..1efc6c1 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 d3edd3c..17b2b5c 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;
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]