[evolution] Bug 677679 - Folder tree unread counts don't decrease
- From: Matthew Barnes <mbarnes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] Bug 677679 - Folder tree unread counts don't decrease
- Date: Tue, 12 Jun 2012 12:15:36 +0000 (UTC)
commit e0f7944148203fd62cf9af97e913ed0f88f4529e
Author: Matthew Barnes <mbarnes redhat com>
Date: Tue Jun 12 08:13:44 2012 -0400
Bug 677679 - Folder tree unread counts don't decrease
EMailAccountStore was not keeping MailFolderCache informed about
added, removed, enabled, or disabled CamelServices.
mail/e-mail-account-store.c | 26 ++++++++++++++++++++++----
1 files changed, 22 insertions(+), 4 deletions(-)
---
diff --git a/mail/e-mail-account-store.c b/mail/e-mail-account-store.c
index 329cb13..aabb13e 100644
--- a/mail/e-mail-account-store.c
+++ b/mail/e-mail-account-store.c
@@ -483,7 +483,13 @@ static void
mail_account_store_service_added (EMailAccountStore *store,
CamelService *service)
{
- /* Placeholder so subclasses can safely chain up. */
+ EMailSession *session;
+ MailFolderCache *cache;
+
+ session = e_mail_account_store_get_session (store);
+ cache = e_mail_session_get_folder_cache (session);
+
+ mail_folder_cache_service_added (cache, service);
}
static void
@@ -491,14 +497,18 @@ mail_account_store_service_removed (EMailAccountStore *store,
CamelService *service)
{
EMailSession *session;
+ MailFolderCache *cache;
ESourceRegistry *registry;
ESource *source;
const gchar *uid;
session = e_mail_account_store_get_session (store);
- registry = e_mail_session_get_registry (session);
+ cache = e_mail_session_get_folder_cache (session);
+
+ mail_folder_cache_service_removed (cache, service);
uid = camel_service_get_uid (service);
+ registry = e_mail_session_get_registry (session);
source = e_source_registry_ref_source (registry, uid);
/* If this ESource is part of a collection, we need to remove
@@ -534,14 +544,18 @@ mail_account_store_service_enabled (EMailAccountStore *store,
CamelService *service)
{
EMailSession *session;
+ MailFolderCache *cache;
ESourceRegistry *registry;
ESource *source;
const gchar *uid;
session = e_mail_account_store_get_session (store);
- registry = e_mail_session_get_registry (session);
+ cache = e_mail_session_get_folder_cache (session);
+
+ mail_folder_cache_service_enabled (cache, service);
uid = camel_service_get_uid (service);
+ registry = e_mail_session_get_registry (session);
source = e_source_registry_ref_source (registry, uid);
/* Locate the identity source referenced in the [Mail Account]
@@ -611,14 +625,18 @@ mail_account_store_service_disabled (EMailAccountStore *store,
CamelService *service)
{
EMailSession *session;
+ MailFolderCache *cache;
ESourceRegistry *registry;
ESource *source;
const gchar *uid;
session = e_mail_account_store_get_session (store);
- registry = e_mail_session_get_registry (session);
+ cache = e_mail_session_get_folder_cache (session);
+
+ mail_folder_cache_service_disabled (cache, service);
uid = camel_service_get_uid (service);
+ registry = e_mail_session_get_registry (session);
source = e_source_registry_ref_source (registry, uid);
/* Locate the identity source referenced in the [Mail Account]
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]