diff options
author | Milan Crha <mcrha@redhat.com> | 2009-10-27 21:01:10 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2009-10-27 21:01:10 +0800 |
commit | 555c178a7d52ae4aa5a52fa78bbbc0f70f4cc576 (patch) | |
tree | 938d1b7f190318d9e40b295df7c8c411da608b34 /mail/mail-ops.c | |
parent | d00a56d4cc6f3185004f6babdb1a5f7aad729b5e (diff) | |
download | gsoc2013-evolution-555c178a7d52ae4aa5a52fa78bbbc0f70f4cc576.tar.gz gsoc2013-evolution-555c178a7d52ae4aa5a52fa78bbbc0f70f4cc576.tar.zst gsoc2013-evolution-555c178a7d52ae4aa5a52fa78bbbc0f70f4cc576.zip |
Bug #571039 - Shows all selected messages in a preview pane on a slow network
Diffstat (limited to 'mail/mail-ops.c')
-rw-r--r-- | mail/mail-ops.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/mail/mail-ops.c b/mail/mail-ops.c index 0f17dc2a4a..a251c871a9 100644 --- a/mail/mail-ops.c +++ b/mail/mail-ops.c @@ -1836,7 +1836,10 @@ get_message_desc (struct _get_message_msg *m) static void get_message_exec (struct _get_message_msg *m) { - m->message = camel_folder_get_message(m->folder, m->uid, &m->base.ex); + if (m->base.cancel && camel_operation_cancel_check (m->base.cancel)) + m->message = NULL; + else + m->message = camel_folder_get_message (m->folder, m->uid, &m->base.ex); } static void @@ -1865,12 +1868,13 @@ static MailMsgInfo get_message_info = { (MailMsgFreeFunc) get_message_free }; -void +gint mail_get_message(CamelFolder *folder, const gchar *uid, void (*done) (CamelFolder *folder, const gchar *uid, CamelMimeMessage *msg, gpointer data), gpointer data, MailMsgDispatchFunc dispatch) { struct _get_message_msg *m; + gint id; m = mail_msg_new(&get_message_info); m->folder = folder; @@ -1879,8 +1883,11 @@ mail_get_message(CamelFolder *folder, const gchar *uid, void (*done) (CamelFolde m->data = data; m->done = (void (*) (CamelFolder *, const gchar *, CamelMimeMessage *, gpointer )) done; m->cancel = camel_operation_new(NULL, NULL); + id = m->base.seq; dispatch (m); + + return id; } typedef void (*get_done)(CamelFolder *folder, const gchar *uid, CamelMimeMessage *msg, gpointer data, CamelException *); @@ -1904,11 +1911,12 @@ static MailMsgInfo get_messagex_info = { /* This is temporary, to avoid having to rewrite everything that uses mail_get_message; it adds an exception argument to the callback */ -CamelOperation * +gint mail_get_messagex(CamelFolder *folder, const gchar *uid, void (*done) (CamelFolder *folder, const gchar *uid, CamelMimeMessage *msg, gpointer data, CamelException *), gpointer data, MailMsgDispatchFunc dispatch) { struct _get_message_msg *m; + gint id; m = mail_msg_new(&get_messagex_info); m->folder = folder; @@ -1917,10 +1925,11 @@ mail_get_messagex(CamelFolder *folder, const gchar *uid, void (*done) (CamelFold m->data = data; m->done = (void (*) (CamelFolder *, const gchar *, CamelMimeMessage *, gpointer )) done; m->cancel = camel_operation_new(NULL, NULL); + id = m->base.seq; dispatch (m); - return m->cancel; + return id; } /* ********************************************************************** */ @@ -1991,12 +2000,13 @@ static MailMsgInfo get_messages_info = { (MailMsgFreeFunc) get_messages_free }; -void +gint mail_get_messages(CamelFolder *folder, GPtrArray *uids, void (*done) (CamelFolder *folder, GPtrArray *uids, GPtrArray *msgs, gpointer data), gpointer data) { struct _get_messages_msg *m; + gint id; m = mail_msg_new(&get_messages_info); m->folder = folder; @@ -2005,8 +2015,11 @@ mail_get_messages(CamelFolder *folder, GPtrArray *uids, m->messages = g_ptr_array_new(); m->data = data; m->done = done; + id = m->base.seq; mail_msg_unordered_push (m); + + return id; } /* ** SAVE MESSAGES ******************************************************* */ |