[evolution-couchdb] calendar: Install to correct place and do proper initialization



commit 095d269b23676aa6a91582375c02fdb4970818bb
Author: Rodrigo Moya <rodrigo gnome-db org>
Date:   Tue Jun 21 16:59:56 2011 +0200

    calendar: Install to correct place and do proper initialization

 addressbook/Makefile.am                  |    2 +-
 calendar/Makefile.am                     |    2 +-
 calendar/e-cal-backend-couchdb-factory.c |  109 ++++++------------------------
 configure.ac                             |   11 ++-
 4 files changed, 30 insertions(+), 94 deletions(-)
---
diff --git a/addressbook/Makefile.am b/addressbook/Makefile.am
index 9f4caf3..688d7ed 100644
--- a/addressbook/Makefile.am
+++ b/addressbook/Makefile.am
@@ -2,7 +2,7 @@ INCLUDES =						\
 	$(EVOLUTION_CFLAGS)				\
 	-I$(top_srcdir)
 
-extensiondir = $(EDS_EXTENSION_DIR)
+extensiondir = $(EDS_BOOK_EXTENSION_DIR)
 extension_LTLIBRARIES = libebookbackendcouchdb.la
 
 libebookbackendcouchdb_la_SOURCES =		\
diff --git a/calendar/Makefile.am b/calendar/Makefile.am
index f988591..46ab86b 100644
--- a/calendar/Makefile.am
+++ b/calendar/Makefile.am
@@ -2,7 +2,7 @@ INCLUDES =						\
 	$(EVOLUTION_CFLAGS)				\
 	-I$(top_srcdir)
 
-extensiondir = $(EDS_EXTENSION_DIR)
+extensiondir = $(EDS_CAL_EXTENSION_DIR)
 extension_LTLIBRARIES = libecalbackendcouchdb.la
 
 libecalbackendcouchdb_la_SOURCES =		\
diff --git a/calendar/e-cal-backend-couchdb-factory.c b/calendar/e-cal-backend-couchdb-factory.c
index daf1fd6..15a84ef 100644
--- a/calendar/e-cal-backend-couchdb-factory.c
+++ b/calendar/e-cal-backend-couchdb-factory.c
@@ -25,25 +25,20 @@
 
 #include <string.h>
 
-#include "e-cal-backend-couchdb-factory.h"
-
 #include <libebackend/e-data-server-module.h>
 #include <libedata-cal/e-cal-backend-factory.h>
+#include "e-cal-backend-couchdb-factory.h"
 #include "e-cal-backend-couchdb.h"
 
-typedef struct {
-	ECalBackendFactory parent_object;
-}ECalBackendCouchDBFactory;
+typedef ECalBackendFactory      ECalBackendCouchdbTodosFactory;
+typedef ECalBackendFactoryClass ECalBackendCouchdbTodosFactoryClass;
 
-typedef struct {
-	ECalBackendFactoryClass parent_class;
-}ECalBackendCouchDBFactoryClass;
-
-static void
-e_cal_backend_couchdb_factory_instance_init (ECalBackendCouchDBFactory *factory)
-{
+GType e_cal_backend_couchdb_todos_factory_get_type (void);
 
-}
+G_DEFINE_DYNAMIC_TYPE(
+	ECalBackendCouchdbTodosFactory,
+	e_cal_backend_couchdb_todos_factory,
+	E_TYPE_CAL_BACKEND_FACTORY)
 
 static const gchar *
 get_protocol (ECalBackendFactory *factory)
@@ -67,94 +62,28 @@ todos_get_kind (ECalBackendFactory *factory)
 	return ICAL_VTODO_COMPONENT;
 }
 
-static ECalBackend*
-events_new_backend (ECalBackendFactory *factory, ESource *source)
-{
-	return g_object_new (e_cal_backend_couchdb_get_type (),
-			     "source", source,
-			     "kind", ICAL_VEVENT_COMPONENT,
-			     NULL);
-}
-
-static icalcomponent_kind
-events_get_kind (ECalBackendFactory *factory)
-{
-	return ICAL_VEVENT_COMPONENT;
-}
-
 static void
-todos_backend_factory_class_init (ECalBackendCouchDBFactoryClass *klass)
+e_cal_backend_couchdb_todos_factory_init (ECalBackendFactory *factory)
 {
-	E_CAL_BACKEND_FACTORY_CLASS (klass)->get_protocol = get_protocol;
-	E_CAL_BACKEND_FACTORY_CLASS (klass)->get_kind     = todos_get_kind;
-	E_CAL_BACKEND_FACTORY_CLASS (klass)->new_backend  = todos_new_backend;
 }
 
 static void
-events_backend_factory_class_init (ECalBackendCouchDBFactoryClass *klass)
-{
-	E_CAL_BACKEND_FACTORY_CLASS (klass)->get_protocol = get_protocol;
-	E_CAL_BACKEND_FACTORY_CLASS (klass)->get_kind     = events_get_kind;
-	E_CAL_BACKEND_FACTORY_CLASS (klass)->new_backend  = events_new_backend;
-}
-
-static GType
-events_backend_factory_get_type (GTypeModule *module)
+e_cal_backend_couchdb_todos_factory_class_init (ECalBackendFactoryClass *klass)
 {
-	GType type;
-
-	GTypeInfo info = {
-		sizeof (ECalBackendCouchDBFactoryClass),
-		NULL, /* base_class_init */
-		NULL, /* base_class_finalize */
-		(GClassInitFunc)  events_backend_factory_class_init,
-		NULL, /* class_finalize */
-		NULL, /* class_data */
-		sizeof (ECalBackend),
-		0,    /* n_preallocs */
-		(GInstanceInitFunc) e_cal_backend_couchdb_factory_instance_init
-	};
-
-	type = g_type_module_register_type (module,
-					    E_TYPE_CAL_BACKEND_FACTORY,
-					    "ECalBackendCouchDBEventsFactory",
-					    &info, 0);
-
-	return type;
+	klass->get_protocol = get_protocol;
+	klass->get_kind     = todos_get_kind;
+	klass->new_backend  = todos_new_backend;
 }
 
-static GType
-todos_backend_factory_get_type (GTypeModule *module)
+static void
+e_cal_backend_couchdb_todos_factory_class_finalize (ECalBackendFactoryClass *klass)
 {
-	GType type;
-
-	GTypeInfo info = {
-		sizeof (ECalBackendCouchDBFactoryClass),
-		NULL, /* base_class_init */
-		NULL, /* base_class_finalize */
-		(GClassInitFunc)  todos_backend_factory_class_init,
-		NULL, /* class_finalize */
-		NULL, /* class_data */
-		sizeof (ECalBackend),
-		0,    /* n_preallocs */
-		(GInstanceInitFunc) e_cal_backend_couchdb_factory_instance_init
-	};
-
-	type = g_type_module_register_type (module,
-					    E_TYPE_CAL_BACKEND_FACTORY,
-					    "ECalBackendCouchDBTodosFactory",
-					    &info, 0);
-
-	return type;
 }
 
-static GType couchdb_types[2];
-
 void
 eds_module_initialize (GTypeModule *module)
 {
-	couchdb_types[0] = todos_backend_factory_get_type (module);
-	couchdb_types[1] = events_backend_factory_get_type (module);
+	e_cal_backend_couchdb_todos_factory_register_type (module);
 }
 
 void
@@ -165,6 +94,10 @@ eds_module_shutdown (void)
 void
 eds_module_list_types (const GType **types, gint *num_types)
 {
+	static GType couchdb_types[1];
+
+	couchdb_types[0] = e_cal_backend_couchdb_todos_factory_get_type ();
+
 	*types = couchdb_types;
-	*num_types = 2;
+	*num_types = G_N_ELEMENTS (couchdb_types);
 }
diff --git a/configure.ac b/configure.ac
index 7cee6b0..e015782 100644
--- a/configure.ac
+++ b/configure.ac
@@ -36,7 +36,7 @@ localedir='$(prefix)/$(DATADIRNAME)/locale'
 AC_SUBST(localedir)
 
 dnl Check for dependencies
-PKG_CHECK_MODULES(EVOLUTION, glib-2.0 couchdb-glib-1.0 >= 0.6.93 desktopcouch-glib-1.0 >= 0.6.93 libebook-1.2 libedata-book-1.2 dbus-glib-1 gnome-keyring-1)
+PKG_CHECK_MODULES(EVOLUTION, glib-2.0 couchdb-glib-1.0 >= 0.6.93 desktopcouch-glib-1.0 >= 0.6.93 libebook-1.2 libedata-book-1.2 dbus-glib-1 gnome-keyring-1 libedata-cal-1.2)
 AC_SUBST(EVOLUTION_CFLAGS)
 AC_SUBST(EVOLUTION_LIBS)
 
@@ -59,15 +59,18 @@ AC_SUBST(EVOLUTION_PLUGINS_DIR)
 EDS_API_VERSION=1.2
 if test "$EVOLUTION_PLUGIN" = "evolution-plugin-3.0"; then
 	PKG_CHECK_EXISTS(libedata-book-1.2,
-		EDS_EXTENSION_DIR=`$PKG_CONFIG --variable=backenddir libedata-book-1.2`,
+		EDS_BOOK_EXTENSION_DIR=`$PKG_CONFIG --variable=backenddir libedata-book-1.2`
+		EDS_CAL_EXTENSION_DIR=`$PKG_CONFIG --variable=backenddir libedata-cal-1.2`,
 		AC_MSG_ERROR(You need evolution-data-server to compile evolution-couchdb))
 else
 	PKG_CHECK_EXISTS(evolution-data-server-1.2,
-		EDS_EXTENSION_DIR=`$PKG_CONFIG --variable=extensiondir evolution-data-server-1.2`,
+		EDS_BOOK_EXTENSION_DIR=`$PKG_CONFIG --variable=extensiondir evolution-data-server-1.2`
+		EDS_CAL_EXTENSION_DIR=`$PKG_CONFIG --variable=extensiondir evolution-data-server-1.2`,
 		AC_MSG_ERROR(You need evolution-data-server to compile evolution-couchdb))
 fi
 AC_SUBST(EDS_API_VERSION)
-AC_SUBST(EDS_EXTENSION_DIR)
+AC_SUBST(EDS_BOOK_EXTENSION_DIR)
+AC_SUBST(EDS_CAL_EXTENSION_DIR)
 
 dnl Makefiles
 AC_OUTPUT([



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