From a67574e9e1d2bcf1608c16d332f68665ef0198fd Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 16 Feb 2013 14:57:16 -0500 Subject: ECalShellSidebar: Use EClientCache to determine refresh support. In cal_shell_sidebar_check_state(), determine whether the selected source supports refresh by way of e_client_cache_ref_cached_client() and e_client_check_refresh_supported(). --- modules/calendar/e-cal-shell-sidebar.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/modules/calendar/e-cal-shell-sidebar.c b/modules/calendar/e-cal-shell-sidebar.c index f3f5e0801e..49245a3c31 100644 --- a/modules/calendar/e-cal-shell-sidebar.c +++ b/modules/calendar/e-cal-shell-sidebar.c @@ -687,7 +687,7 @@ cal_shell_sidebar_check_state (EShellSidebar *shell_sidebar) if (source != NULL) { EClient *client; ESource *collection; - const gchar *uid; + EClientCache *client_cache; has_primary_source = TRUE; is_writable = e_source_get_writable (source); @@ -702,12 +702,17 @@ cal_shell_sidebar_check_state (EShellSidebar *shell_sidebar) g_object_unref (collection); } - uid = e_source_get_uid (source); - client = g_hash_table_lookup ( - cal_shell_sidebar->priv->client_table, uid); - refresh_supported = - client != NULL && - e_client_check_refresh_supported (client); + client_cache = cal_shell_sidebar_ref_client_cache ( + E_CAL_SHELL_SIDEBAR (shell_sidebar)); + client = e_client_cache_ref_cached_client ( + client_cache, source, E_SOURCE_EXTENSION_CALENDAR); + g_object_unref (client_cache); + + if (client != NULL) { + refresh_supported = + e_client_check_refresh_supported (client); + g_object_unref (client); + } g_object_unref (source); } -- cgit v1.2.3