From b1562e75b0a51346d4a80d9799319b04ddf99cd1 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Fri, 15 Jun 2012 12:30:12 -0400 Subject: cal-config-caldav: Hide host details for collection members. --- .../evolution-cal-config-caldav.c | 34 +++++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) (limited to 'modules/cal-config-caldav') diff --git a/modules/cal-config-caldav/evolution-cal-config-caldav.c b/modules/cal-config-caldav/evolution-cal-config-caldav.c index f6da2dfec9..2f38c4622e 100644 --- a/modules/cal-config-caldav/evolution-cal-config-caldav.c +++ b/modules/cal-config-caldav/evolution-cal-config-caldav.c @@ -209,6 +209,7 @@ cal_config_caldav_insert_widgets (ESourceConfigBackend *backend, ESource *scratch_source) { ESourceConfig *config; + ESource *collection_source; ESourceExtension *extension; ECalClientSourceType source_type; GtkWidget *widget; @@ -218,20 +219,26 @@ cal_config_caldav_insert_widgets (ESourceConfigBackend *backend, const gchar *label; const gchar *uid; - context = cal_config_caldav_context_new (backend, scratch_source); - uid = e_source_get_uid (scratch_source); config = e_source_config_backend_get_config (backend); + collection_source = e_source_config_get_collection_source (config); + + e_cal_source_config_add_offline_toggle ( + E_CAL_SOURCE_CONFIG (config), scratch_source); + + /* If this data source is a collection member, + * just add a refresh interval and skip the rest. */ + if (collection_source != NULL) { + e_source_config_add_refresh_interval (config, scratch_source); + return; + } + + uid = e_source_get_uid (scratch_source); + context = cal_config_caldav_context_new (backend, scratch_source); g_object_set_data_full ( G_OBJECT (backend), uid, context, (GDestroyNotify) cal_config_caldav_context_free); - source_type = e_cal_source_config_get_source_type ( - E_CAL_SOURCE_CONFIG (config)); - - e_cal_source_config_add_offline_toggle ( - E_CAL_SOURCE_CONFIG (config), scratch_source); - widget = gtk_entry_new (); e_source_config_insert_widget ( config, scratch_source, _("Server:"), widget); @@ -254,6 +261,9 @@ cal_config_caldav_insert_widgets (ESourceConfigBackend *backend, e_source_config_add_user_entry (config, scratch_source); + source_type = e_cal_source_config_get_source_type ( + E_CAL_SOURCE_CONFIG (config)); + switch (source_type) { case E_CAL_CLIENT_SOURCE_TYPE_EVENTS: label = _("Find Calendars"); @@ -325,10 +335,18 @@ static gboolean cal_config_caldav_check_complete (ESourceConfigBackend *backend, ESource *scratch_source) { + ESourceConfig *config; + ESource *collection_source; Context *context; const gchar *uid; gboolean complete; + config = e_source_config_backend_get_config (backend); + collection_source = e_source_config_get_collection_source (config); + + if (collection_source != NULL) + return TRUE; + uid = e_source_get_uid (scratch_source); context = g_object_get_data (G_OBJECT (backend), uid); g_return_val_if_fail (context != NULL, FALSE); -- cgit v1.2.3