diff options
author | Milan Crha <mcrha@redhat.com> | 2012-02-07 19:57:29 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2012-02-07 19:57:29 +0800 |
commit | 5483b65b5e2212383b4ecf9a8fe9ef958ef582ad (patch) | |
tree | bf9a1f91a6964e6258656f19cd518b30103402b0 /mail/em-folder-properties.c | |
parent | 22281b32d33694e763ea6c793e2bb2007709fb63 (diff) | |
download | gsoc2013-evolution-5483b65b5e2212383b4ecf9a8fe9ef958ef582ad.tar.gz gsoc2013-evolution-5483b65b5e2212383b4ecf9a8fe9ef958ef582ad.tar.zst gsoc2013-evolution-5483b65b5e2212383b4ecf9a8fe9ef958ef582ad.zip |
Bug #309945 - Ability to filter folders other than INBOX too
Diffstat (limited to 'mail/em-folder-properties.c')
-rw-r--r-- | mail/em-folder-properties.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/mail/em-folder-properties.c b/mail/em-folder-properties.c index 2abb1f366d..5bd75cf61e 100644 --- a/mail/em-folder-properties.c +++ b/mail/em-folder-properties.c @@ -126,6 +126,7 @@ emfp_get_folder_item (EConfig *ec, AsyncContext *context = data; guint ii, n_properties; gint row = 0; + gboolean can_apply_filters = FALSE; if (old) return old; @@ -188,6 +189,21 @@ emfp_get_folder_item (EConfig *ec, } } + if (context->folder) { + CamelStore *store; + CamelSession *session; + CamelFolderInfoFlags fi_flags = 0; + MailFolderCache *folder_cache; + + store = camel_folder_get_parent_store (context->folder); + session = camel_service_get_session (CAMEL_SERVICE (store)); + folder_cache = e_mail_session_get_folder_cache (E_MAIL_SESSION (session)); + + can_apply_filters = !CAMEL_IS_VEE_FOLDER (context->folder) && + mail_folder_cache_get_folder_info_flags (folder_cache, context->folder, &fi_flags) && + (fi_flags & CAMEL_FOLDER_TYPE_MASK) != CAMEL_FOLDER_TYPE_INBOX; + } + class = G_OBJECT_GET_CLASS (context->folder); properties = g_object_class_list_properties (class, &n_properties); @@ -197,6 +213,10 @@ emfp_get_folder_item (EConfig *ec, if ((properties[ii]->flags & CAMEL_PARAM_PERSISTENT) == 0) continue; + if (!can_apply_filters && + g_strcmp0 (properties[ii]->name, "apply-filters") == 0) + continue; + blurb = g_param_spec_get_blurb (properties[ii]); switch (properties[ii]->value_type) { |