diff options
Diffstat (limited to 'calendar/gui/calendar-component.c')
-rw-r--r-- | calendar/gui/calendar-component.c | 186 |
1 files changed, 0 insertions, 186 deletions
diff --git a/calendar/gui/calendar-component.c b/calendar/gui/calendar-component.c index 3b17466682..12a946418c 100644 --- a/calendar/gui/calendar-component.c +++ b/calendar/gui/calendar-component.c @@ -145,191 +145,6 @@ calcomp_vpane_resized (GtkWidget *vpane, GdkEventButton *e, CalendarComponentVie return FALSE; } -static void -ensure_sources (CalendarComponent *component) -{ - GSList *groups; - ESourceList *source_list; - ESourceGroup *group; - ESourceGroup *on_this_computer; - ESourceGroup *on_the_web; - ESourceGroup *contacts; - ESourceGroup *weather; - ESource *personal_source; - ESource *birthdays_source; - char *base_uri, *base_uri_proto; - const gchar *base_dir; - gchar *create_source; - - on_this_computer = NULL; - on_the_web = NULL; - contacts = NULL; - weather = NULL; - personal_source = NULL; - birthdays_source = NULL; - - if (!e_cal_get_sources (&source_list, E_CAL_SOURCE_TYPE_EVENT, NULL)) { - g_warning ("Could not get calendar source list from GConf!"); - return; - } - - base_dir = calendar_component_peek_base_directory (component); - base_uri = g_build_filename (base_dir, "local", NULL); - - base_uri_proto = g_filename_to_uri (base_uri, NULL, NULL); - - groups = e_source_list_peek_groups (source_list); - if (groups) { - /* groups are already there, we need to search for things... */ - GSList *g; - - for (g = groups; g; g = g->next) { - - group = E_SOURCE_GROUP (g->data); - - /* compare only file:// part. If user home dir name changes we do not want to create - one more group */ - - if (!on_this_computer && !strncmp (base_uri_proto, e_source_group_peek_base_uri (group), 7)) - on_this_computer = group; - else if (!on_the_web && !strcmp (WEB_BASE_URI, e_source_group_peek_base_uri (group))) - on_the_web = group; - else if (!contacts && !strcmp (CONTACTS_BASE_URI, e_source_group_peek_base_uri (group))) - contacts = group; - else if (!weather && !strcmp (WEATHER_BASE_URI, e_source_group_peek_base_uri (group))) - weather = group; - } - } - - if (on_this_computer) { - /* make sure "Personal" shows up as a source under - this group */ - GSList *sources = e_source_group_peek_sources (on_this_computer); - GSList *s; - for (s = sources; s; s = s->next) { - ESource *source = E_SOURCE (s->data); - const gchar *relative_uri; - - relative_uri = e_source_peek_relative_uri (source); - if (relative_uri == NULL) - continue; - if (!strcmp (PERSONAL_RELATIVE_URI, relative_uri)) { - personal_source = source; - break; - } - } - /* Make sure we have the correct base uri. This can change when user's - homedir name changes */ - if (strcmp (base_uri_proto, e_source_group_peek_base_uri (on_this_computer))) { - e_source_group_set_base_uri (on_this_computer, base_uri_proto); - - /* *sigh* . We shouldn't need this sync call here as set_base_uri - call results in synching to gconf, but that happens in idle loop - and too late to prevent user seeing "Can not Open ... because of invalid uri" error.*/ - e_source_list_sync (source_list,NULL); - } - } - else { - /* create the local source group */ - group = e_source_group_new (_("On This Computer"), base_uri_proto); - e_source_list_add_group (source_list, group, -1); - - on_this_computer = group; - } - - if (!personal_source) { - char *primary_calendar = calendar_config_get_primary_calendar(); - GSList *calendars_selected; - - /* Create the default Person addressbook */ - personal_source = e_source_new (_("Personal"), PERSONAL_RELATIVE_URI); - e_source_group_add_source (on_this_computer, personal_source, -1); - g_object_unref (personal_source); - - calendars_selected = calendar_config_get_calendars_selected (); - if (!primary_calendar && !calendars_selected) { - GSList selected; - - calendar_config_set_primary_calendar (e_source_peek_uid (personal_source)); - - selected.data = (gpointer)e_source_peek_uid (personal_source); - selected.next = NULL; - calendar_config_set_calendars_selected (&selected); - } - - if (calendars_selected) { - g_slist_foreach (calendars_selected, (GFunc) g_free, NULL); - g_slist_free (calendars_selected); - } - - g_free (primary_calendar); - e_source_set_color_spec (personal_source, "#BECEDD"); - } - - if (!on_the_web) { - /* Create the On the web source group */ - group = e_source_group_new (_("On The Web"), WEB_BASE_URI); - e_source_list_add_group (source_list, group, -1); - - on_the_web = group; - } - if (contacts) { - GSList *sources = e_source_group_peek_sources (contacts); - if (sources) { - birthdays_source = E_SOURCE (sources->data); /* There is only one source under Contacts Group*/ - - if (sources->next) { - /* Ensure we have only one contacts source - we was able to create more than one before */ - GSList *l = NULL, *p; - - for (p = sources->next; p; p = p->next) - l = g_slist_prepend (l, p->data); - - for (p = l; p; p = p->next) - e_source_group_remove_source (contacts, p->data); - - g_slist_free (l); - } - } - } - else { - /* Create the contacts group */ - group = e_source_group_new (_("Contacts"), CONTACTS_BASE_URI); - e_source_list_add_group (source_list, group, -1); - contacts = group; - } - - create_source = e_source_group_get_property (contacts, "create_source"); - if (!create_source) - e_source_group_set_property (contacts, "create_source", "no"); - g_free (create_source); - - if (!birthdays_source) { - birthdays_source = e_source_new (_("Birthdays & Anniversaries"), "/"); - e_source_group_add_source (contacts, birthdays_source, -1); - g_object_unref (birthdays_source); - } - - if (!e_source_get_property (birthdays_source, "delete")) - e_source_set_property(birthdays_source, "delete", "no"); - - if (e_source_peek_color_spec (birthdays_source) == NULL) - e_source_set_color_spec (birthdays_source, "#DDBECE"); - - if (!weather) { - /* Create the weather group */ - group = e_source_group_new (_("Weather"), WEATHER_BASE_URI); - e_source_list_add_group (source_list, group, -1); - weather = group; - } - - component->priv->source_list = source_list; - - g_free (base_uri_proto); - g_free (base_uri); -} - - /* Utility functions. */ static gboolean @@ -1694,7 +1509,6 @@ calendar_component_init (CalendarComponent *component) priv->notifications = g_list_prepend (priv->notifications, GUINT_TO_POINTER (not)); component->priv = priv; - ensure_sources (component); if (!e_cal_get_sources (&priv->task_source_list, E_CAL_SOURCE_TYPE_TODO, NULL)) ; |