Adapt libedata-cal to the new ESource API.
[platform/upstream/evolution-data-server.git] / calendar / libedata-cal / e-cal-backend-factory.c
index 74c95e2..3a5981c 100644 (file)
@@ -19,6 +19,16 @@ G_DEFINE_ABSTRACT_TYPE (
        e_cal_backend_factory,
        E_TYPE_BACKEND_FACTORY)
 
+static EDataCalFactory *
+cal_backend_factory_get_data_factory (EBackendFactory *factory)
+{
+       EExtensible *extensible;
+
+       extensible = e_extension_get_extensible (E_EXTENSION (factory));
+
+       return E_DATA_CAL_FACTORY (extensible);
+}
+
 static const gchar *
 cal_backend_factory_get_hash_key (EBackendFactory *factory)
 {
@@ -59,14 +69,20 @@ cal_backend_factory_new_backend (EBackendFactory *factory,
                                  ESource *source)
 {
        ECalBackendFactoryClass *class;
+       EDataCalFactory *data_factory;
+       ESourceRegistry *registry;
 
        class = E_CAL_BACKEND_FACTORY_GET_CLASS (factory);
        g_return_val_if_fail (g_type_is_a (
                class->backend_type, E_TYPE_CAL_BACKEND), NULL);
 
+       data_factory = cal_backend_factory_get_data_factory (factory);
+       registry = e_data_cal_factory_get_registry (data_factory);
+
        return g_object_new (
                class->backend_type,
                "kind", class->component_kind,
+               "registry", registry,
                "source", source, NULL);
 }