diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2013-07-15 22:38:11 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2013-07-18 00:08:46 +0800 |
commit | c36aa6b7498ac73a77624533516b010f5701f08b (patch) | |
tree | 8fbe15ebb84ad3e5ea1785bf203c09bddc17d803 /mail/em-folder-tree-model.c | |
parent | 4de572679748a0586b9a9c3bf34c40ea5102e826 (diff) | |
download | gsoc2013-evolution-c36aa6b7498ac73a77624533516b010f5701f08b.tar gsoc2013-evolution-c36aa6b7498ac73a77624533516b010f5701f08b.tar.gz gsoc2013-evolution-c36aa6b7498ac73a77624533516b010f5701f08b.tar.bz2 gsoc2013-evolution-c36aa6b7498ac73a77624533516b010f5701f08b.tar.lz gsoc2013-evolution-c36aa6b7498ac73a77624533516b010f5701f08b.tar.xz gsoc2013-evolution-c36aa6b7498ac73a77624533516b010f5701f08b.tar.zst gsoc2013-evolution-c36aa6b7498ac73a77624533516b010f5701f08b.zip |
Add mail_folder_cache_ref_folder().
Replaces mail_folder_cache_get_folder_from_uri().
Returns the CamelFolder for the CamelStore and folder name if available,
or else NULL if a CamelFolder instance is not yet cached. This function
does not block.
Diffstat (limited to 'mail/em-folder-tree-model.c')
-rw-r--r-- | mail/em-folder-tree-model.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/mail/em-folder-tree-model.c b/mail/em-folder-tree-model.c index eaa6b92342..66f292695b 100644 --- a/mail/em-folder-tree-model.c +++ b/mail/em-folder-tree-model.c @@ -748,22 +748,23 @@ em_folder_tree_model_set_folder_info (EMFolderTreeModel *model, /* XXX This is duplicated in mail-folder-cache too, should perhaps * be functionised. */ unread = fi->unread; - if (mail_folder_cache_get_folder_from_uri ( - folder_cache, uri, &folder) && folder) { + folder = mail_folder_cache_ref_folder ( + folder_cache, si->store, fi->full_name); + if (folder != NULL) { folder_is_drafts = em_utils_folder_is_drafts (registry, folder); folder_is_outbox = em_utils_folder_is_outbox (registry, folder); if (folder_is_drafts || folder_is_outbox) { gint total; + gint deleted; - if ((total = camel_folder_get_message_count (folder)) > 0) { - gint deleted = camel_folder_get_deleted_message_count (folder); + total = camel_folder_get_message_count (folder); + deleted = camel_folder_get_deleted_message_count (folder); - if (deleted != -1) - total -= deleted; - } + if (total > 0 && deleted != -1) + total -= deleted; - unread = total > 0 ? total : 0; + unread = MAX (total, 0); } g_object_unref (folder); |