aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/pcs
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/pcs')
-rw-r--r--calendar/pcs/cal-backend.c13
-rw-r--r--calendar/pcs/cal-backend.h1
-rw-r--r--calendar/pcs/cal-factory.c17
-rw-r--r--calendar/pcs/cal.c41
-rw-r--r--calendar/pcs/job.c4
-rw-r--r--calendar/pcs/job.h2
-rw-r--r--calendar/pcs/tlacuache.gnorba5
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