[evolution-data-server/account-mgmt: 11/30] Adapt libedata-cal to the new ESource API.



commit 2ac64218ede3dba0f2123b66f3c7468012863d73
Author: Matthew Barnes <mbarnes redhat com>
Date:   Sat Nov 13 15:02:02 2010 -0500

    Adapt libedata-cal to the new ESource API.

 calendar/libedata-cal/e-cal-backend-sync.c         |   27 --
 calendar/libedata-cal/e-cal-backend-sync.h         |    4 -
 calendar/libedata-cal/e-cal-backend.c              |  143 ++--------
 calendar/libedata-cal/e-cal-backend.h              |    6 +-
 calendar/libedata-cal/e-data-cal-factory.c         |  283 +++++++++-----------
 calendar/libedata-cal/e-data-cal.c                 |   39 ---
 calendar/libedata-cal/e-data-cal.h                 |    1 -
 calendar/libedata-cal/e-data-cal.xml               |   11 -
 calendar/libegdbus/e-gdbus-egdbuscal.c             |  155 -----------
 calendar/libegdbus/e-gdbus-egdbuscal.h             |   28 +--
 .../libedata-cal/libedata-cal-sections.txt         |    3 -
 .../libedata-cal/tmpl/e-cal-backend-sync.sgml      |   10 -
 .../calendar/libedata-cal/tmpl/e-cal-backend.sgml  |   18 +--
 .../calendar/libedata-cal/tmpl/e-data-cal.sgml     |   10 -
 14 files changed, 160 insertions(+), 578 deletions(-)
---
diff --git a/calendar/libedata-cal/e-cal-backend-sync.c b/calendar/libedata-cal/e-cal-backend-sync.c
index 8264719..b664ee3 100644
--- a/calendar/libedata-cal/e-cal-backend-sync.c
+++ b/calendar/libedata-cal/e-cal-backend-sync.c
@@ -161,22 +161,6 @@ e_cal_backend_sync_open  (ECalBackendSync *backend, EDataCal *cal, gboolean only
 }
 
 /**
- * e_cal_backend_sync_remove:
- * @backend: An ECalBackendSync object.
- * @cal: An EDataCal object.
- * @error: Out parameter for a #GError.
- *
- * Calls the remove method on the given backend.
- */
-void
-e_cal_backend_sync_remove  (ECalBackendSync *backend, EDataCal *cal, GError **error)
-{
-	e_return_data_cal_error_if_fail (backend && E_IS_CAL_BACKEND_SYNC (backend), InvalidArg);
-
-	LOCK_WRAPPER (remove_sync, (backend, cal, error));
-}
-
-/**
  * e_cal_backend_sync_refresh:
  * @backend: An ECalBackendSync object.
  * @cal: An EDataCal object.
@@ -612,16 +596,6 @@ _e_cal_backend_refresh (ECalBackend *backend, EDataCal *cal, EServerMethodContex
 }
 
 static void
-_e_cal_backend_remove (ECalBackend *backend, EDataCal *cal, EServerMethodContext context)
-{
-	GError *error = NULL;
-
-	e_cal_backend_sync_remove (E_CAL_BACKEND_SYNC (backend), cal, &error);
-
-	e_data_cal_notify_remove (cal, context, error);
-}
-
-static void
 _e_cal_backend_create_object (ECalBackend *backend, EDataCal *cal, EServerMethodContext context, const gchar *calobj)
 {
 	GError *error = NULL;
@@ -979,7 +953,6 @@ e_cal_backend_sync_class_init (ECalBackendSyncClass *klass)
 	backend_class->get_static_capabilities = _e_cal_backend_get_static_capabilities;
 	backend_class->open = _e_cal_backend_open;
 	backend_class->refresh = _e_cal_backend_refresh;
-	backend_class->remove = _e_cal_backend_remove;
 	backend_class->create_object = _e_cal_backend_create_object;
 	backend_class->modify_object = _e_cal_backend_modify_object;
 	backend_class->remove_object = _e_cal_backend_remove_object;
diff --git a/calendar/libedata-cal/e-cal-backend-sync.h b/calendar/libedata-cal/e-cal-backend-sync.h
index 5080582..0304764 100644
--- a/calendar/libedata-cal/e-cal-backend-sync.h
+++ b/calendar/libedata-cal/e-cal-backend-sync.h
@@ -38,7 +38,6 @@ struct _ECalBackendSyncClass {
 
 	void (*open_sync)  (ECalBackendSync *backend, EDataCal *cal, gboolean only_if_exists, const gchar *username, const gchar *password, GError **perror);
 	void (*refresh_sync)  (ECalBackendSync *backend, EDataCal *cal, GError **perror);
-	void (*remove_sync)  (ECalBackendSync *backend, EDataCal *cal, GError **perror);
 
 	void (*create_object_sync)  (ECalBackendSync *backend, EDataCal *cal, gchar **calobj, gchar **uid, GError **perror);
 	void (*modify_object_sync)  (ECalBackendSync *backend, EDataCal *cal, const gchar *calobj, CalObjModType mod, gchar **old_object, gchar **new_object, GError **perror);
@@ -109,9 +108,6 @@ void	e_cal_backend_sync_open			(ECalBackendSync *backend,
 void	e_cal_backend_sync_refresh		(ECalBackendSync *backend,
 						 EDataCal *cal,
 						 GError **error);
-void	e_cal_backend_sync_remove		(ECalBackendSync *backend,
-						 EDataCal *cal,
-						 GError **error);
 void	e_cal_backend_sync_create_object	(ECalBackendSync *backend,
 						 EDataCal *cal,
 						 gchar **calobj,
diff --git a/calendar/libedata-cal/e-cal-backend.c b/calendar/libedata-cal/e-cal-backend.c
index 5082ab3..1755993 100644
--- a/calendar/libedata-cal/e-cal-backend.c
+++ b/calendar/libedata-cal/e-cal-backend.c
@@ -41,9 +41,6 @@ struct _ECalBackendPrivate {
 	/* The source for this backend */
 	ESource *source;
 
-	/* URI, from source. This is cached, since we return const. */
-	gchar *uri;
-
 	gchar *cache_dir;
 
 	/* The kind of components for this backend */
@@ -70,8 +67,7 @@ enum {
 	PROP_0,
 	PROP_CACHE_DIR,
 	PROP_KIND,
-	PROP_SOURCE,
-	PROP_URI
+	PROP_SOURCE
 };
 
 /* Signal IDs */
@@ -87,43 +83,22 @@ static void e_cal_backend_remove_client_private (ECalBackend *backend, EDataCal
 G_DEFINE_TYPE (ECalBackend, e_cal_backend, G_TYPE_OBJECT);
 
 static void
-source_changed_cb (ESource *source, ECalBackend *backend)
-{
-	ECalBackendPrivate *priv;
-	gchar *suri;
-
-	g_return_if_fail (source != NULL);
-	g_return_if_fail (backend != NULL);
-	g_return_if_fail (E_IS_CAL_BACKEND (backend));
-
-	priv = backend->priv;
-	g_return_if_fail (priv != NULL);
-	g_return_if_fail (priv->source == source);
-
-	suri = e_source_get_uri (priv->source);
-	if (!priv->uri || (suri && !g_str_equal (priv->uri, suri))) {
-		g_free (priv->uri);
-		priv->uri = suri;
-	} else {
-		g_free (suri);
-	}
-}
-
-static void
 cal_backend_set_default_cache_dir (ECalBackend *backend)
 {
 	ESource *source;
 	icalcomponent_kind kind;
 	const gchar *component_type;
 	const gchar *user_cache_dir;
-	gchar *mangled_uri;
+	const gchar *uid;
 	gchar *filename;
 
 	user_cache_dir = e_get_user_cache_dir ();
 
 	kind = e_cal_backend_get_kind (backend);
 	source = e_cal_backend_get_source (backend);
-	g_return_if_fail (source != NULL);
+
+	uid = e_source_get_uid (source);
+	g_return_if_fail (uid != NULL);
 
 	switch (kind) {
 		case ICAL_VEVENT_COMPONENT:
@@ -139,49 +114,20 @@ cal_backend_set_default_cache_dir (ECalBackend *backend)
 			g_return_if_reached ();
 	}
 
-	/* Mangle the URI to not contain invalid characters. */
-	mangled_uri = g_strdelimit (e_source_get_uri (source), ":/", '_');
-
 	filename = g_build_filename (
-		user_cache_dir, component_type, mangled_uri, NULL);
+		user_cache_dir, component_type, uid, NULL);
 	e_cal_backend_set_cache_dir (backend, filename);
 	g_free (filename);
-
-	g_free (mangled_uri);
 }
 
 static void
 cal_backend_set_source (ECalBackend *backend,
                         ESource *source)
 {
-	if (backend->priv->source != NULL) {
-		g_signal_handlers_disconnect_matched (backend->priv->source, G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, 0, 0, NULL, source_changed_cb, backend);
+	if (backend->priv->source != NULL)
 		g_object_unref (backend->priv->source);
-	}
-
-	if (source != NULL)
-		g_signal_connect (
-			g_object_ref (source), "changed",
-			G_CALLBACK (source_changed_cb), backend);
 
 	backend->priv->source = source;
-
-	/* Cache the URI */
-	if (source != NULL) {
-		g_free (backend->priv->uri);
-		backend->priv->uri = e_source_get_uri (source);
-	}
-}
-
-static void
-cal_backend_set_uri (ECalBackend *backend,
-                     const gchar *uri)
-{
-	/* ESource's URI gets priority. */
-	if (backend->priv->source == NULL) {
-		g_free (backend->priv->uri);
-		backend->priv->uri = g_strdup (uri);
-	}
 }
 
 static void
@@ -213,11 +159,6 @@ cal_backend_set_property (GObject *object,
 				E_CAL_BACKEND (object),
 				g_value_get_object (value));
 			return;
-		case PROP_URI:
-			cal_backend_set_uri (
-				E_CAL_BACKEND (object),
-				g_value_get_string (value));
-			return;
 	}
 
 	G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -245,11 +186,6 @@ cal_backend_get_property (GObject *object,
 				value, e_cal_backend_get_source (
 				E_CAL_BACKEND (object)));
 			return;
-		case PROP_URI:
-			g_value_set_string (
-				value, e_cal_backend_get_uri (
-				E_CAL_BACKEND (object)));
-			return;
 	}
 
 	G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -269,13 +205,9 @@ cal_backend_finalize (GObject *object)
 	g_mutex_free (priv->clients_mutex);
 	g_mutex_free (priv->queries_mutex);
 
-	g_free (priv->uri);
 	g_free (priv->cache_dir);
 
-	if (priv->source) {
-		g_signal_handlers_disconnect_matched (priv->source, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, object);
-		g_object_unref (priv->source);
-	}
+	g_object_unref (priv->source);
 
 	/* Chain up to parent's finalize() method. */
 	G_OBJECT_CLASS (e_cal_backend_parent_class)->finalize (object);
@@ -287,6 +219,14 @@ cal_backend_constructed (GObject *object)
 	cal_backend_set_default_cache_dir (E_CAL_BACKEND (object));
 }
 
+static gboolean
+cal_backend_remove (ECalBackend *backend,
+                    GError **error)
+{
+	/* Default implementation assumes no caching. */
+	return TRUE;
+}
+
 static void
 e_cal_backend_class_init (ECalBackendClass *class)
 {
@@ -300,6 +240,8 @@ e_cal_backend_class_init (ECalBackendClass *class)
 	object_class->finalize = cal_backend_finalize;
 	object_class->constructed = cal_backend_constructed;
 
+	class->remove = cal_backend_remove;
+
 	g_object_class_install_property (
 		object_class,
 		PROP_CACHE_DIR,
@@ -334,17 +276,6 @@ e_cal_backend_class_init (ECalBackendClass *class)
 			G_PARAM_READWRITE |
 			G_PARAM_CONSTRUCT_ONLY));
 
-	g_object_class_install_property (
-		object_class,
-		PROP_URI,
-		g_param_spec_string (
-			"uri",
-			NULL,
-			NULL,
-			"",
-			G_PARAM_READWRITE |
-			G_PARAM_CONSTRUCT_ONLY));
-
 	signals[LAST_CLIENT_GONE] = g_signal_new (
 		"last_client_gone",
 		G_TYPE_FROM_CLASS (class),
@@ -446,23 +377,6 @@ e_cal_backend_get_source (ECalBackend *backend)
 	return backend->priv->source;
 }
 
-/**
- * e_cal_backend_get_uri:
- * @backend: an #ECalBackend
- *
- * Queries the URI of a calendar backend, which must already have an open
- * calendar.
- *
- * Returns: The URI where the calendar is stored.
- **/
-const gchar *
-e_cal_backend_get_uri (ECalBackend *backend)
-{
-	g_return_val_if_fail (E_IS_CAL_BACKEND (backend), NULL);
-
-	return backend->priv->uri;
-}
-
 static void
 cal_destroy_cb (gpointer data, GObject *where_cal_was)
 {
@@ -773,23 +687,24 @@ e_cal_backend_refresh (ECalBackend *backend, EDataCal *cal, EServerMethodContext
 /**
  * e_cal_backend_remove:
  * @backend: an #ECalBackend
- * @cal: an #EDataCal
+ * @error: return location for a #GError, or %NULL
  *
  * Removes the calendar being accessed by the given backend.
+ *
+ * Returns: %TRUE on success, %FALSE on failure
  */
-void
-e_cal_backend_remove (ECalBackend *backend, EDataCal *cal, EServerMethodContext context)
+gboolean
+e_cal_backend_remove (ECalBackend *backend,
+                      GError **error)
 {
-	g_return_if_fail (backend != NULL);
-	g_return_if_fail (E_IS_CAL_BACKEND (backend));
+	ECalBackendClass *class;
 
-	g_assert (CLASS (backend)->remove != NULL);
-
-	g_object_ref (backend);
+	g_return_val_if_fail (E_IS_CAL_BACKEND (backend), FALSE);
 
-	(* CLASS (backend)->remove) (backend, cal, context);
+	class = E_CAL_BACKEND_GET_CLASS (backend);
+	g_return_val_if_fail (class->remove != NULL, FALSE);
 
-	g_object_unref (backend);
+	return class->remove (backend, error);
 }
 
 /**
diff --git a/calendar/libedata-cal/e-cal-backend.h b/calendar/libedata-cal/e-cal-backend.h
index d9fccf8..45516e9 100644
--- a/calendar/libedata-cal/e-cal-backend.h
+++ b/calendar/libedata-cal/e-cal-backend.h
@@ -63,6 +63,7 @@ struct _ECalBackendClass {
 
 	/* Virtual methods */
 	gboolean (* is_loaded) (ECalBackend *backend);
+	gboolean (* remove) (ECalBackend *backend, GError **error);
 	void (* is_read_only) (ECalBackend *backend, EDataCal *cal);
 	void (* get_cal_address) (ECalBackend *backend, EDataCal *cal, EServerMethodContext context);
 	void (* get_alarm_email_address) (ECalBackend *backend, EDataCal *cal, EServerMethodContext context);
@@ -71,7 +72,6 @@ struct _ECalBackendClass {
 
 	void (* open) (ECalBackend *backend, EDataCal *cal, EServerMethodContext context, gboolean only_if_exists, const gchar *username, const gchar *password);
 	void (* refresh) (ECalBackend *backend, EDataCal *cal, EServerMethodContext context);
-	void (* remove) (ECalBackend *backend, EDataCal *cal, EServerMethodContext context);
 
 	/* Object related virtual methods */
 	void (* create_object) (ECalBackend *backend, EDataCal *cal, EServerMethodContext context, const gchar *calobj);
@@ -111,12 +111,13 @@ struct _ECalBackendClass {
 GType e_cal_backend_get_type (void);
 
 ESource *e_cal_backend_get_source (ECalBackend *backend);
-const gchar *e_cal_backend_get_uri (ECalBackend *backend);
 icalcomponent_kind e_cal_backend_get_kind (ECalBackend *backend);
 
 const gchar *e_cal_backend_get_cache_dir (ECalBackend *backend);
 void e_cal_backend_set_cache_dir (ECalBackend *backend, const gchar *cache_dir);
 
+gboolean e_cal_backend_remove (ECalBackend *backend, GError **error);
+
 void e_cal_backend_add_client (ECalBackend *backend, EDataCal *cal);
 void e_cal_backend_remove_client (ECalBackend *backend, EDataCal *cal);
 
@@ -132,7 +133,6 @@ void e_cal_backend_get_static_capabilities (ECalBackend *backend, EDataCal *cal,
 
 void e_cal_backend_open (ECalBackend *backend, EDataCal *cal, EServerMethodContext context, gboolean only_if_exists, const gchar *username, const gchar *password);
 void e_cal_backend_refresh (ECalBackend *backend, EDataCal *cal, EServerMethodContext context);
-void e_cal_backend_remove (ECalBackend *backend, EDataCal *cal, EServerMethodContext context);
 
 void e_cal_backend_create_object (ECalBackend *backend, EDataCal *cal, EServerMethodContext context, const gchar *calobj);
 void e_cal_backend_modify_object (ECalBackend *backend, EDataCal *cal, EServerMethodContext context, const gchar *calobj, CalObjModType mod);
diff --git a/calendar/libedata-cal/e-data-cal-factory.c b/calendar/libedata-cal/e-data-cal-factory.c
index f675940..3052e7d 100644
--- a/calendar/libedata-cal/e-data-cal-factory.c
+++ b/calendar/libedata-cal/e-data-cal-factory.c
@@ -31,12 +31,11 @@
 #include <glib/gi18n.h>
 #include <glib-object.h>
 
-#include "libedataserver/e-url.h"
-#include "libedataserver/e-source.h"
-#include "libedataserver/e-source-list.h"
-#include "libebackend/e-data-server-module.h"
+#include <libedataserver/e-source-registry.h>
+#include <libebackend/e-data-server-module.h>
 #include <libebackend/e-offline-listener.h>
-#include "libecal/e-cal.h"
+#include <libecal/e-cal.h>
+#include <libecal/e-source-calendar.h>
 #include "e-cal-backend.h"
 #include "e-cal-backend-factory.h"
 #include "e-data-cal.h"
@@ -94,9 +93,6 @@ struct _EDataCalFactoryPrivate {
 
 	gint mode;
 
-	/* this is for notifications of source changes */
-	ESourceList *lists[E_CAL_SOURCE_TYPE_LAST];
-
 	/* backends divided by their type */
 	GSList *backends_by_type[E_CAL_SOURCE_TYPE_LAST];
 
@@ -167,64 +163,6 @@ icalkind_to_ecalsourcetype (const icalcomponent_kind kind)
 	return E_CAL_SOURCE_TYPE_LAST;
 }
 
-static void
-update_source_in_backend (ECalBackend *backend,
-                          ESource *updated_source)
-{
-	ESource *backend_source;
-	xmlNodePtr xml;
-
-	g_return_if_fail (backend != NULL);
-	g_return_if_fail (updated_source != NULL);
-
-	backend_source = e_cal_backend_get_source (backend);
-
-	xml = xmlNewNode (NULL, (const xmlChar *) "dummy");
-	e_source_dump_to_xml_node (updated_source, xml);
-	e_source_update_from_xml_node (backend_source, xml->children, NULL);
-	xmlFreeNode (xml);
-}
-
-static void
-source_list_changed_cb (ESourceList *list,
-                        EDataCalFactory *factory)
-{
-	EDataCalFactoryPrivate *priv;
-	gint i;
-
-	g_return_if_fail (list != NULL);
-	g_return_if_fail (E_IS_DATA_CAL_FACTORY (factory));
-
-	priv = factory->priv;
-
-	g_mutex_lock (priv->backends_mutex);
-
-	for (i = 0; i < E_CAL_SOURCE_TYPE_LAST; i++) {
-		GSList *iter;
-
-		if (list != priv->lists[i])
-			continue;
-
-		for (iter = priv->backends_by_type[i]; iter; iter = iter->next) {
-			ECalBackend *backend = iter->data;
-			ESource *source, *list_source;
-			const gchar *uid;
-
-			source = e_cal_backend_get_source (backend);
-			uid = e_source_peek_uid (source);
-			list_source = e_source_list_peek_source_by_uid (
-				priv->lists[i], uid);
-
-			if (list_source != NULL)
-				update_source_in_backend (backend, list_source);
-		}
-
-		break;
-	}
-
-	g_mutex_unlock (priv->backends_mutex);
-}
-
 static ECalBackendFactory *
 get_backend_factory (GHashTable *methods,
                      const gchar *method,
@@ -298,81 +236,60 @@ struct find_backend_data {
 	icalcomponent_kind kind;
 };
 
-static void
-find_backend_cb (gpointer key, gpointer value, gpointer data)
-{
-	struct find_backend_data *fbd = data;
-
-	if (fbd && fbd->str_uri && !fbd->backend) {
-		ECalBackend *backend = value;
-		ESource *backend_source;
-		gchar *str_uri;
-
-		backend_source = e_cal_backend_get_source (backend);
-		str_uri = e_source_get_uri (backend_source);
-
-		if (str_uri && g_str_equal (str_uri, fbd->str_uri)) {
-			const gchar *uid_kind = key, *pos;
-
-			pos = strrchr (uid_kind, ':');
-			if (pos && atoi (pos + 1) == fbd->kind)
-				fbd->backend = backend;
-		}
-
-		g_free (str_uri);
-	}
-}
-
 static gboolean
-impl_CalFactory_getCal (EGdbusCalFactory *object, GDBusMethodInvocation *invocation, const gchar *source_xml, guint type, EDataCalFactory *factory)
+impl_CalFactory_getCal (EGdbusCalFactory *object,
+                        GDBusMethodInvocation *invocation,
+                        const gchar *uid,
+                        guint type,
+                        EDataCalFactory *factory)
 {
 	EDataCal *calendar;
+	ECalBackend *backend;
 	EDataCalFactoryPrivate *priv = factory->priv;
 	ECalBackendFactory *backend_factory;
-	ECalBackend *backend;
+	ESourceRegistry *registry;
 	ESource *source;
-	gchar *str_uri;
-	EUri *uri;
 	gchar *uid_type_string;
 	gchar *path = NULL;
+	const gchar *backend_name;
 	const gchar *sender;
 	GList *list;
 	GError *error = NULL;
 
-	/* Remove a pending exit */
-	if (priv->exit_timeout) {
-		g_source_remove (priv->exit_timeout);
-		priv->exit_timeout = 0;
-	}
-
-	source = e_source_new_from_standalone_xml (source_xml);
-	if (!source) {
-		error = g_error_new (E_DATA_CAL_ERROR, NoSuchCal, _("Invalid source"));
+	if (uid == NULL || *uid == '\0') {
+		error = g_error_new_literal (
+			E_DATA_CAL_ERROR, NoSuchCal,
+			_("Missing source UID"));
 		g_dbus_method_invocation_return_gerror (invocation, error);
 		g_error_free (error);
 
 		return TRUE;
 	}
 
-	/* Get the URI so we can extract the protocol */
-	str_uri = e_source_get_uri (source);
-	if (!str_uri) {
-		g_object_unref (source);
+	/* Remove a pending exit */
+	if (priv->exit_timeout) {
+		g_source_remove (priv->exit_timeout);
+		priv->exit_timeout = 0;
+	}
+
+	registry = e_source_registry_get_default ();
+	source = e_source_registry_lookup_by_uid (registry, uid);
 
-		error = g_error_new (E_DATA_CAL_ERROR, NoSuchCal, _("Empty URI"));
+	if (source == NULL) {
+		error = g_error_new (
+			E_DATA_CAL_ERROR, NoSuchCal,
+			_("No such source for UID '%s'"), uid);
 		g_dbus_method_invocation_return_gerror (invocation, error);
 		g_error_free (error);
 
 		return TRUE;
 	}
 
-	/* Parse the uri */
-	uri = e_uri_new (str_uri);
-	if (!uri) {
-		g_object_unref (source);
-		g_free (str_uri);
-
-		error = g_error_new (E_DATA_CAL_ERROR, NoSuchCal, _("Invalid URI"));
+	backend_name = e_source_get_backend_name (source);
+	if (backend_name == NULL || *backend_name == '\0') {
+		error = g_error_new (
+			E_DATA_CAL_ERROR, NoSuchCal,
+			_("No backend specified in source UID '%s'"), uid);
 		g_dbus_method_invocation_return_gerror (invocation, error);
 		g_error_free (error);
 
@@ -380,18 +297,17 @@ impl_CalFactory_getCal (EGdbusCalFactory *object, GDBusMethodInvocation *invocat
 	}
 
 	uid_type_string = g_strdup_printf (
-		"%s:%d", e_source_peek_uid (source),
-		(gint) calobjtype_to_icalkind (type));
+		"%s:%d", uid, (gint) calobjtype_to_icalkind (type));
 
 	/* Find the associated backend factory (if any) */
 	backend_factory = get_backend_factory (
-		priv->methods, uri->protocol,
+		priv->methods, backend_name,
 		calobjtype_to_icalkind (type));
 	if (!backend_factory) {
 		error = g_error_new (
 			E_DATA_CAL_ERROR, NoSuchCal,
 			_("No backend factory for '%s' of '%s'"),
-			uri->protocol, calobjtype_to_string (type));
+			backend_name, calobjtype_to_string (type));
 
 		goto cleanup2;
 	}
@@ -403,26 +319,6 @@ impl_CalFactory_getCal (EGdbusCalFactory *object, GDBusMethodInvocation *invocat
 		factory->priv->backends, uid_type_string);
 
 	if (!backend) {
-		/* Find backend by URL, if opened, thus functions like
-		 * e_cal_system_new_* will not create new backends for
-		 * the same URL. */
-		struct find_backend_data fbd;
-
-		fbd.str_uri = str_uri;
-		fbd.kind = calobjtype_to_icalkind (type);
-		fbd.backend = NULL;
-
-		g_hash_table_foreach (priv->backends, find_backend_cb, &fbd);
-
-		if (fbd.backend) {
-			backend = fbd.backend;
-			g_object_unref (source);
-			source = e_cal_backend_get_source (backend);
-			g_object_ref (source);
-		}
-	}
-
-	if (!backend) {
 		ECalSourceType st;
 
 		/* There was no existing backend, create a new one */
@@ -432,7 +328,7 @@ impl_CalFactory_getCal (EGdbusCalFactory *object, GDBusMethodInvocation *invocat
 			class = E_CAL_BACKEND_LOADER_FACTORY_GET_CLASS (backend_factory);
 			backend = class->new_backend_with_protocol (
 				(ECalBackendLoaderFactory *) backend_factory,
-				source, uri->protocol);
+				source, backend_name);
 		} else
 			backend = e_cal_backend_factory_new_backend (
 				backend_factory, source);
@@ -447,17 +343,8 @@ impl_CalFactory_getCal (EGdbusCalFactory *object, GDBusMethodInvocation *invocat
 		st = icalkind_to_ecalsourcetype (
 			e_cal_backend_get_kind (backend));
 		if (st != E_CAL_SOURCE_TYPE_LAST) {
-			if (!priv->lists[st] && e_cal_get_sources (
-					&(priv->lists[st]), st, NULL)) {
-				g_signal_connect (
-					priv->lists[st], "changed",
-					G_CALLBACK (source_list_changed_cb),
-					factory);
-			}
-
-			if (priv->lists[st])
-				priv->backends_by_type[st] = g_slist_prepend (
-					priv->backends_by_type[st], backend);
+			priv->backends_by_type[st] = g_slist_prepend (
+				priv->backends_by_type[st], backend);
 		}
 
 		/* Track the backend */
@@ -465,9 +352,6 @@ impl_CalFactory_getCal (EGdbusCalFactory *object, GDBusMethodInvocation *invocat
 			priv->backends, g_strdup (uid_type_string), backend);
 
 		e_cal_backend_set_mode (backend, priv->mode);
-	} else if (!e_source_equal (source, e_cal_backend_get_source (backend))) {
-		/* source changed, update it in a backend */
-		update_source_in_backend (backend, source);
 	}
 
 	calendar = e_data_cal_new (backend, source);
@@ -493,10 +377,7 @@ cleanup:
 	g_mutex_unlock (priv->backends_mutex);
 
 cleanup2:
-	g_free (str_uri);
-	e_uri_free (uri);
 	g_free (uid_type_string);
-	g_object_unref (source);
 
 	if (error) {
 		g_dbus_method_invocation_return_gerror (invocation, error);
@@ -906,6 +787,64 @@ setup_quit_signal (void)
 }
 #endif
 
+static void
+source_load_error (ESourceRegistry *registry,
+                   GFile *file,
+                   const GError *error)
+{
+	gchar *basename;
+
+	basename = g_file_get_basename (file);
+	g_critical ("Failed to load source '%s': %s", basename, error->message);
+	g_free (basename);
+}
+
+static void
+source_added (ESourceRegistry *registry,
+              ESource *source,
+              EDataCalFactory *factory)
+{
+	const gchar *display_name;
+	const gchar *uid;
+
+	uid = e_source_get_uid (source);
+	display_name = e_source_get_display_name (source);
+
+	g_message ("Source '%s' added (uid:%s)", display_name, uid);
+}
+
+static void
+source_removed (ESourceRegistry *registry,
+                ESource *source,
+                EDataCalFactory *factory)
+{
+	ECalBackend *backend;
+	const gchar *display_name;
+	const gchar *uid;
+	GError *error = NULL;
+
+	uid = e_source_get_uid (source);
+	display_name = e_source_get_display_name (source);
+
+	g_message ("Source '%s' removed (uid:%s)", display_name, uid);
+
+	backend = g_hash_table_lookup (factory->priv->backends, uid);
+
+	if (backend == NULL) {
+		g_message ("No corresponding backend found");
+		return;
+	}
+
+	g_message ("Notifying backend of removal");
+
+	if (e_cal_backend_remove (backend, &error))
+		g_message ("Backend cleanup was successful");
+	else {
+		g_message ("Backend cleanup failed: %s", error->message);
+		g_error_free (error);
+	}
+}
+
 static GOptionEntry entries[] = {
 
 	/* FIXME Have the description translated for 3.2, but this
@@ -922,6 +861,7 @@ main (gint argc, gchar **argv)
 	EOfflineListener *eol;
 	GOptionContext *context;
 	EDataCalFactory *factory;
+	ESourceRegistry *registry;
 	guint owner_id;
 	GError *error = NULL;
 
@@ -969,8 +909,32 @@ main (gint argc, gchar **argv)
 	ical_set_unknown_token_handling_setting (ICAL_DISCARD_TOKEN);
 #endif
 
+	/* Register ESource extensions we'll need. */
+	E_TYPE_SOURCE_CALENDAR;
+	E_TYPE_SOURCE_MEMO_LIST;
+	E_TYPE_SOURCE_TASK_LIST;
+
+	registry = e_source_registry_get_default ();
 	factory = g_object_new (E_TYPE_DATA_CAL_FACTORY, NULL);
 
+	g_signal_connect (
+		registry, "load-error",
+		G_CALLBACK (source_load_error), NULL);
+
+	g_signal_connect (
+		registry, "source-added",
+		G_CALLBACK (source_added), factory);
+
+	g_signal_connect (
+		registry, "source-removed",
+		G_CALLBACK (source_removed), factory);
+
+	/* Failure here is fatal.  Don't even try to keep going. */
+	if (!e_source_registry_load_sources (registry, &error)) {
+		g_error ("%s", error->message);
+		g_assert_not_reached ();
+	}
+
 	loop = g_main_loop_new (NULL, FALSE);
 
 	eol = e_offline_listener_new ();
@@ -979,7 +943,8 @@ main (gint argc, gchar **argv)
 		eol, "changed",
 		G_CALLBACK (offline_state_changed_cb), factory);
 
-	owner_id = g_bus_own_name (G_BUS_TYPE_SESSION,
+	owner_id = g_bus_own_name (
+		G_BUS_TYPE_SESSION,
 		CALENDAR_DBUS_SERVICE_NAME,
 		G_BUS_NAME_OWNER_FLAGS_NONE,
 		on_bus_acquired,
diff --git a/calendar/libedata-cal/e-data-cal.c b/calendar/libedata-cal/e-data-cal.c
index 87e9dd6..540837c 100644
--- a/calendar/libedata-cal/e-data-cal.c
+++ b/calendar/libedata-cal/e-data-cal.c
@@ -217,15 +217,6 @@ e_data_cal_get_backend (EDataCal *cal)
   return cal->priv->backend;
 }
 
-/* EDataCal::getUri method */
-static gboolean
-impl_Cal_getUri (EGdbusCal *object, GDBusMethodInvocation *invocation, EDataCal *cal)
-{
-	e_gdbus_cal_complete_get_uri (object, invocation, e_cal_backend_get_uri (cal->priv->backend));
-
-	return TRUE;
-}
-
 /* EDataCal::getCacheDir method */
 static gboolean
 impl_Cal_getCacheDir (EGdbusCal *object, GDBusMethodInvocation *invocation, EDataCal *cal)
@@ -265,15 +256,6 @@ impl_Cal_close (EGdbusCal *object, GDBusMethodInvocation *invocation, EDataCal *
 	return TRUE;
 }
 
-/* EDataCal::remove method */
-static gboolean
-impl_Cal_remove (EGdbusCal *object, GDBusMethodInvocation *invocation, EDataCal *cal)
-{
-	e_cal_backend_remove (cal->priv->backend, cal, invocation);
-
-	return TRUE;
-}
-
 /* EDataCal::isReadOnly method */
 static gboolean
 impl_Cal_isReadOnly (EGdbusCal *object, GDBusMethodInvocation *invocation, EDataCal *cal)
@@ -732,25 +714,6 @@ e_data_cal_notify_refresh (EDataCal *cal, EServerMethodContext context, GError *
 }
 
 /**
- * e_data_cal_notify_remove:
- * @cal: A calendar client interface.
- * @error: Operation error, if any, automatically freed if passed it.
- *
- * Notifies listeners of the completion of the remove method call.
- */
-void
-e_data_cal_notify_remove (EDataCal *cal, EServerMethodContext context, GError *error)
-{
-	GDBusMethodInvocation *invocation = context;
-	if (error) {
-		/* Translators: The '%s' is replaced with a detailed error message */
-		data_cal_return_error (invocation, error, _("Cannot remove calendar: %s"));
-		g_error_free (error);
-	} else
-		e_gdbus_cal_complete_remove (cal->priv->gdbus_object, invocation);
-}
-
-/**
  * e_data_cal_notify_object_created:
  * @cal: A calendar client interface.
  * @error: Operation error, if any, automatically freed if passed it.
@@ -1213,12 +1176,10 @@ e_data_cal_init (EDataCal *ecal)
 	ecal->priv->gdbus_object = e_gdbus_cal_stub_new ();
 
 	gdbus_object = ecal->priv->gdbus_object;
-	g_signal_connect (gdbus_object, "handle-get-uri", G_CALLBACK (impl_Cal_getUri), ecal);
 	g_signal_connect (gdbus_object, "handle-get-cache-dir", G_CALLBACK (impl_Cal_getCacheDir), ecal);
 	g_signal_connect (gdbus_object, "handle-open", G_CALLBACK (impl_Cal_open), ecal);
 	g_signal_connect (gdbus_object, "handle-refresh", G_CALLBACK (impl_Cal_refresh), ecal);
 	g_signal_connect (gdbus_object, "handle-close", G_CALLBACK (impl_Cal_close), ecal);
-	g_signal_connect (gdbus_object, "handle-remove", G_CALLBACK (impl_Cal_remove), ecal);
 	g_signal_connect (gdbus_object, "handle-is-read-only", G_CALLBACK (impl_Cal_isReadOnly), ecal);
 	g_signal_connect (gdbus_object, "handle-get-cal-address", G_CALLBACK (impl_Cal_getCalAddress), ecal);
 	g_signal_connect (gdbus_object, "handle-get-alarm-email-address", G_CALLBACK (impl_Cal_getAlarmEmailAddress), ecal);
diff --git a/calendar/libedata-cal/e-data-cal.h b/calendar/libedata-cal/e-data-cal.h
index 05a270d..309536a 100644
--- a/calendar/libedata-cal/e-data-cal.h
+++ b/calendar/libedata-cal/e-data-cal.h
@@ -123,7 +123,6 @@ void e_data_cal_notify_static_capabilities (EDataCal *cal, EServerMethodContext
 
 void e_data_cal_notify_open   (EDataCal *cal, EServerMethodContext context, GError *error);
 void e_data_cal_notify_refresh (EDataCal *cal, EServerMethodContext context, GError *error);
-void e_data_cal_notify_remove (EDataCal *cal, EServerMethodContext context, GError *error);
 
 void e_data_cal_notify_object_created  (EDataCal *cal, EServerMethodContext context, GError *error,
 					const gchar *uid, const gchar *object);
diff --git a/calendar/libedata-cal/e-data-cal.xml b/calendar/libedata-cal/e-data-cal.xml
index 95717d9..d64c0a4 100644
--- a/calendar/libedata-cal/e-data-cal.xml
+++ b/calendar/libedata-cal/e-data-cal.xml
@@ -18,12 +18,6 @@
                   <arg name="mode" type="i"/>
                 </signal>
 		
-		<method name="getUri">
-			<annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_Cal_get_uri"/>
-			<annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
-			<arg name="str_uri_copy" type="s" direction="out"/>
-		</method>
-
 		<method name="getCacheDir">
 			<annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_Cal_getCacheDir"/>
 			<annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
@@ -46,11 +40,6 @@
 		<method name="close">
 			<annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_Cal_close"/>
 		</method>
-		
-		<method name="remove">
-			<annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_Cal_remove"/>
-			<annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
-		</method>		
 
 		<method name="isReadOnly">
 			<annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_Cal_isReadOnly"/>
diff --git a/calendar/libegdbus/e-gdbus-egdbuscal.c b/calendar/libegdbus/e-gdbus-egdbuscal.c
index 4b698cc..4ec5169 100644
--- a/calendar/libegdbus/e-gdbus-egdbuscal.c
+++ b/calendar/libegdbus/e-gdbus-egdbuscal.c
@@ -319,7 +319,6 @@ e_gdbus_cal_default_init (EGdbusCalIface *iface)
   g_hash_table_insert (_method_name_to_id, (gpointer) "open", GUINT_TO_POINTER (__OPEN_METHOD));
   g_hash_table_insert (_method_name_to_id, (gpointer) "refresh", GUINT_TO_POINTER (__REFRESH_METHOD));
   g_hash_table_insert (_method_name_to_id, (gpointer) "close", GUINT_TO_POINTER (__CLOSE_METHOD));
-  g_hash_table_insert (_method_name_to_id, (gpointer) "remove", GUINT_TO_POINTER (__REMOVE_METHOD));
   g_hash_table_insert (_method_name_to_id, (gpointer) "isReadOnly", GUINT_TO_POINTER (__IS_READ_ONLY_METHOD));
   g_hash_table_insert (_method_name_to_id, (gpointer) "getCalAddress", GUINT_TO_POINTER (__GET_CAL_ADDRESS_METHOD));
   g_hash_table_insert (_method_name_to_id, (gpointer) "getAlarmEmailAddress", GUINT_TO_POINTER (__GET_ALARM_EMAIL_ADDRESS_METHOD));
@@ -594,30 +593,6 @@ e_gdbus_cal_default_init (EGdbusCalIface *iface)
 		  1,
 		  G_TYPE_DBUS_METHOD_INVOCATION);
   /**
-   * EGdbusCal::handle-remove:
-   * @object: The exported object emitting the signal.
-   * @invocation: A #GDBusMethodInvocation object that can be used to return a value or error.
-   *
-   * On exported objects, this signal is emitted when a remote process (identified by @invocation) invokes the <literal>remove</literal> D-Bus method on @object. Use e_gdbus_cal_complete_remove() to return a value or g_dbus_method_invocation_return_error() to return an error.
-   *
-   * The signal is emitted in the thread-default main loop of the thread that e_gdbus_cal_register_object() was called from.
-   *
-   * On proxies, this signal is never emitted.
-   *
-   * Returns: %TRUE if you want to handle the method call (will stop further handlers from being called), %FALSE otherwise.
-   */
-  signals[__REMOVE_METHOD] =
-    g_signal_new ("handle-remove",
-		  G_TYPE_FROM_INTERFACE (iface),
-		  G_SIGNAL_RUN_LAST,
-		  G_STRUCT_OFFSET (EGdbusCalIface, handle_remove),
-		  g_signal_accumulator_true_handled,
-		  NULL,
-		  _e_gdbus_gdbus_cclosure_marshaller_BOOLEAN__OBJECT,
-		  G_TYPE_BOOLEAN,
-		  1,
-		  G_TYPE_DBUS_METHOD_INVOCATION);
-  /**
    * EGdbusCal::handle-is-read-only:
    * @object: The exported object emitting the signal.
    * @invocation: A #GDBusMethodInvocation object that can be used to return a value or error.
@@ -1746,106 +1721,6 @@ _out:
 }
 
 /**
- * e_gdbus_cal_call_remove:
- * @proxy: A #EGdbusCal.
- * @cancellable: A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.
- * @user_data: Data to pass to @callback.
- *
- * Invokes the <literal>org.gnome.evolution.dataserver.Calendar.remove</literal>
- * D-Bus method on the remote object represented by @proxy.
- *
- * This is an asynchronous method. When the operation is finished,
- * callback will be invoked in the thread-default main loop of the
- * thread you are calling this method from. You can then call
- * e_gdbus_cal_call_remove_finish() to get the result of the operation.
- *
- * See e_gdbus_cal_call_remove_sync() for the synchronous version of this method.
- */
-void e_gdbus_cal_call_remove (
-        EGdbusCal *proxy,
-        GCancellable *cancellable,
-        GAsyncReadyCallback callback,
-        gpointer user_data)
-{
-  GVariant *_params;
-  _params = NULL;
-  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
-                     "remove",
-		     _params,
-		     G_DBUS_CALL_FLAGS_NONE,
-		     e_data_server_util_get_dbus_call_timeout (),
-		     cancellable,
-		     callback,
-		     user_data);
-}
-
-/**
- * e_gdbus_cal_call_remove_finish:
- * @proxy: A #EGdbusCal.
- * @res: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to e_gdbus_cal_call_remove().
- * @error: Return location for error or %NULL.
- *
- * Finishes invoking the <literal>org.gnome.evolution.dataserver.Calendar.remove</literal>
- * D-Bus method on the remote object represented by @proxy.
- *
- * Returns: %TRUE if the call succeeded, %FALSE if @error is set.
- */
-gboolean e_gdbus_cal_call_remove_finish (
-        EGdbusCal *proxy,
-        GAsyncResult *res,
-        GError **error)
-{
-  gboolean _ret = FALSE;
-  GVariant *_result;
-  _result = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
-  if (_result == NULL)
-    goto _out;
-  g_variant_unref (_result);
-  _ret = TRUE;
-_out:
-  return _ret;
-}
-
-/**
- * e_gdbus_cal_call_remove_sync:
- * @proxy: A #EGdbusCal.
- * @cancellable: A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
- *
- * Synchronously invokes the <literal>org.gnome.evolution.dataserver.Calendar.remove</literal>
- * D-Bus method on the remote object represented by @proxy.
- *
- * The calling thread is blocked until a reply is received. See
- * e_gdbus_cal_call_remove() for the asynchronous version of this method.
- *
- * Returns: %TRUE if the call succeeded, %FALSE if @error is set.
- */
-gboolean e_gdbus_cal_call_remove_sync (
-        EGdbusCal *proxy,
-        GCancellable *cancellable,
-        GError **error)
-{
-  gboolean _ret = FALSE;
-  GVariant *_params;
-  GVariant *_result;
-  _params = NULL;
-  _result = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
-                                   "remove",
-				   _params,
-				   G_DBUS_CALL_FLAGS_NONE,
-				   e_data_server_util_get_dbus_call_timeout (),
-				   cancellable,
-				   error);
-  if (_result == NULL)
-    goto _out;
-  g_variant_unref (_result);
-  _ret = TRUE;
-_out:
-  return _ret;
-}
-
-/**
  * e_gdbus_cal_call_is_read_only:
  * @proxy: A #EGdbusCal.
  * @cancellable: A #GCancellable or %NULL.
@@ -4514,26 +4389,6 @@ void e_gdbus_cal_complete_close (
 }
 
 /**
- * e_gdbus_cal_complete_remove:
- * @object: A #EGdbusCal.
- * @invocation: A #GDBusMethodInvocation.
- *
- * Completes handling the <literal>org.gnome.evolution.dataserver.Calendar.remove</literal>
- * D-Bus method invocation by returning a value.
- *
- * If you want to return an error, use g_dbus_method_invocation_return_error()
- * or similar instead.
- *
- * This method will free @invocation, you cannot use it afterwards.
- */
-void e_gdbus_cal_complete_remove (
-        EGdbusCal *object,
-        GDBusMethodInvocation *invocation)
-{
-  g_dbus_method_invocation_return_value (invocation, NULL);
-}
-
-/**
  * e_gdbus_cal_complete_is_read_only:
  * @object: A #EGdbusCal.
  * @invocation: A #GDBusMethodInvocation.
@@ -5290,15 +5145,6 @@ static const GDBusMethodInfo e_gdbus_cal_method_close =
   (GDBusAnnotationInfo **) NULL,
 };
 
-static const GDBusMethodInfo e_gdbus_cal_method_remove =
-{
-  -1,
-  (gchar *) "remove",
-  (GDBusArgInfo **) NULL,
-  (GDBusArgInfo **) NULL,
-  (GDBusAnnotationInfo **) NULL,
-};
-
 static const GDBusMethodInfo e_gdbus_cal_method_isReadOnly =
 {
   -1,
@@ -5982,7 +5828,6 @@ static const GDBusMethodInfo * const e_gdbus_cal_method_info_pointers[] =
   &e_gdbus_cal_method_open,
   &e_gdbus_cal_method_refresh,
   &e_gdbus_cal_method_close,
-  &e_gdbus_cal_method_remove,
   &e_gdbus_cal_method_isReadOnly,
   &e_gdbus_cal_method_getCalAddress,
   &e_gdbus_cal_method_getAlarmEmailAddress,
diff --git a/calendar/libegdbus/e-gdbus-egdbuscal.h b/calendar/libegdbus/e-gdbus-egdbuscal.h
index 0918d8c..edc80e4 100644
--- a/calendar/libegdbus/e-gdbus-egdbuscal.h
+++ b/calendar/libegdbus/e-gdbus-egdbuscal.h
@@ -37,7 +37,6 @@ typedef struct _EGdbusCal EGdbusCal; /* Dummy typedef */
  * @handle_open: Handler for the #EGdbusCal::handle-open signal.
  * @handle_refresh: Handler for the #EGdbusCal::handle-refresh signal.
  * @handle_close: Handler for the #EGdbusCal::handle-close signal.
- * @handle_remove: Handler for the #EGdbusCal::handle-remove signal.
  * @handle_is_read_only: Handler for the #EGdbusCal::handle-is-read-only signal.
  * @handle_get_cal_address: Handler for the #EGdbusCal::handle-get-cal-address signal.
  * @handle_get_alarm_email_address: Handler for the #EGdbusCal::handle-get-alarm-email-address signal.
@@ -218,11 +217,8 @@ struct _EGdbusCalIface
 	EGdbusCal *object,
 	GDBusMethodInvocation *invocation);
   gboolean (*handle_close) (
-	EGdbusCal *object,
-	GDBusMethodInvocation *invocation);
-  gboolean (*handle_remove) (
-	EGdbusCal *object,
-	GDBusMethodInvocation *invocation);
+        EGdbusCal *object,
+        GDBusMethodInvocation *invocation);
   gboolean (*handle_is_read_only) (
 	EGdbusCal *object,
 	GDBusMethodInvocation *invocation);
@@ -408,22 +404,6 @@ gboolean e_gdbus_cal_call_close_sync (
         GCancellable *cancellable,
         GError **error);
 
-void e_gdbus_cal_call_remove (
-        EGdbusCal *proxy,
-        GCancellable *cancellable,
-        GAsyncReadyCallback callback,
-        gpointer user_data);
-
-gboolean e_gdbus_cal_call_remove_finish (
-        EGdbusCal *proxy,
-        GAsyncResult *res,
-        GError **error);
-
-gboolean e_gdbus_cal_call_remove_sync (
-        EGdbusCal *proxy,
-        GCancellable *cancellable,
-        GError **error);
-
 void e_gdbus_cal_call_is_read_only (
         EGdbusCal *proxy,
         GCancellable *cancellable,
@@ -881,10 +861,6 @@ void e_gdbus_cal_complete_close (
         EGdbusCal *object,
         GDBusMethodInvocation *invocation);
 
-void e_gdbus_cal_complete_remove (
-        EGdbusCal *object,
-        GDBusMethodInvocation *invocation);
-
 void e_gdbus_cal_complete_is_read_only (
         EGdbusCal *object,
         GDBusMethodInvocation *invocation);
diff --git a/docs/reference/calendar/libedata-cal/libedata-cal-sections.txt b/docs/reference/calendar/libedata-cal/libedata-cal-sections.txt
index ddfeed8..0ac1e2e 100644
--- a/docs/reference/calendar/libedata-cal/libedata-cal-sections.txt
+++ b/docs/reference/calendar/libedata-cal/libedata-cal-sections.txt
@@ -116,7 +116,6 @@ e_cal_backend_sync_get_ldap_attribute
 e_cal_backend_sync_get_static_capabilities
 e_cal_backend_sync_open
 e_cal_backend_sync_refresh
-e_cal_backend_sync_remove
 e_cal_backend_sync_create_object
 e_cal_backend_sync_modify_object
 e_cal_backend_sync_remove_object
@@ -150,7 +149,6 @@ e_cal_backend_sync_get_type
 <TITLE>ECalBackend</TITLE>
 ECalBackend
 e_cal_backend_get_source
-e_cal_backend_get_uri
 e_cal_backend_get_kind
 e_cal_backend_get_cache_dir
 e_cal_backend_set_cache_dir
@@ -313,7 +311,6 @@ e_data_cal_notify_ldap_attribute
 e_data_cal_notify_static_capabilities
 e_data_cal_notify_open
 e_data_cal_notify_refresh
-e_data_cal_notify_remove
 e_data_cal_notify_object_created
 e_data_cal_notify_object_modified
 e_data_cal_notify_object_removed
diff --git a/docs/reference/calendar/libedata-cal/tmpl/e-cal-backend-sync.sgml b/docs/reference/calendar/libedata-cal/tmpl/e-cal-backend-sync.sgml
index 599359e..c8d0588 100644
--- a/docs/reference/calendar/libedata-cal/tmpl/e-cal-backend-sync.sgml
+++ b/docs/reference/calendar/libedata-cal/tmpl/e-cal-backend-sync.sgml
@@ -122,16 +122,6 @@ Base class for synchronous backends.
 @error: 
 
 
-<!-- ##### FUNCTION e_cal_backend_sync_remove ##### -->
-<para>
-
-</para>
-
- backend: 
- cal: 
- error: 
-
-
 <!-- ##### FUNCTION e_cal_backend_sync_create_object ##### -->
 <para>
 
diff --git a/docs/reference/calendar/libedata-cal/tmpl/e-cal-backend.sgml b/docs/reference/calendar/libedata-cal/tmpl/e-cal-backend.sgml
index e05ef72..1941a22 100644
--- a/docs/reference/calendar/libedata-cal/tmpl/e-cal-backend.sgml
+++ b/docs/reference/calendar/libedata-cal/tmpl/e-cal-backend.sgml
@@ -48,11 +48,6 @@ Base class for calendar/tasks backend implementations.
 
 </para>
 
-<!-- ##### ARG ECalBackend:uri ##### -->
-<para>
-
-</para>
-
 <!-- ##### FUNCTION e_cal_backend_get_source ##### -->
 <para>
 
@@ -62,15 +57,6 @@ Base class for calendar/tasks backend implementations.
 @Returns: 
 
 
-<!-- ##### FUNCTION e_cal_backend_get_uri ##### -->
-<para>
-
-</para>
-
- backend: 
- Returns: 
-
-
 <!-- ##### FUNCTION e_cal_backend_get_kind ##### -->
 <para>
 
@@ -221,8 +207,8 @@ Base class for calendar/tasks backend implementations.
 </para>
 
 @backend: 
- cal: 
- context: 
+ error: 
+ Returns: 
 
 
 <!-- ##### FUNCTION e_cal_backend_create_object ##### -->
diff --git a/docs/reference/calendar/libedata-cal/tmpl/e-data-cal.sgml b/docs/reference/calendar/libedata-cal/tmpl/e-data-cal.sgml
index 6a03e53..d86aacd 100644
--- a/docs/reference/calendar/libedata-cal/tmpl/e-data-cal.sgml
+++ b/docs/reference/calendar/libedata-cal/tmpl/e-data-cal.sgml
@@ -186,16 +186,6 @@ Implementation of the calendar CORBA client interface.
 @error: 
 
 
-<!-- ##### FUNCTION e_data_cal_notify_remove ##### -->
-<para>
-
-</para>
-
- cal: 
- context: 
- error: 
-
-
 <!-- ##### FUNCTION e_data_cal_notify_object_created ##### -->
 <para>
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]