diff options
Diffstat (limited to 'calendar')
-rw-r--r-- | calendar/ChangeLog | 17 | ||||
-rw-r--r-- | calendar/Makefile.am | 54 | ||||
-rw-r--r-- | calendar/cal-backend.c | 13 | ||||
-rw-r--r-- | calendar/cal-backend.h | 1 | ||||
-rw-r--r-- | calendar/cal-factory.c | 17 | ||||
-rw-r--r-- | calendar/cal.c | 41 | ||||
-rw-r--r-- | calendar/gui/Makefile.am | 54 | ||||
-rw-r--r-- | calendar/job.c | 4 | ||||
-rw-r--r-- | calendar/job.h | 2 | ||||
-rw-r--r-- | calendar/pcs/cal-backend.c | 13 | ||||
-rw-r--r-- | calendar/pcs/cal-backend.h | 1 | ||||
-rw-r--r-- | calendar/pcs/cal-factory.c | 17 | ||||
-rw-r--r-- | calendar/pcs/cal.c | 41 | ||||
-rw-r--r-- | calendar/pcs/job.c | 4 | ||||
-rw-r--r-- | calendar/pcs/job.h | 2 | ||||
-rw-r--r-- | calendar/pcs/tlacuache.gnorba | 5 | ||||
-rw-r--r-- | calendar/tlacuache.gnorba | 5 |
17 files changed, 207 insertions, 84 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 7a4887f927..d4096c2bd8 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,5 +1,22 @@ 2000-01-24 Federico Mena Quintero <federico@helixcode.com> + * tlacuache.c: New main module for the Tlacuache personal calendar + server. + + * tlacuache.gnorba: New gnorba file for Tlacuache, the GNOME + personal calendar server. + + * Makefile.am: Added the stuff necessary to build Tlacuache. + + * cal.c (Cal_get_uri): Convert the URI to a string before + returning it. + + * cal-factory.c (CalFactory_create): Doh, this function is void. + + * job.c (job_add): Use g_idle_add(), not gtk_idle_add(). + +2000-01-24 Federico Mena Quintero <federico@helixcode.com> + * cal-backend.c (cal_backend_remove_cal): New function to remove a calendar client interface object from a backend. (cal_backend_load): Convert the URI to string and use diff --git a/calendar/Makefile.am b/calendar/Makefile.am index 006102a2a7..135ffc4926 100644 --- a/calendar/Makefile.am +++ b/calendar/Makefile.am @@ -1,10 +1,14 @@ SUBDIRS = doc idldir = $(datadir)/idl -idl_DATA = GnomeCal.idl +idl_DATA = \ + GnomeCal.idl \ + gnome-calendar.idl gnorbadir = $(sysconfdir)/CORBA/servers -gnorba_DATA = gnomecal.gnorba +gnorba_DATA = \ + gnomecal.gnorba \ + tlacuache.gnorba help_base = $(datadir)/gnome/help/cal @@ -13,7 +17,8 @@ extra_pilot_bins = \ calendar-conduit-control-applet \ calendar-pilot-sync endif -bin_PROGRAMS = gnomecal $(extra_pilot_bins) + +bin_PROGRAMS = gnomecal tlacuache $(extra_pilot_bins) INCLUDES = \ -I$(includedir) \ @@ -29,11 +34,8 @@ GNOMECAL_CORBA_GENERATED = \ GnomeCal-skels.c \ GnomeCal-stubs.c -$(GNOMECAL_CORBA_GENERATED): my_gnomecal_idl - -my_gnomecal_idl: GnomeCal.idl +$(GNOMECAL_CORBA_GENERATED): GnomeCal.idl orbit-idl $(srcdir)/GnomeCal.idl - touch my_gnomecal_idl corba-cal.c \ corba-cal.h \ @@ -107,12 +109,46 @@ calendar_pilot_sync_SOURCES = \ timeutil.c \ timeutil.h +GNOME_CALENDAR_CORBA_GENERATED = \ + gnome-calendar.h \ + gnome-calendar-common.c \ + gnome-calendar-skels.c \ + gnome-calendar-stubs.c + +$(GNOME_CALENDAR_CORBA_GENERATED): gnome-calendar.idl + orbit-idl -I`$(GNOME_CONFIG) --datadir`/idl $(srcdir)/gnome-calendar.idl + +tlacuache_SOURCES = \ + $(GNOME_CALENDAR_CORBA_GENERATED) \ + cal.c \ + cal.h \ + cal-backend.c \ + cal-backend.h \ + cal-common.h \ + cal-factory.c \ + cal-factory.h \ + calobj.c \ + calobj.h \ + job.c \ + job.h \ + timeutil.c \ + timeutil.h \ + tlacuache.c + LINK_FLAGS = \ $(GNOME_LIBDIR) \ $(GNOMEGNORBA_LIBS) \ $(INTLLIBS) \ ../libversit/libversit.la +tlacuache_INCLUDES = \ + $(INCLUDES) \ + -DG_LOG_DOMAIN=\"tlacuache\" + +tlacuache_LDADD = \ + $(BONOBO_VFS_GNOME_LIBS) \ + ../libversit/libversit.la + calendar_pilot_sync_LDADD = \ $(PISOCK_LIBDIR) $(PISOCK_LIBS) \ $(LINK_FLAGS) @@ -185,6 +221,10 @@ calendar_conduit_control_applet_LDADD = \ # $(GNOME_PILOT_LIBS) \ # $(INTLLIBS) +gnomecal_INCLUDES = \ + $(INCLUDES) \ + -DG_LOG_DOMAIN=\"gnomecal\" + gnomecal_LDADD = $(LINK_FLAGS) if HAVE_GNOME_PILOT diff --git a/calendar/cal-backend.c b/calendar/cal-backend.c index 649a1dd8f4..6382d1f592 100644 --- a/calendar/cal-backend.c +++ b/calendar/cal-backend.c @@ -21,6 +21,7 @@ #include <config.h> #include "cal-backend.h" +#include "calobj.h" #include "../libversit/vcc.h" @@ -209,7 +210,7 @@ load_from_vobject (CalBackend *backend, VObject *vobject) this = nextVObject (&i); object_name = vObjectName (this); #if 0 - /* FIXME? What is this used for? */ + /* FIXME? What is this used for in gnomecal? */ if (strcmp (object_name, VCDCreatedProp) == 0) { cal->created = time_from_isodate (str_val (this)); continue; @@ -248,7 +249,7 @@ load_from_vobject (CalBackend *backend, VObject *vobject) CalBackend * cal_backend_new (void) { - return CAL_BACKEND (gtk_type_new (TYPE_CAL_BACKEND)); + return CAL_BACKEND (gtk_type_new (CAL_BACKEND_TYPE)); } /** @@ -266,7 +267,7 @@ cal_backend_get_uri (CalBackend *backend) CalBackendPrivate *priv; g_return_val_if_fail (backend != NULL, NULL); - g_return_val_if_fail (IS_CAL_BACKEND, NULL); + g_return_val_if_fail (IS_CAL_BACKEND (backend), NULL); priv = backend->priv; g_return_val_if_fail (priv->loaded, NULL); @@ -297,7 +298,7 @@ cal_backend_add_cal (CalBackend *backend, Cal *cal) g_return_if_fail (cal != NULL); g_return_if_fail (IS_CAL (cal)); - gtk_object_ref (cal); + gtk_object_ref (GTK_OBJECT (cal)); priv->clients = g_list_prepend (priv->clients, cal); } @@ -328,9 +329,9 @@ cal_backend_remove_cal (CalBackend *backend, Cal *cal) if (!l) return; - gtk_object_unref (cal); + gtk_object_unref (GTK_OBJECT (cal)); priv->clients = g_list_remove_link (priv->clients, l); - g_list_free1 (l); + g_list_free_1 (l); } /** diff --git a/calendar/cal-backend.h b/calendar/cal-backend.h index 3c60b6961c..d220943c00 100644 --- a/calendar/cal-backend.h +++ b/calendar/cal-backend.h @@ -23,6 +23,7 @@ #define CAL_BACKEND_H #include <libgnome/gnome-defs.h> +#include <libgnomevfs/gnome-vfs.h> #include "gnome-calendar.h" #include "cal-common.h" #include "cal.h" diff --git a/calendar/cal-factory.c b/calendar/cal-factory.c index 2f31355e73..6a522df67f 100644 --- a/calendar/cal-factory.c +++ b/calendar/cal-factory.c @@ -89,7 +89,7 @@ init_cal_factory_corba_class (void) static void cal_factory_class_init (CalFactoryClass *class) { - GtkObjectClass *parent_class; + GtkObjectClass *object_class; object_class = (GtkObjectClass *) class; @@ -156,7 +156,7 @@ cal_factory_destroy (GtkObject *object) /* CalFactory::load method */ static void CalFactory_load (PortableServer_Servant servant, - CORBA_char *uri, + const CORBA_char *uri, GNOME_Calendar_Listener listener, CORBA_Environment *ev) { @@ -170,9 +170,9 @@ CalFactory_load (PortableServer_Servant servant, } /* CalFactory::create method */ -static GNOME_Calendar_Cal +static void CalFactory_create (PortableServer_Servant servant, - CORBA_char *uri, + const CORBA_char *uri, GNOME_Calendar_Listener listener, CORBA_Environment *ev) { @@ -226,7 +226,7 @@ lookup_backend (CalFactory *factory, GnomeVFSURI *uri) priv = factory->priv; backend = g_hash_table_lookup (priv->backends, uri); - return cal; + return backend; } /* Loads a calendar backend and puts it in the factory's backend hash table */ @@ -236,7 +236,6 @@ load_backend (CalFactory *factory, GnomeVFSURI *uri, GNOME_Calendar_Listener lis CalFactoryPrivate *priv; CalBackend *backend; CalBackendLoadStatus status; - CORBA_Environment ev; priv = factory->priv; @@ -256,7 +255,7 @@ load_backend (CalFactory *factory, GnomeVFSURI *uri, GNOME_Calendar_Listener lis return backend; case CAL_BACKEND_LOAD_ERROR: - gtk_object_unref (backend); + gtk_object_unref (GTK_OBJECT (backend)); return NULL; default: @@ -310,7 +309,7 @@ add_calendar_client (CalFactory *factory, CalBackend *backend, GNOME_Calendar_Li static void load_fn (gpointer data) { - LoadCreateJobData jd; + LoadCreateJobData *jd; CalFactory *factory; GnomeVFSURI *uri; GNOME_Calendar_Listener listener; @@ -447,7 +446,7 @@ cal_factory_new (void) if (ev._major != CORBA_NO_EXCEPTION || retval) { g_message ("cal_factory_new(): could not create the CORBA factory"); - gtk_object_unref (factory); + gtk_object_unref (GTK_OBJECT (factory)); CORBA_exception_free (&ev); return NULL; } diff --git a/calendar/cal.c b/calendar/cal.c index be7c8e74eb..f855def92b 100644 --- a/calendar/cal.c +++ b/calendar/cal.c @@ -31,7 +31,7 @@ typedef struct { CalBackend *backend; /* Listener on the client we notify */ - GNOME_Calendar_listener listener; + GNOME_Calendar_Listener listener; } CalPrivate; @@ -119,8 +119,7 @@ cal_destroy (GtkObject *object) { Cal *cal; CalPrivate *priv; - GList *l; - CORBA_Environment *ev; + CORBA_Environment ev; g_return_if_fail (object != NULL); g_return_if_fail (IS_CAL (object)); @@ -129,13 +128,11 @@ cal_destroy (GtkObject *object) priv = cal->priv; CORBA_exception_init (&ev); + CORBA_Object_release (priv->listener, &ev); + if (ev._major != CORBA_NO_EXCEPTION) + g_message ("cal_destroy(): could not release the listener"); - for (l = priv->listeners; l; l = l->next) { - GNOME_Unknown_unref (l->data, &ev); - CORBA_Object_release (l->data, &ev); - } - - g_list_free (priv->listeners); + CORBA_exception_free (&ev); g_free (priv); @@ -143,7 +140,6 @@ cal_destroy (GtkObject *object) (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); } - /* CORBA servant implementation */ @@ -155,11 +151,20 @@ Cal_get_uri (PortableServer_Servant servant, { Cal *cal; CalPrivate *priv; + GnomeVFSURI *uri; + char *str_uri; + CORBA_char *str_uri_copy; cal = CAL (gnome_object_from_servant (servant)); priv = cal->priv; - return CORBA_string_dup (priv->uri); + uri = cal_backend_get_uri (priv->backend); + str_uri = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE); + str_uri_copy = CORBA_string_dup (str_uri); + g_free (str_uri); + + return str_uri_copy; + } /** @@ -176,7 +181,7 @@ cal_get_epv (void) POA_GNOME_Calendar_Cal__epv *epv; epv = g_new0 (POA_GNOME_Calendar_Cal__epv, 1); - epv->get_uri = Cal_get_uri; + epv->_get_uri = Cal_get_uri; return epv; } @@ -207,8 +212,8 @@ cal_construct (Cal *cal, g_return_val_if_fail (cal != NULL, NULL); g_return_val_if_fail (IS_CAL (cal), NULL); - g_return_val_if_fail (backend != NULL); - g_return_val_if_fail (IS_CAL_BACKEND (backend)); + g_return_val_if_fail (backend != NULL, NULL); + g_return_val_if_fail (IS_CAL_BACKEND (backend), NULL); priv = cal->priv; @@ -283,14 +288,14 @@ cal_new (CalBackend *backend, GNOME_Calendar_Listener listener) CORBA_Environment ev; gboolean ret; - g_return_val_if_fail (backend != NULL); - g_return_val_if_fail (IS_CAL_BACKEND (backend)); + g_return_val_if_fail (backend != NULL, NULL); + g_return_val_if_fail (IS_CAL_BACKEND (backend), NULL); cal = CAL (gtk_type_new (CAL_TYPE)); corba_cal = cal_corba_object_create (GNOME_OBJECT (cal)); CORBA_exception_init (&ev); - ret = CORBA_object_is_nil (corba_cal, &ev); + ret = CORBA_Object_is_nil ((CORBA_Object) corba_cal, &ev); if (ev._major != CORBA_NO_EXCEPTION || ret) { g_message ("cal_new(): could not create the CORBA object"); gtk_object_unref (GTK_OBJECT (cal)); @@ -303,7 +308,7 @@ cal_new (CalBackend *backend, GNOME_Calendar_Listener listener) retval = cal_construct (cal, corba_cal, backend, listener); if (!retval) { g_message ("cal_new(): could not construct the calendar client interface"); - gtk_object_unref (cal); + gtk_object_unref (GTK_OBJECT (cal)); return NULL; } diff --git a/calendar/gui/Makefile.am b/calendar/gui/Makefile.am index 006102a2a7..135ffc4926 100644 --- a/calendar/gui/Makefile.am +++ b/calendar/gui/Makefile.am @@ -1,10 +1,14 @@ SUBDIRS = doc idldir = $(datadir)/idl -idl_DATA = GnomeCal.idl +idl_DATA = \ + GnomeCal.idl \ + gnome-calendar.idl gnorbadir = $(sysconfdir)/CORBA/servers -gnorba_DATA = gnomecal.gnorba +gnorba_DATA = \ + gnomecal.gnorba \ + tlacuache.gnorba help_base = $(datadir)/gnome/help/cal @@ -13,7 +17,8 @@ extra_pilot_bins = \ calendar-conduit-control-applet \ calendar-pilot-sync endif -bin_PROGRAMS = gnomecal $(extra_pilot_bins) + +bin_PROGRAMS = gnomecal tlacuache $(extra_pilot_bins) INCLUDES = \ -I$(includedir) \ @@ -29,11 +34,8 @@ GNOMECAL_CORBA_GENERATED = \ GnomeCal-skels.c \ GnomeCal-stubs.c -$(GNOMECAL_CORBA_GENERATED): my_gnomecal_idl - -my_gnomecal_idl: GnomeCal.idl +$(GNOMECAL_CORBA_GENERATED): GnomeCal.idl orbit-idl $(srcdir)/GnomeCal.idl - touch my_gnomecal_idl corba-cal.c \ corba-cal.h \ @@ -107,12 +109,46 @@ calendar_pilot_sync_SOURCES = \ timeutil.c \ timeutil.h +GNOME_CALENDAR_CORBA_GENERATED = \ + gnome-calendar.h \ + gnome-calendar-common.c \ + gnome-calendar-skels.c \ + gnome-calendar-stubs.c + +$(GNOME_CALENDAR_CORBA_GENERATED): gnome-calendar.idl + orbit-idl -I`$(GNOME_CONFIG) --datadir`/idl $(srcdir)/gnome-calendar.idl + +tlacuache_SOURCES = \ + $(GNOME_CALENDAR_CORBA_GENERATED) \ + cal.c \ + cal.h \ + cal-backend.c \ + cal-backend.h \ + cal-common.h \ + cal-factory.c \ + cal-factory.h \ + calobj.c \ + calobj.h \ + job.c \ + job.h \ + timeutil.c \ + timeutil.h \ + tlacuache.c + LINK_FLAGS = \ $(GNOME_LIBDIR) \ $(GNOMEGNORBA_LIBS) \ $(INTLLIBS) \ ../libversit/libversit.la +tlacuache_INCLUDES = \ + $(INCLUDES) \ + -DG_LOG_DOMAIN=\"tlacuache\" + +tlacuache_LDADD = \ + $(BONOBO_VFS_GNOME_LIBS) \ + ../libversit/libversit.la + calendar_pilot_sync_LDADD = \ $(PISOCK_LIBDIR) $(PISOCK_LIBS) \ $(LINK_FLAGS) @@ -185,6 +221,10 @@ calendar_conduit_control_applet_LDADD = \ # $(GNOME_PILOT_LIBS) \ # $(INTLLIBS) +gnomecal_INCLUDES = \ + $(INCLUDES) \ + -DG_LOG_DOMAIN=\"gnomecal\" + gnomecal_LDADD = $(LINK_FLAGS) if HAVE_GNOME_PILOT diff --git a/calendar/job.c b/calendar/job.c index deb62136f1..d97df6d883 100644 --- a/calendar/job.c +++ b/calendar/job.c @@ -39,7 +39,7 @@ static guint jobs_idle_id; /* Runs a job and dequeues it */ -static gint +static gboolean run_job (gpointer data) { Job *job; @@ -88,7 +88,7 @@ job_add (JobFunc func, gpointer data) jobs_head = g_slist_append (NULL, job); jobs_tail = jobs_head; - jobs_idle_id = gtk_idle_add (run_job, NULL); + jobs_idle_id = g_idle_add (run_job, NULL); } else { g_assert (jobs_tail != NULL); g_assert (jobs_idle_id != 0); diff --git a/calendar/job.h b/calendar/job.h index 07404bd7c0..c9bce24dd4 100644 --- a/calendar/job.h +++ b/calendar/job.h @@ -22,6 +22,8 @@ #ifndef JOB_H #define JOB_H +#include <glib.h> + typedef void (* JobFunc) (gpointer data); diff --git a/calendar/pcs/cal-backend.c b/calendar/pcs/cal-backend.c index 649a1dd8f4..6382d1f592 100644 --- a/calendar/pcs/cal-backend.c +++ b/calendar/pcs/cal-backend.c @@ -21,6 +21,7 @@ #include <config.h> #include "cal-backend.h" +#include "calobj.h" #include "../libversit/vcc.h" @@ -209,7 +210,7 @@ load_from_vobject (CalBackend *backend, VObject *vobject) this = nextVObject (&i); object_name = vObjectName (this); #if 0 - /* FIXME? What is this used for? */ + /* FIXME? What is this used for in gnomecal? */ if (strcmp (object_name, VCDCreatedProp) == 0) { cal->created = time_from_isodate (str_val (this)); continue; @@ -248,7 +249,7 @@ load_from_vobject (CalBackend *backend, VObject *vobject) CalBackend * cal_backend_new (void) { - return CAL_BACKEND (gtk_type_new (TYPE_CAL_BACKEND)); + return CAL_BACKEND (gtk_type_new (CAL_BACKEND_TYPE)); } /** @@ -266,7 +267,7 @@ cal_backend_get_uri (CalBackend *backend) CalBackendPrivate *priv; g_return_val_if_fail (backend != NULL, NULL); - g_return_val_if_fail (IS_CAL_BACKEND, NULL); + g_return_val_if_fail (IS_CAL_BACKEND (backend), NULL); priv = backend->priv; g_return_val_if_fail (priv->loaded, NULL); @@ -297,7 +298,7 @@ cal_backend_add_cal (CalBackend *backend, Cal *cal) g_return_if_fail (cal != NULL); g_return_if_fail (IS_CAL (cal)); - gtk_object_ref (cal); + gtk_object_ref (GTK_OBJECT (cal)); priv->clients = g_list_prepend (priv->clients, cal); } @@ -328,9 +329,9 @@ cal_backend_remove_cal (CalBackend *backend, Cal *cal) if (!l) return; - gtk_object_unref (cal); + gtk_object_unref (GTK_OBJECT (cal)); priv->clients = g_list_remove_link (priv->clients, l); - g_list_free1 (l); + g_list_free_1 (l); } /** diff --git a/calendar/pcs/cal-backend.h b/calendar/pcs/cal-backend.h index 3c60b6961c..d220943c00 100644 --- a/calendar/pcs/cal-backend.h +++ b/calendar/pcs/cal-backend.h @@ -23,6 +23,7 @@ #define CAL_BACKEND_H #include <libgnome/gnome-defs.h> +#include <libgnomevfs/gnome-vfs.h> #include "gnome-calendar.h" #include "cal-common.h" #include "cal.h" diff --git a/calendar/pcs/cal-factory.c b/calendar/pcs/cal-factory.c index 2f31355e73..6a522df67f 100644 --- a/calendar/pcs/cal-factory.c +++ b/calendar/pcs/cal-factory.c @@ -89,7 +89,7 @@ init_cal_factory_corba_class (void) static void cal_factory_class_init (CalFactoryClass *class) { - GtkObjectClass *parent_class; + GtkObjectClass *object_class; object_class = (GtkObjectClass *) class; @@ -156,7 +156,7 @@ cal_factory_destroy (GtkObject *object) /* CalFactory::load method */ static void CalFactory_load (PortableServer_Servant servant, - CORBA_char *uri, + const CORBA_char *uri, GNOME_Calendar_Listener listener, CORBA_Environment *ev) { @@ -170,9 +170,9 @@ CalFactory_load (PortableServer_Servant servant, } /* CalFactory::create method */ -static GNOME_Calendar_Cal +static void CalFactory_create (PortableServer_Servant servant, - CORBA_char *uri, + const CORBA_char *uri, GNOME_Calendar_Listener listener, CORBA_Environment *ev) { @@ -226,7 +226,7 @@ lookup_backend (CalFactory *factory, GnomeVFSURI *uri) priv = factory->priv; backend = g_hash_table_lookup (priv->backends, uri); - return cal; + return backend; } /* Loads a calendar backend and puts it in the factory's backend hash table */ @@ -236,7 +236,6 @@ load_backend (CalFactory *factory, GnomeVFSURI *uri, GNOME_Calendar_Listener lis CalFactoryPrivate *priv; CalBackend *backend; CalBackendLoadStatus status; - CORBA_Environment ev; priv = factory->priv; @@ -256,7 +255,7 @@ load_backend (CalFactory *factory, GnomeVFSURI *uri, GNOME_Calendar_Listener lis return backend; case CAL_BACKEND_LOAD_ERROR: - gtk_object_unref (backend); + gtk_object_unref (GTK_OBJECT (backend)); return NULL; default: @@ -310,7 +309,7 @@ add_calendar_client (CalFactory *factory, CalBackend *backend, GNOME_Calendar_Li static void load_fn (gpointer data) { - LoadCreateJobData jd; + LoadCreateJobData *jd; CalFactory *factory; GnomeVFSURI *uri; GNOME_Calendar_Listener listener; @@ -447,7 +446,7 @@ cal_factory_new (void) if (ev._major != CORBA_NO_EXCEPTION || retval) { g_message ("cal_factory_new(): could not create the CORBA factory"); - gtk_object_unref (factory); + gtk_object_unref (GTK_OBJECT (factory)); CORBA_exception_free (&ev); return NULL; } diff --git a/calendar/pcs/cal.c b/calendar/pcs/cal.c index be7c8e74eb..f855def92b 100644 --- a/calendar/pcs/cal.c +++ b/calendar/pcs/cal.c @@ -31,7 +31,7 @@ typedef struct { CalBackend *backend; /* Listener on the client we notify */ - GNOME_Calendar_listener listener; + GNOME_Calendar_Listener listener; } CalPrivate; @@ -119,8 +119,7 @@ cal_destroy (GtkObject *object) { Cal *cal; CalPrivate *priv; - GList *l; - CORBA_Environment *ev; + CORBA_Environment ev; g_return_if_fail (object != NULL); g_return_if_fail (IS_CAL (object)); @@ -129,13 +128,11 @@ cal_destroy (GtkObject *object) priv = cal->priv; CORBA_exception_init (&ev); + CORBA_Object_release (priv->listener, &ev); + if (ev._major != CORBA_NO_EXCEPTION) + g_message ("cal_destroy(): could not release the listener"); - for (l = priv->listeners; l; l = l->next) { - GNOME_Unknown_unref (l->data, &ev); - CORBA_Object_release (l->data, &ev); - } - - g_list_free (priv->listeners); + CORBA_exception_free (&ev); g_free (priv); @@ -143,7 +140,6 @@ cal_destroy (GtkObject *object) (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); } - /* CORBA servant implementation */ @@ -155,11 +151,20 @@ Cal_get_uri (PortableServer_Servant servant, { Cal *cal; CalPrivate *priv; + GnomeVFSURI *uri; + char *str_uri; + CORBA_char *str_uri_copy; cal = CAL (gnome_object_from_servant (servant)); priv = cal->priv; - return CORBA_string_dup (priv->uri); + uri = cal_backend_get_uri (priv->backend); + str_uri = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE); + str_uri_copy = CORBA_string_dup (str_uri); + g_free (str_uri); + + return str_uri_copy; + } /** @@ -176,7 +181,7 @@ cal_get_epv (void) POA_GNOME_Calendar_Cal__epv *epv; epv = g_new0 (POA_GNOME_Calendar_Cal__epv, 1); - epv->get_uri = Cal_get_uri; + epv->_get_uri = Cal_get_uri; return epv; } @@ -207,8 +212,8 @@ cal_construct (Cal *cal, g_return_val_if_fail (cal != NULL, NULL); g_return_val_if_fail (IS_CAL (cal), NULL); - g_return_val_if_fail (backend != NULL); - g_return_val_if_fail (IS_CAL_BACKEND (backend)); + g_return_val_if_fail (backend != NULL, NULL); + g_return_val_if_fail (IS_CAL_BACKEND (backend), NULL); priv = cal->priv; @@ -283,14 +288,14 @@ cal_new (CalBackend *backend, GNOME_Calendar_Listener listener) CORBA_Environment ev; gboolean ret; - g_return_val_if_fail (backend != NULL); - g_return_val_if_fail (IS_CAL_BACKEND (backend)); + g_return_val_if_fail (backend != NULL, NULL); + g_return_val_if_fail (IS_CAL_BACKEND (backend), NULL); cal = CAL (gtk_type_new (CAL_TYPE)); corba_cal = cal_corba_object_create (GNOME_OBJECT (cal)); CORBA_exception_init (&ev); - ret = CORBA_object_is_nil (corba_cal, &ev); + ret = CORBA_Object_is_nil ((CORBA_Object) corba_cal, &ev); if (ev._major != CORBA_NO_EXCEPTION || ret) { g_message ("cal_new(): could not create the CORBA object"); gtk_object_unref (GTK_OBJECT (cal)); @@ -303,7 +308,7 @@ cal_new (CalBackend *backend, GNOME_Calendar_Listener listener) retval = cal_construct (cal, corba_cal, backend, listener); if (!retval) { g_message ("cal_new(): could not construct the calendar client interface"); - gtk_object_unref (cal); + gtk_object_unref (GTK_OBJECT (cal)); return NULL; } diff --git a/calendar/pcs/job.c b/calendar/pcs/job.c index deb62136f1..d97df6d883 100644 --- a/calendar/pcs/job.c +++ b/calendar/pcs/job.c @@ -39,7 +39,7 @@ static guint jobs_idle_id; /* Runs a job and dequeues it */ -static gint +static gboolean run_job (gpointer data) { Job *job; @@ -88,7 +88,7 @@ job_add (JobFunc func, gpointer data) jobs_head = g_slist_append (NULL, job); jobs_tail = jobs_head; - jobs_idle_id = gtk_idle_add (run_job, NULL); + jobs_idle_id = g_idle_add (run_job, NULL); } else { g_assert (jobs_tail != NULL); g_assert (jobs_idle_id != 0); diff --git a/calendar/pcs/job.h b/calendar/pcs/job.h index 07404bd7c0..c9bce24dd4 100644 --- a/calendar/pcs/job.h +++ b/calendar/pcs/job.h @@ -22,6 +22,8 @@ #ifndef JOB_H #define JOB_H +#include <glib.h> + typedef void (* JobFunc) (gpointer data); diff --git a/calendar/pcs/tlacuache.gnorba b/calendar/pcs/tlacuache.gnorba new file mode 100644 index 0000000000..acf2289229 --- /dev/null +++ b/calendar/pcs/tlacuache.gnorba @@ -0,0 +1,5 @@ +[calendar:cal-factory] +type=exe +repo_id=IDL:GNOME/Calendar/CalFactory:1.0 +description=Calendar factory for the Personal Calendar Server +location_info=tlacuache diff --git a/calendar/tlacuache.gnorba b/calendar/tlacuache.gnorba new file mode 100644 index 0000000000..acf2289229 --- /dev/null +++ b/calendar/tlacuache.gnorba @@ -0,0 +1,5 @@ +[calendar:cal-factory] +type=exe +repo_id=IDL:GNOME/Calendar/CalFactory:1.0 +description=Calendar factory for the Personal Calendar Server +location_info=tlacuache |