aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/webdav-account-setup/webdav-contacts-source.c
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2009-01-29 19:16:06 +0800
committerMilan Crha <mcrha@src.gnome.org>2009-01-29 19:16:06 +0800
commit7261b445bc5995ebf04c64f35011b091b6e94638 (patch)
treee75d7bb0c69c58f11787df4f14001f6eb909bd82 /plugins/webdav-account-setup/webdav-contacts-source.c
parentced75797e19bf3331a6d5f68db462c91022586d0 (diff)
downloadgsoc2013-evolution-7261b445bc5995ebf04c64f35011b091b6e94638.tar.gz
gsoc2013-evolution-7261b445bc5995ebf04c64f35011b091b6e94638.tar.zst
gsoc2013-evolution-7261b445bc5995ebf04c64f35011b091b6e94638.zip
** Fix for bug #539467
2009-01-29 Milan Crha <mcrha@redhat.com> ** Fix for bug #539467 * plugins/webdav-account-setup/webdav-contacts-source.c: (find_webdav_group), (ensure_webdav_contacts_source_group), (remove_webdav_contacts_source_group): * plugins/google-account-setup/google-contacts-source.h: (manage_google_group): * plugins/google-account-setup/google-contacts-source.c: (manage_google_group), (ensure_google_contacts_source_group), (remove_google_contacts_source_group): * plugins/google-account-setup/google-source.c: (ensure_google_source_group): Find group by its base uri, not by a localized name. svn path=/trunk/; revision=37165
Diffstat (limited to 'plugins/webdav-account-setup/webdav-contacts-source.c')
-rw-r--r--plugins/webdav-account-setup/webdav-contacts-source.c29
1 files changed, 27 insertions, 2 deletions
diff --git a/plugins/webdav-account-setup/webdav-contacts-source.c b/plugins/webdav-account-setup/webdav-contacts-source.c
index d85ffa79b6..2242b9050d 100644
--- a/plugins/webdav-account-setup/webdav-contacts-source.c
+++ b/plugins/webdav-account-setup/webdav-contacts-source.c
@@ -54,6 +54,28 @@ 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)
{
@@ -66,7 +88,7 @@ ensure_webdav_contacts_source_group(void)
return;
}
- group = e_source_list_peek_group_by_name(source_list, _("WebDAV"));
+ group = find_webdav_group (source_list);
if (group == NULL) {
gboolean res;
@@ -81,7 +103,10 @@ ensure_webdav_contacts_source_group(void)
}
g_object_unref(group);
+ } else {
+ e_source_group_set_name (group, _("WebDAV"));
}
+
g_object_unref(source_list);
}
@@ -97,7 +122,7 @@ remove_webdav_contacts_source_group(void)
return;
}
- group = e_source_list_peek_group_by_name(source_list, _("WebDAV"));
+ group = find_webdav_group (source_list);
if (group) {
GSList *sources;