From 069ea90d576f51be526cdcc547aed69c6ffedacf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erick=20P=C3=A9rez=20Castellanos?= Date: Mon, 15 Dec 2014 13:34:53 -0500 Subject: [PATCH] manager: implement ::enable/disable methods --- src/gcal-manager.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/gcal-manager.c b/src/gcal-manager.c index 12cf9b5b..f082e651 100644 --- a/src/gcal-manager.c +++ b/src/gcal-manager.c @@ -658,8 +658,15 @@ void gcal_manager_enable_source (GcalManager *manager, ESource *source) { - /* TODO: implement me */ - ; + GcalManagerPrivate *priv; + GcalManagerUnit *unit; + + priv = gcal_manager_get_instance_private (manager); + unit = g_hash_table_lookup (priv->clients, source); + + unit->enabled = TRUE; + e_cal_data_model_add_client (priv->e_data_model, unit->client); + e_cal_data_model_add_client (priv->search_data_model, unit->client); } /** @@ -673,8 +680,15 @@ void gcal_manager_disable_source (GcalManager *manager, ESource *source) { - /* TODO: implement me */ - ; + GcalManagerPrivate *priv; + GcalManagerUnit *unit; + + priv = gcal_manager_get_instance_private (manager); + unit = g_hash_table_lookup (priv->clients, source); + + unit->enabled = FALSE; + e_cal_data_model_remove_client (priv->e_data_model, e_source_get_uid (source)); + e_cal_data_model_remove_client (priv->search_data_model, e_source_get_uid (source)); } void