diff options
author | Milan Crha <mcrha@redhat.com> | 2009-04-25 01:40:31 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2009-04-25 01:40:31 +0800 |
commit | 2403bbcdd196745314786af3b6318de56ef3948e (patch) | |
tree | a40b172dec814a8f7c214979c7735a46d2c73c08 | |
parent | 23df769955ea54f756a579c19964df87ae6fd5c8 (diff) | |
download | gsoc2013-evolution-2403bbcdd196745314786af3b6318de56ef3948e.tar gsoc2013-evolution-2403bbcdd196745314786af3b6318de56ef3948e.tar.gz gsoc2013-evolution-2403bbcdd196745314786af3b6318de56ef3948e.tar.bz2 gsoc2013-evolution-2403bbcdd196745314786af3b6318de56ef3948e.tar.lz gsoc2013-evolution-2403bbcdd196745314786af3b6318de56ef3948e.tar.xz gsoc2013-evolution-2403bbcdd196745314786af3b6318de56ef3948e.tar.zst gsoc2013-evolution-2403bbcdd196745314786af3b6318de56ef3948e.zip |
Use new ESourceList API (simplifies code)
** Part of fix for bug #569652
-rw-r--r-- | addressbook/ChangeLog | 7 | ||||
-rw-r--r-- | addressbook/gui/component/addressbook-component.c | 57 | ||||
-rw-r--r-- | calendar/ChangeLog | 9 | ||||
-rw-r--r-- | calendar/gui/calendar-component.c | 85 | ||||
-rw-r--r-- | calendar/gui/memos-component.c | 58 | ||||
-rw-r--r-- | calendar/gui/tasks-component.c | 58 | ||||
-rw-r--r-- | plugins/caldav/ChangeLog | 7 | ||||
-rw-r--r-- | plugins/caldav/caldav-source.c | 32 | ||||
-rw-r--r-- | plugins/google-account-setup/ChangeLog | 13 | ||||
-rw-r--r-- | plugins/google-account-setup/google-contacts-source.c | 49 | ||||
-rw-r--r-- | plugins/google-account-setup/google-contacts-source.h | 2 | ||||
-rw-r--r-- | plugins/google-account-setup/google-source.c | 2 | ||||
-rw-r--r-- | plugins/webdav-account-setup/ChangeLog | 9 | ||||
-rw-r--r-- | plugins/webdav-account-setup/webdav-contacts-source.c | 47 |
14 files changed, 113 insertions, 322 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index 55337e64a7..a51d82e1a1 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,5 +1,12 @@ 2009-04-24 Milan Crha <mcrha@redhat.com> + ** Part of fix for bug #569652 + + * gui/component/addressbook-component.c: (ensure_sources): + Use new ESourceList API (simplifies code). + +2009-04-24 Milan Crha <mcrha@redhat.com> + ** Fix for bug #572348 * gui/component/ldap-config.glade: diff --git a/addressbook/gui/component/addressbook-component.c b/addressbook/gui/component/addressbook-component.c index 13c386fbba..3ec3f5ca08 100644 --- a/addressbook/gui/component/addressbook-component.c +++ b/addressbook/gui/component/addressbook-component.c @@ -68,17 +68,12 @@ struct _AddressbookComponentPrivate { static void ensure_sources (AddressbookComponent *component) { - GSList *groups; ESourceList *source_list; - ESourceGroup *group; ESourceGroup *on_this_computer; - ESourceGroup *on_ldap_servers; ESource *personal_source; - char *base_uri, *base_uri_proto; + char *base_uri, *base_uri_proto, base_uri_proto_seventh; const gchar *base_dir; - on_this_computer = NULL; - on_ldap_servers = NULL; personal_source = NULL; if (!e_book_get_addressbooks (&source_list, NULL)) { @@ -90,24 +85,20 @@ ensure_sources (AddressbookComponent *component) base_uri = g_build_filename (base_dir, "local", NULL); base_uri_proto = g_filename_to_uri (base_uri, NULL, NULL); + if (strlen (base_uri_proto) >= 7) { + /* compare only file:// part. If user home dir name changes we do not want to create + one more group */ + base_uri_proto_seventh = base_uri_proto[7]; + base_uri_proto[7] = 0; + } else { + base_uri_proto_seventh = -1; + } - 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 */ + on_this_computer = e_source_list_ensure_group (source_list, _("On This Computer"), base_uri_proto, TRUE); + e_source_list_ensure_group (source_list, _("On LDAP Servers"), LDAP_BASE_URI, FALSE); - if (!on_this_computer && !strncmp (base_uri_proto, e_source_group_peek_base_uri (group), 7)) - on_this_computer = group; - else if (!on_ldap_servers && !strcmp (LDAP_BASE_URI, e_source_group_peek_base_uri (group))) - on_ldap_servers = group; - } + if (base_uri_proto_seventh != -1) { + base_uri_proto[7] = base_uri_proto_seventh; } if (on_this_computer) { @@ -137,16 +128,6 @@ ensure_sources (AddressbookComponent *component) and too late to prevent user seeing "Can not Open ... because of invalid uri" error.*/ e_source_list_sync (source_list,NULL); } - - /* ensure the group name is in current locale, not read from configuration */ - e_source_group_set_name (on_this_computer, _("On This Computer")); - } - 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) { @@ -163,17 +144,7 @@ ensure_sources (AddressbookComponent *component) personal_source = source; } - if (on_ldap_servers) { - /* ensure the group name is in current locale, not read from configuration */ - e_source_group_set_name (on_ldap_servers, _("On LDAP Servers")); - } else { - /* Create the LDAP source group */ - group = e_source_group_new (_("On LDAP Servers"), LDAP_BASE_URI); - e_source_list_add_group (source_list, group, -1); - - on_ldap_servers = group; - } - + g_object_unref (on_this_computer); g_free (base_uri_proto); g_free (base_uri); } diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 6d4023c97f..f461af6832 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,5 +1,14 @@ 2009-04-24 Milan Crha <mcrha@redhat.com> + ** Part of fix for bug #569652 + + * gui/calendar-component.c: (ensure_sources): + * gui/memos-component.c: (ensure_sources): + * gui/tasks-component.c: (ensure_sources): + Use new ESourceList API (simplifies code). + +2009-04-24 Milan Crha <mcrha@redhat.com> + ** Part of fix for bug #381132 * gui/apps_evolution_calendar.schemas.in: diff --git a/calendar/gui/calendar-component.c b/calendar/gui/calendar-component.c index a44b279f19..942960bff5 100644 --- a/calendar/gui/calendar-component.c +++ b/calendar/gui/calendar-component.c @@ -158,23 +158,15 @@ calcomp_vpane_resized (GtkWidget *vpane, GdkEventButton *e, CalendarComponentVie 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; + char *base_uri, *base_uri_proto, base_uri_proto_seventh; 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; @@ -187,28 +179,22 @@ ensure_sources (CalendarComponent *component) base_uri = g_build_filename (base_dir, "local", NULL); base_uri_proto = g_filename_to_uri (base_uri, NULL, NULL); + if (strlen (base_uri_proto) > 7) { + /* compare only file:// part. If user home dir name changes we do not want to create + one more group */ + base_uri_proto_seventh = base_uri_proto[7]; + base_uri_proto[7] = 0; + } else { + base_uri_proto_seventh = -1; + } - 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 */ + on_this_computer = e_source_list_ensure_group (source_list, _("On This Computer"), base_uri_proto, TRUE); + contacts = e_source_list_ensure_group (source_list, _("Contacts"), CONTACTS_BASE_URI, TRUE); + e_source_list_ensure_group (source_list, _("On The Web"), WEB_BASE_URI, FALSE); + e_source_list_ensure_group (source_list, _("Weather"), WEATHER_BASE_URI, FALSE); - 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 (base_uri_proto_seventh != -1) { + base_uri_proto[7] = base_uri_proto_seventh; } if (on_this_computer) { @@ -238,16 +224,6 @@ ensure_sources (CalendarComponent *component) and too late to prevent user seeing "Can not Open ... because of invalid uri" error.*/ e_source_list_sync (source_list,NULL); } - - /* ensure the group name is in current locale, not read from configuration */ - e_source_group_set_name (on_this_computer, _("On This Computer")); - } - 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) { @@ -282,17 +258,6 @@ ensure_sources (CalendarComponent *component) e_source_set_color_spec (personal_source, "#BECEDD"); } - if (on_the_web) { - /* ensure the group name is in current locale, not read from configuration */ - e_source_group_set_name (on_the_web, _("On The Web")); - } else { - /* 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) { @@ -311,14 +276,6 @@ ensure_sources (CalendarComponent *component) g_slist_free (l); } } - - /* ensure the group name is in current locale, not read from configuration */ - e_source_group_set_name (contacts, _("Contacts")); - } 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"); @@ -341,18 +298,10 @@ ensure_sources (CalendarComponent *component) if (e_source_peek_color_spec (birthdays_source) == NULL) e_source_set_color_spec (birthdays_source, "#DDBECE"); - if (weather) { - /* ensure the group name is in current locale, not read from configuration */ - e_source_group_set_name (weather, _("Weather")); - } else { - /* 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_object_unref (on_this_computer); + g_object_unref (contacts); g_free (base_uri_proto); g_free (base_uri); } diff --git a/calendar/gui/memos-component.c b/calendar/gui/memos-component.c index 3fbebd7e3e..0e422d548d 100644 --- a/calendar/gui/memos-component.c +++ b/calendar/gui/memos-component.c @@ -123,17 +123,12 @@ struct _MemosComponentPrivate { static void ensure_sources (MemosComponent *component) { - GSList *groups; ESourceList *source_list; - ESourceGroup *group; ESourceGroup *on_this_computer; - ESourceGroup *on_the_web; ESource *personal_source; - char *base_uri, *base_uri_proto; + char *base_uri, *base_uri_proto, base_uri_proto_seventh; const gchar *base_dir; - on_this_computer = NULL; - on_the_web = NULL; personal_source = NULL; if (!e_cal_get_sources (&source_list, E_CAL_SOURCE_TYPE_JOURNAL, NULL)) { @@ -145,24 +140,20 @@ ensure_sources (MemosComponent *component) base_uri = g_build_filename (base_dir, "local", NULL); base_uri_proto = g_filename_to_uri (base_uri, NULL, NULL); + if (strlen (base_uri_proto) > 7) { + /* compare only file:// part. If user home dir name changes we do not want to create + one more group */ + base_uri_proto_seventh = base_uri_proto[7]; + base_uri_proto[7] = 0; + } else { + base_uri_proto_seventh = -1; + } - 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 */ + on_this_computer = e_source_list_ensure_group (source_list, _("On This Computer"), base_uri_proto, TRUE); + e_source_list_ensure_group (source_list, _("On The Web"), WEB_BASE_URI, FALSE); - 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; - } + if (base_uri_proto_seventh != -1) { + base_uri_proto[7] = base_uri_proto_seventh; } if (on_this_computer) { @@ -192,16 +183,6 @@ ensure_sources (MemosComponent *component) and too late to prevent user seeing "Can not Open ... because of invalid uri" error.*/ e_source_list_sync (source_list,NULL); } - - /* ensure the group name is in current locale, not read from configuration */ - e_source_group_set_name (on_this_computer, _("On This Computer")); - } - 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) { @@ -235,18 +216,9 @@ ensure_sources (MemosComponent *component) personal_source = source; } - if (on_the_web) { - /* ensure the group name is in current locale, not read from configuration */ - e_source_group_set_name (on_the_web, _("On The Web")); - } else { - /* Create the 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; - } - component->priv->source_list = source_list; + + g_object_unref (on_this_computer); g_free (base_uri_proto); g_free (base_uri); } diff --git a/calendar/gui/tasks-component.c b/calendar/gui/tasks-component.c index 7564c1bf92..9ed21d5186 100644 --- a/calendar/gui/tasks-component.c +++ b/calendar/gui/tasks-component.c @@ -120,17 +120,12 @@ struct _TasksComponentPrivate { static void ensure_sources (TasksComponent *component) { - GSList *groups; ESourceList *source_list; - ESourceGroup *group; ESourceGroup *on_this_computer; - ESourceGroup *on_the_web; ESource *personal_source; - char *base_uri, *base_uri_proto; + char *base_uri, *base_uri_proto, base_uri_proto_seventh; const gchar *base_dir; - on_this_computer = NULL; - on_the_web = NULL; personal_source = NULL; if (!e_cal_get_sources (&source_list, E_CAL_SOURCE_TYPE_TODO, NULL)) { @@ -142,24 +137,20 @@ ensure_sources (TasksComponent *component) base_uri = g_build_filename (base_dir, "local", NULL); base_uri_proto = g_filename_to_uri (base_uri, NULL, NULL); + if (strlen (base_uri_proto) > 7) { + /* compare only file:// part. If user home dir name changes we do not want to create + one more group */ + base_uri_proto_seventh = base_uri_proto[7]; + base_uri_proto[7] = 0; + } else { + base_uri_proto_seventh = -1; + } - 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 */ + on_this_computer = e_source_list_ensure_group (source_list, _("On This Computer"), base_uri_proto, TRUE); + e_source_list_ensure_group (source_list, _("On The Web"), WEB_BASE_URI, FALSE); - 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; - } + if (base_uri_proto_seventh != -1) { + base_uri_proto[7] = base_uri_proto_seventh; } if (on_this_computer) { @@ -189,16 +180,6 @@ ensure_sources (TasksComponent *component) and too late to prevent user seeing "Can not Open ... because of invalid uri" error.*/ e_source_list_sync (source_list,NULL); } - - /* ensure the group name is in current locale, not read from configuration */ - e_source_group_set_name (on_this_computer, _("On This Computer")); - } - 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) { @@ -232,18 +213,9 @@ ensure_sources (TasksComponent *component) personal_source = source; } - if (!on_the_web) { - /* Create the LDAP 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; - } else { - /* ensure the group name is in current locale, not read from configuration */ - e_source_group_set_name (on_the_web, _("On The Web")); - } - component->priv->source_list = source_list; + + g_object_unref (on_this_computer); g_free (base_uri_proto); g_free (base_uri); } diff --git a/plugins/caldav/ChangeLog b/plugins/caldav/ChangeLog index 2fe681cb55..5f28deb6b3 100644 --- a/plugins/caldav/ChangeLog +++ b/plugins/caldav/ChangeLog @@ -1,5 +1,12 @@ 2009-04-24 Milan Crha <mcrha@redhat.com> + ** Part of fix for bug #569652 + + * caldav-source.c: (ensure_caldav_source_group): + Use new ESourceList API (simplifies code). + +2009-04-24 Milan Crha <mcrha@redhat.com> + ** Fix for bug #572348 * caldav-source.c: Remove deprecated Gtk+ symbols. diff --git a/plugins/caldav/caldav-source.c b/plugins/caldav/caldav-source.c index 00ca5acac5..46e510367f 100644 --- a/plugins/caldav/caldav-source.c +++ b/plugins/caldav/caldav-source.c @@ -55,43 +55,13 @@ static void ensure_caldav_source_group (ECalSourceType source_type) { ESourceList *slist; - GSList *groups, *g; - ESourceGroup *group = NULL; if (!e_cal_get_sources (&slist, source_type, NULL)) { g_warning ("Could not get calendar source list from GConf!"); return; } - groups = e_source_list_peek_groups (slist); - for (g = groups; g; g = g->next) { - group = E_SOURCE_GROUP (g->data); - - if (group && e_source_group_peek_base_uri (group) && strncmp ("caldav://", e_source_group_peek_base_uri (group), 9) == 0) - break; - - group = NULL; - } - - if (group == NULL) { - /* no such group has been found, create it */ - gboolean res; - - group = e_source_group_new (_("CalDAV"), "caldav://"); - res = e_source_list_add_group (slist, group, -1); - - if (res == FALSE) { - g_warning ("Could not add CalDAV source group!"); - } else { - e_source_list_sync (slist, NULL); - } - - g_object_unref (group); - } else { - /* we found the group, change the name based on the actual language */ - e_source_group_set_name (group, _("CalDAV")); - } - + e_source_list_ensure_group (slist, _("CalDAV"), "caldav://", FALSE); g_object_unref (slist); } diff --git a/plugins/google-account-setup/ChangeLog b/plugins/google-account-setup/ChangeLog index 03cf6b4e3e..43513257b7 100644 --- a/plugins/google-account-setup/ChangeLog +++ b/plugins/google-account-setup/ChangeLog @@ -1,5 +1,18 @@ 2009-04-24 Milan Crha <mcrha@redhat.com> + ** Part of fix for bug #569652 + + * google-contacts-source.h: (manage_google_group): + * google-contacts-source.c: (manage_google_group): + Removed. + + * google-contacts-source.c: (ensure_google_contacts_source_group), + (remove_google_contacts_source_group): + * google-source.c: (ensure_google_source_group): + Use new ESourceList API (simplifies code). + +2009-04-24 Milan Crha <mcrha@redhat.com> + ** Fix for bug #572348 * google-source.c: Remove deprecated Gtk+ symbols. diff --git a/plugins/google-account-setup/google-contacts-source.c b/plugins/google-account-setup/google-contacts-source.c index 6d9697194b..00b7ebc2a5 100644 --- a/plugins/google-account-setup/google-contacts-source.c +++ b/plugins/google-account-setup/google-contacts-source.c @@ -37,51 +37,6 @@ #include "google-contacts-source.h" -/** - * manage_google_group: - * Searches for a 'Google' source group and ensures it has the correct - * name. If only_return is set to true, then only returns found group. - * Otherwise returns NULL. - **/ -ESourceGroup * -manage_google_group (ESourceList *slist, gboolean only_return) -{ - GSList *groups, *g; - ESourceGroup *group = NULL; - - g_return_val_if_fail (slist != NULL, NULL); - - groups = e_source_list_peek_groups (slist); - for (g = groups; g; g = g->next) { - group = E_SOURCE_GROUP (g->data); - - if (group && e_source_group_peek_base_uri (group) && - g_ascii_strncasecmp ("google://", e_source_group_peek_base_uri (group), 9) == 0) - break; - - group = NULL; - } - - if (only_return) - return group; - - if (group) { - e_source_group_set_name (group, _("Google")); - } else { - group = e_source_group_new (_("Google"), "google://"); - - if (!e_source_list_add_group (slist, group, -1)) { - g_warning ("Could not add Google source group!"); - } else { - e_source_list_sync (slist, NULL); - } - - g_object_unref (group); - } - - return NULL; -} - void ensure_google_contacts_source_group (void) { @@ -93,7 +48,7 @@ ensure_google_contacts_source_group (void) return; } - manage_google_group (source_list, FALSE); + e_source_list_ensure_group (source_list, _("Google"), "google://", FALSE); g_object_unref (source_list); } @@ -109,7 +64,7 @@ remove_google_contacts_source_group (void) return; } - group = manage_google_group (source_list, TRUE); + group = e_source_list_peek_group_by_base_uri (source_list, "google://"); if (group) { GSList *sources; diff --git a/plugins/google-account-setup/google-contacts-source.h b/plugins/google-account-setup/google-contacts-source.h index b4fd5d6b77..54c21d18a6 100644 --- a/plugins/google-account-setup/google-contacts-source.h +++ b/plugins/google-account-setup/google-contacts-source.h @@ -28,6 +28,4 @@ void ensure_google_contacts_source_group (void); void remove_google_contacts_source_group (void); -ESourceGroup *manage_google_group (ESourceList *slist, gboolean only_return); - #endif diff --git a/plugins/google-account-setup/google-source.c b/plugins/google-account-setup/google-source.c index a5b846076f..c296ab687f 100644 --- a/plugins/google-account-setup/google-source.c +++ b/plugins/google-account-setup/google-source.c @@ -78,7 +78,7 @@ ensure_google_source_group (void) return; } - manage_google_group (slist, FALSE); + e_source_list_ensure_group (slist, _("Google"), "google://", FALSE); g_object_unref (slist); } diff --git a/plugins/webdav-account-setup/ChangeLog b/plugins/webdav-account-setup/ChangeLog index 354371cc6a..ce72e9c671 100644 --- a/plugins/webdav-account-setup/ChangeLog +++ b/plugins/webdav-account-setup/ChangeLog @@ -1,3 +1,12 @@ +2009-04-24 Milan Crha <mcrha@redhat.com> + + ** Part of fix for bug #569652 + + * webdav-contacts-source.c: (find_webdav_group): Removed. + * webdav-contacts-source.c: (ensure_webdav_contacts_source_group), + (remove_webdav_contacts_source_group): + Use new ESourceList API (simplifies code). + 2009-02-26 Matthew Barnes <mbarnes@redhat.com> ** Fixes part of bug #572950 diff --git a/plugins/webdav-account-setup/webdav-contacts-source.c b/plugins/webdav-account-setup/webdav-contacts-source.c index 8edfa59372..012a541d27 100644 --- a/plugins/webdav-account-setup/webdav-contacts-source.c +++ b/plugins/webdav-account-setup/webdav-contacts-source.c @@ -54,33 +54,10 @@ plugin_webdav_contacts(EPlugin *epl, EConfigHookItemFactoryData *data); int e_plugin_lib_enable(EPluginLib *ep, int enable); -static ESourceGroup * -find_webdav_group (ESourceList *slist) -{ - GSList *groups, *g; - ESourceGroup *group = NULL; - - g_return_val_if_fail (slist != NULL, NULL); - - groups = e_source_list_peek_groups (slist); - for (g = groups; g; g = g->next) { - group = E_SOURCE_GROUP (g->data); - - if (group && e_source_group_peek_base_uri (group) && - g_ascii_strncasecmp (BASE_URI, e_source_group_peek_base_uri (group), strlen (BASE_URI)) == 0) - break; - - group = NULL; - } - - return group; -} - static void ensure_webdav_contacts_source_group(void) { ESourceList *source_list; - ESourceGroup *group; source_list = e_source_list_new_for_gconf_default("/apps/evolution/addressbook/sources"); @@ -88,26 +65,8 @@ ensure_webdav_contacts_source_group(void) return; } - group = find_webdav_group (source_list); - - if (group == NULL) { - gboolean res; - - group = e_source_group_new(_("WebDAV"), BASE_URI); - res = e_source_list_add_group(source_list, group, -1); - - if (res == FALSE) { - g_warning("Could not add WebDAV source group!"); - } else { - e_source_list_sync(source_list, NULL); - } - - g_object_unref(group); - } else { - e_source_group_set_name (group, _("WebDAV")); - } - - g_object_unref(source_list); + e_source_list_ensure_group (source_list, _("WebDAV"), BASE_URI, FALSE); + g_object_unref (source_list); } static void @@ -122,7 +81,7 @@ remove_webdav_contacts_source_group(void) return; } - group = find_webdav_group (source_list); + group = e_source_list_peek_group_by_base_uri (source_list, BASE_URI); if (group) { GSList *sources; |