diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2009-07-01 22:47:10 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2009-07-01 22:47:10 +0800 |
commit | 1351c8e4fb443a9705bb1225c3c574c05a36f8ca (patch) | |
tree | e049bafefac361ae66dfa43abdb956f1f3a730e0 /plugins/itip-formatter | |
parent | 624f48121f523101fe26c3d3a8b51a4eeda90990 (diff) | |
parent | 42e75c9162402078ac629740821c3533925ee342 (diff) | |
download | gsoc2013-evolution-1351c8e4fb443a9705bb1225c3c574c05a36f8ca.tar gsoc2013-evolution-1351c8e4fb443a9705bb1225c3c574c05a36f8ca.tar.gz gsoc2013-evolution-1351c8e4fb443a9705bb1225c3c574c05a36f8ca.tar.bz2 gsoc2013-evolution-1351c8e4fb443a9705bb1225c3c574c05a36f8ca.tar.lz gsoc2013-evolution-1351c8e4fb443a9705bb1225c3c574c05a36f8ca.tar.xz gsoc2013-evolution-1351c8e4fb443a9705bb1225c3c574c05a36f8ca.tar.zst gsoc2013-evolution-1351c8e4fb443a9705bb1225c3c574c05a36f8ca.zip |
Merge branch 'master' into kill-bonobo
Diffstat (limited to 'plugins/itip-formatter')
-rw-r--r-- | plugins/itip-formatter/itip-formatter.c | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/plugins/itip-formatter/itip-formatter.c b/plugins/itip-formatter/itip-formatter.c index ed406d9bd2..558d514f86 100644 --- a/plugins/itip-formatter/itip-formatter.c +++ b/plugins/itip-formatter/itip-formatter.c @@ -35,6 +35,7 @@ #include <camel/camel-mime-utils.h> #include <camel/camel-mime-message.h> #include <camel/camel-folder.h> +#include <camel/camel-vee-folder.h> #include <camel/camel-multipart.h> #include <camel/camel-service.h> #include <camel/camel-store.h> @@ -48,6 +49,7 @@ #include <mail/em-format.h> #include <mail/em-format-html.h> #include <mail/em-utils.h> +#include <mail/mail-folder-cache.h> #include <mail/mail-tools.h> #include <mail/mail-mt.h> #include <libedataserver/e-account-list.h> @@ -2019,6 +2021,7 @@ static gboolean in_proper_folder (CamelFolder *folder) { gboolean res = TRUE; + gint flags = 0; gchar *uri; if (!folder) @@ -2026,10 +2029,27 @@ in_proper_folder (CamelFolder *folder) uri = mail_tools_folder_to_url (folder); - res = !(folder->folder_flags & CAMEL_FOLDER_IS_TRASH) && - !em_utils_folder_is_sent (folder, uri) && - !em_utils_folder_is_outbox (folder, uri) && - !em_utils_folder_is_drafts (folder, uri); + if (mail_folder_cache_get_folder_info_flags (folder, &flags)) { + /* it should be neither trash nor junk folder, */ + res = ((flags & CAMEL_FOLDER_TYPE_TRASH) != CAMEL_FOLDER_TYPE_TRASH && + (flags & CAMEL_FOLDER_TYPE_JUNK) != CAMEL_FOLDER_TYPE_JUNK && + /* it can be Inbox */ + ( (flags & CAMEL_FOLDER_TYPE_INBOX) == CAMEL_FOLDER_TYPE_INBOX || + /* or any other virtual folder */ + CAMEL_IS_VEE_FOLDER (folder) || + /* or anything else except of sent, outbox or drafts folder */ + (!em_utils_folder_is_sent (folder, uri) && + !em_utils_folder_is_outbox (folder, uri) && + !em_utils_folder_is_drafts (folder, uri)) + )); + } else { + /* cannot check for Inbox folder here */ + res = (folder->folder_flags & (CAMEL_FOLDER_IS_TRASH | CAMEL_FOLDER_IS_JUNK)) == 0 && ( + (CAMEL_IS_VEE_FOLDER (folder)) || ( + !em_utils_folder_is_sent (folder, uri) && + !em_utils_folder_is_outbox (folder, uri) && + !em_utils_folder_is_drafts (folder, uri))); + } g_free (uri); |