diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2013-07-16 03:05:08 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2013-07-18 00:08:46 +0800 |
commit | 060bb076625dba3aad86485014d49a348cf13671 (patch) | |
tree | dd32838d9ead76aa5c9794aaa7881c84bf153e96 /mail | |
parent | c36aa6b7498ac73a77624533516b010f5701f08b (diff) | |
download | gsoc2013-evolution-060bb076625dba3aad86485014d49a348cf13671.tar.gz gsoc2013-evolution-060bb076625dba3aad86485014d49a348cf13671.tar.zst gsoc2013-evolution-060bb076625dba3aad86485014d49a348cf13671.zip |
mail_folder_cache_get_folder_info_flags: Change parameters.
Take a CamelStore and folder name instead of a CamelFolder.
CamelStore and folder name can easily be obtained from either a folder
URI or a CamelFolder instance, and the function is more efficient with
separate parameters.
Diffstat (limited to 'mail')
-rw-r--r-- | mail/e-mail-backend.c | 14 | ||||
-rw-r--r-- | mail/e-mail-reader-utils.c | 2 | ||||
-rw-r--r-- | mail/em-folder-properties.c | 10 |
3 files changed, 11 insertions, 15 deletions
diff --git a/mail/e-mail-backend.c b/mail/e-mail-backend.c index c2952daffd..b7fb84735e 100644 --- a/mail/e-mail-backend.c +++ b/mail/e-mail-backend.c @@ -673,24 +673,14 @@ mail_backend_folder_changed_cb (MailFolderCache *folder_cache, EMEvent *event = em_event_peek (); EMEventTargetFolder *target; EMFolderTreeModel *model; - CamelFolder *folder; gchar *folder_uri; gint folder_type; CamelFolderInfoFlags flags = 0; folder_uri = e_mail_folder_uri_build (store, folder_name); - folder = mail_folder_cache_ref_folder ( - folder_cache, store, folder_name); - if (folder != NULL) { - /* XXX Need to rethink this API. Why should we - * need the CamelFolder instance just to get - * folder flags? The flags are more readily - * available than the CamelFolder instance. */ - mail_folder_cache_get_folder_info_flags ( - folder_cache, folder, &flags); - g_object_unref (folder); - } + mail_folder_cache_get_folder_info_flags ( + folder_cache, store, folder_name, &flags); target = em_event_target_new_folder ( event, store, folder_uri, new_messages, diff --git a/mail/e-mail-reader-utils.c b/mail/e-mail-reader-utils.c index 2a3c4c6a8c..acd52950c8 100644 --- a/mail/e-mail-reader-utils.c +++ b/mail/e-mail-reader-utils.c @@ -260,7 +260,7 @@ e_mail_reader_delete_folder (EMailReader *reader, } have_flags = mail_folder_cache_get_folder_info_flags ( - folder_cache, folder, &flags); + folder_cache, parent_store, full_name, &flags); if (have_flags && (flags & CAMEL_FOLDER_SYSTEM)) { e_alert_submit ( diff --git a/mail/em-folder-properties.c b/mail/em-folder-properties.c index 526dc89068..d50888fea9 100644 --- a/mail/em-folder-properties.c +++ b/mail/em-folder-properties.c @@ -193,18 +193,24 @@ emfp_get_folder_item (EConfig *ec, CamelStore *store; CamelSession *session; CamelFolderInfoFlags fi_flags = 0; + const gchar *folder_name; MailFolderCache *folder_cache; + gboolean have_flags; store = camel_folder_get_parent_store (context->folder); + folder_name = camel_folder_get_full_name (context->folder); + session = camel_service_ref_session (CAMEL_SERVICE (store)); folder_cache = e_mail_session_get_folder_cache ( E_MAIL_SESSION (session)); + have_flags = mail_folder_cache_get_folder_info_flags ( + folder_cache, store, folder_name, &fi_flags); + can_apply_filters = !CAMEL_IS_VEE_FOLDER (context->folder) && - mail_folder_cache_get_folder_info_flags ( - folder_cache, context->folder, &fi_flags) && + have_flags && (fi_flags & CAMEL_FOLDER_TYPE_MASK) != CAMEL_FOLDER_TYPE_INBOX; g_object_unref (session); |