[evolution/evolution-3-12] Bug 736947 - Attachment icon not shown in Sent folder
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/evolution-3-12] Bug 736947 - Attachment icon not shown in Sent folder
- Date: Wed, 19 Nov 2014 19:02:57 +0000 (UTC)
commit 1087e9d0ba10a91aa7ae54d2e8c3a145846aee5d
Author: Milan Crha <mcrha redhat com>
Date: Wed Nov 19 20:00:21 2014 +0100
Bug 736947 - Attachment icon not shown in Sent folder
libemail-engine/e-mail-session-utils.c | 3 ++-
libemail-engine/mail-ops.c | 20 +++++++++++++++++++-
mail/em-composer-utils.c | 4 ++--
3 files changed, 23 insertions(+), 4 deletions(-)
---
diff --git a/libemail-engine/e-mail-session-utils.c b/libemail-engine/e-mail-session-utils.c
index 524b09d..a248eac 100644
--- a/libemail-engine/e-mail-session-utils.c
+++ b/libemail-engine/e-mail-session-utils.c
@@ -878,7 +878,8 @@ e_mail_session_send_to (EMailSession *session,
NULL, CAMEL_MIME_PART (message)->headers);
((CamelMessageInfoBase *) info)->size =
get_message_size (message, cancellable);
- camel_message_info_set_flags (info, CAMEL_MESSAGE_SEEN, ~0);
+ camel_message_info_set_flags (info, CAMEL_MESSAGE_SEEN |
+ (camel_mime_message_has_attachment (message) ? CAMEL_MESSAGE_ATTACHMENTS : 0), ~0);
/* expand, or remove empty, group addresses */
em_utils_expand_groups (CAMEL_INTERNET_ADDRESS (recipients));
diff --git a/libemail-engine/mail-ops.c b/libemail-engine/mail-ops.c
index df0b6d0..969fbcb 100644
--- a/libemail-engine/mail-ops.c
+++ b/libemail-engine/mail-ops.c
@@ -569,6 +569,22 @@ static void report_status (struct _send_queue_msg *m,
const gchar *desc,
...);
+static guint32
+get_message_size (CamelMimeMessage *message,
+ GCancellable *cancellable)
+{
+ CamelStream *null;
+ guint32 size;
+
+ null = camel_stream_null_new ();
+ camel_data_wrapper_write_to_stream_sync (
+ CAMEL_DATA_WRAPPER (message), null, cancellable, NULL);
+ size = CAMEL_STREAM_NULL (null)->written;
+ g_object_unref (null);
+
+ return size;
+}
+
/* send 1 message to a specific transport */
static void
mail_send_message (struct _send_queue_msg *m,
@@ -666,7 +682,9 @@ mail_send_message (struct _send_queue_msg *m,
/* Now check for posting, failures are ignored */
info = camel_message_info_new (NULL);
- camel_message_info_set_flags (info, CAMEL_MESSAGE_SEEN, ~0);
+ ((CamelMessageInfoBase *) info)->size = get_message_size (message, cancellable);
+ camel_message_info_set_flags (info, CAMEL_MESSAGE_SEEN |
+ (camel_mime_message_has_attachment (message) ? CAMEL_MESSAGE_ATTACHMENTS : 0), ~0);
for (header = xev; header && !local_error; header = header->next) {
gchar *uri;
diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c
index 302b473..98b392f 100644
--- a/mail/em-composer-utils.c
+++ b/mail/em-composer-utils.c
@@ -795,8 +795,8 @@ composer_save_to_drafts_append_mail (AsyncContext *async_context,
info = camel_message_info_new (NULL);
- camel_message_info_set_flags (
- info, CAMEL_MESSAGE_DRAFT | CAMEL_MESSAGE_SEEN, ~0);
+ camel_message_info_set_flags (info, CAMEL_MESSAGE_DRAFT | CAMEL_MESSAGE_SEEN |
+ (camel_mime_message_has_attachment (async_context->message) ? CAMEL_MESSAGE_ATTACHMENTS : 0),
~0);
camel_medium_remove_header (
CAMEL_MEDIUM (async_context->message),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]