diff options
Diffstat (limited to 'calendar/pcs')
-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 |
7 files changed, 48 insertions, 35 deletions
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 |