diff options
Diffstat (limited to 'calendar/importers')
-rw-r--r-- | calendar/importers/GNOME_Evolution_Calendar_Importer.server.in.in | 4 | ||||
-rw-r--r-- | calendar/importers/Makefile.am | 40 | ||||
-rw-r--r-- | calendar/importers/icalendar-importer.c | 21 | ||||
-rw-r--r-- | calendar/importers/main.c | 39 |
4 files changed, 44 insertions, 60 deletions
diff --git a/calendar/importers/GNOME_Evolution_Calendar_Importer.server.in.in b/calendar/importers/GNOME_Evolution_Calendar_Importer.server.in.in index c60468f5e8..5492a32f7b 100644 --- a/calendar/importers/GNOME_Evolution_Calendar_Importer.server.in.in +++ b/calendar/importers/GNOME_Evolution_Calendar_Importer.server.in.in @@ -1,8 +1,8 @@ <oaf_info> <oaf_server iid="OAFIID:GNOME_Evolution_Calendar_ImporterFactory" - type="exe" - location="@LIBEXECDIR@/evolution-calendar-importer"> + type="shlib" + location="@IMPORTERSDIR@/libevolution-calendar-importers.so"> <oaf_attribute name="repo_ids" type="stringv"> <item value="IDL:GNOME/ObjectFactory:1.0"/> diff --git a/calendar/importers/Makefile.am b/calendar/importers/Makefile.am index 887e1b97cc..5f82341223 100644 --- a/calendar/importers/Makefile.am +++ b/calendar/importers/Makefile.am @@ -1,4 +1,8 @@ -privlibexec_PROGRAMS = evolution-calendar-importer +importersdir = $(privlibdir)/evolution-calendar-importers + +importers_LTLIBRARIES = libevolution-calendar-importers.la + +# privlibexec_PROGRAMS = evolution-calendar-importer INCLUDES = \ -DEVOLUTION_LOCALEDIR=\""$(localedir)"\" \ @@ -16,26 +20,38 @@ INCLUDES = \ -I$(top_srcdir)/libical/src/libicalvcal \ $(EVOLUTION_CALENDAR_CFLAGS) -evolution_calendar_importer_SOURCES = \ - evolution-calendar-importer.h \ - icalendar-importer.c \ +libevolution_calendar_importers_la_SOURCES = \ + evolution-calendar-importer.h \ + icalendar-importer.c \ main.c -evolution_calendar_importer_LDADD = \ - $(top_builddir)/shell/libeshell.la \ +libevolution_calendar_importers_la_LDFLAGS = -avoid-version -module + +libevolution_calendar_importers_la_LIBADD = \ $(top_builddir)/shell/importer/libevolution-importer.la \ - $(top_builddir)/calendar/cal-util/libcal-util.la \ - $(top_builddir)/calendar/cal-client/libcal-client.la \ - $(top_builddir)/libwombat/libwombat.la \ - $(top_builddir)/libical/src/libical/libical-evolution.la \ $(top_builddir)/libical/src/libicalvcal/libicalvcal-evolution.la \ - $(EVOLUTION_CALENDAR_LIBS) + $(IMPORTERS_LIBS) + +# evolution_calendar_importer_SOURCES = \ +# evolution-calendar-importer.h \ +# icalendar-importer.c \ +# main.c +# +# evolution_calendar_importer_LDADD = \ +# $(top_builddir)/shell/libeshell.la \ +# $(top_builddir)/shell/importer/libevolution-importer.la \ +# $(top_builddir)/calendar/cal-util/libcal-util.la \ +# $(top_builddir)/calendar/cal-client/libcal-client.la \ +# $(top_builddir)/libwombat/libwombat.la \ +# $(top_builddir)/libical/src/libical/libical-evolution.la \ +# $(top_builddir)/libical/src/libicalvcal/libicalvcal-evolution.la \ +# $(EVOLUTION_CALENDAR_LIBS) server_in_files = GNOME_Evolution_Calendar_Importer.server.in.in server_DATA = $(server_in_files:.server.in.in=.server) %.server.in: %.server.in.in - sed -e "s|\@LIBEXECDIR\@|$(libexecdir)|" $< > $@ + sed -e "s|\@IMPORTERSDIR\@|$(importersdir)|" $< > $@ EXTRA_DIST = $(server_in_files) $(server_DATA) diff --git a/calendar/importers/icalendar-importer.c b/calendar/importers/icalendar-importer.c index b8168ff39e..6de5624805 100644 --- a/calendar/importers/icalendar-importer.c +++ b/calendar/importers/icalendar-importer.c @@ -20,6 +20,8 @@ * Boston, MA 02111-1307, USA. */ +#include <string.h> +#include <unistd.h> #include <sys/types.h> #include <fcntl.h> #include <gtk/gtksignal.h> @@ -63,14 +65,14 @@ typedef struct { */ static void -importer_destroy_cb (GtkObject *object, gpointer user_data) +importer_destroy_cb (gpointer user_data) { ICalImporter *ici = (ICalImporter *) user_data; g_return_if_fail (ici != NULL); - gtk_object_unref (GTK_OBJECT (ici->client)); - gtk_object_unref (GTK_OBJECT (ici->tasks_client)); + g_object_unref (ici->client); + g_object_unref (ici->tasks_client); if (ici->icalcomp != NULL) { icalcomponent_free (ici->icalcomp); @@ -424,8 +426,8 @@ ical_importer_new (void) NULL, ici); connect_to_shell (ici); - gtk_signal_connect (GTK_OBJECT (ici->importer), "destroy", - GTK_SIGNAL_FUNC (importer_destroy_cb), ici); + + g_object_weak_ref (G_OBJECT (ici->importer), (GWeakNotify) importer_destroy_cb, ici); return BONOBO_OBJECT (ici->importer); } @@ -548,8 +550,8 @@ vcal_importer_new (void) NULL, ici); connect_to_shell (ici); - gtk_signal_connect (GTK_OBJECT (ici->importer), "destroy", - GTK_SIGNAL_FUNC (importer_destroy_cb), ici); + + g_object_weak_ref (G_OBJECT (ici->importer), (GWeakNotify) importer_destroy_cb, ici); return BONOBO_OBJECT (ici->importer); } @@ -560,7 +562,7 @@ vcal_importer_new (void) static void -gnome_calendar_importer_destroy_cb (GtkObject *object, gpointer user_data) +gnome_calendar_importer_destroy_cb (gpointer user_data) { ICalIntelligentImporter *ici = (ICalIntelligentImporter *) user_data; @@ -733,8 +735,7 @@ gnome_calendar_importer_new (void) ici); - gtk_signal_connect (GTK_OBJECT (importer), "destroy", - GTK_SIGNAL_FUNC (gnome_calendar_importer_destroy_cb), ici); + g_object_weak_ref (G_OBJECT (importer), (GWeakNotify) gnome_calendar_importer_destroy_cb, ici); control = create_checkboxes_control (ici); bonobo_object_add_interface (BONOBO_OBJECT (importer), diff --git a/calendar/importers/main.c b/calendar/importers/main.c index 79d1e7db4a..ba62d63f8b 100644 --- a/calendar/importers/main.c +++ b/calendar/importers/main.c @@ -23,7 +23,8 @@ #ifdef HAVE_CONFIG_H #include <config.h> #endif -#include <bonobo/bonobo-generic-factory.h> +#include <string.h> +#include <bonobo/bonobo-shlib-factory.h> #include <bonobo/bonobo-context.h> #include <bonobo/bonobo-main.h> #include "evolution-calendar-importer.h" @@ -52,38 +53,4 @@ importer_factory_fn (BonoboGenericFactory *factory, const char *id, void *closur return object; } -static void -init_importer (void) -{ - BonoboGenericFactory *factory; - - factory = bonobo_generic_factory_new (IMPORTER_FACTORY_ID, - importer_factory_fn, NULL); - if (factory == NULL) { - g_error ("Unable to create factory"); - exit (0); - } - - bonobo_running_context_auto_exit_unref (BONOBO_OBJECT (factory)); -} - -int -main (int argc, char *argv[]) -{ - CORBA_ORB orb; - - bindtextdomain(GETTEXT_PACKAGE, EVOLUTION_LOCALEDIR); - textdomain(GETTEXT_PACKAGE); - - g_type_init (); - bonobo_activation_init (argc, argv); - if (bonobo_init (&argc, argv) == FALSE) { - g_error ("Could not initialize Bonobo."); - exit (0); - } - - init_importer (); - bonobo_main (); - - return 0; -} +BONOBO_ACTIVATION_SHLIB_FACTORY (IMPORTER_FACTORY_ID, "Evolution Calendar importer factory", importer_factory_fn, NULL) |