aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2013-07-16 03:05:08 +0800
committerMatthew Barnes <mbarnes@redhat.com>2013-07-18 00:08:46 +0800
commit060bb076625dba3aad86485014d49a348cf13671 (patch)
treedd32838d9ead76aa5c9794aaa7881c84bf153e96 /mail
parentc36aa6b7498ac73a77624533516b010f5701f08b (diff)
downloadgsoc2013-evolution-060bb076625dba3aad86485014d49a348cf13671.tar
gsoc2013-evolution-060bb076625dba3aad86485014d49a348cf13671.tar.gz
gsoc2013-evolution-060bb076625dba3aad86485014d49a348cf13671.tar.bz2
gsoc2013-evolution-060bb076625dba3aad86485014d49a348cf13671.tar.lz
gsoc2013-evolution-060bb076625dba3aad86485014d49a348cf13671.tar.xz
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.c14
-rw-r--r--mail/e-mail-reader-utils.c2
-rw-r--r--mail/em-folder-properties.c10
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);