From 48140af35f90d7ec4f994821a5265b1fe0159cfa Mon Sep 17 00:00:00 2001 From: Rodrigo Moya Date: Thu, 16 May 2002 16:41:35 +0000 Subject: added PermissionDenied exception and make it be raised in open, 2002-05-16 Rodrigo Moya * idl/evolution-calendar.idl: added PermissionDenied exception and make it be raised in open, updateObjects and removeObject. * pcs/cal-backend.h: added CAL_BACKEND_OPEN_PERMISSION_DENIED to CalBackendOpenStatus enumeration, added CalBackendResult enumeration. * pcs/cal.c: * pcs/cal-backend.c: * pcs/cal-backend-file.c: adapted to changes in update_objects and remove_object methods. * cal-client/cal-client.[ch]: added CalClientResult enumeration. (cal_client_update_object, cal_client_update_objects, cal_client_remove_object): changed to return a CalClientResult. * conduits/calendar/calendar-conduit.c: * calendar/conduits/todo/todo-conduit.c: * importers/icalendar-importer.c: * gui/dialogs/comp-editor.c: * gui/calendar-model.c: * gui/e-calendar-table.c: * gui/e-day-view.c: * gui/e-itip-control.c: * gui/e-week-view.c: * gui/comp-util.c: * gui/e-tasks.c: * gui/tasks-migrate.c: adapted to changes in cal_client_update_object(s) and cal_client_remove_object. svn path=/trunk/; revision=16932 --- calendar/pcs/cal.c | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'calendar/pcs/cal.c') diff --git a/calendar/pcs/cal.c b/calendar/pcs/cal.c index 5225b5680e..2d2f953a86 100644 --- a/calendar/pcs/cal.c +++ b/calendar/pcs/cal.c @@ -393,12 +393,24 @@ impl_Cal_update_objects (PortableServer_Servant servant, { Cal *cal; CalPrivate *priv; + CalBackendResult result; cal = CAL (bonobo_object_from_servant (servant)); priv = cal->priv; - if (!cal_backend_update_objects (priv->backend, calobj)) + result = cal_backend_update_objects (priv->backend, calobj); + switch (result) { + case CAL_BACKEND_RESULT_INVALID_OBJECT : bonobo_exception_set (ev, ex_GNOME_Evolution_Calendar_Cal_InvalidObject); + break; + case CAL_BACKEND_RESULT_NOT_FOUND : + bonobo_exception_set (ev, ex_GNOME_Evolution_Calendar_Cal_NotFound); + break; + case CAL_BACKEND_RESULT_PERMISSION_DENIED : + bonobo_exception_set (ev, ex_GNOME_Evolution_Calendar_Cal_PermissionDenied); + break; + default : + } } /* Cal::remove_object method */ @@ -409,12 +421,24 @@ impl_Cal_remove_object (PortableServer_Servant servant, { Cal *cal; CalPrivate *priv; + CalBackendResult result; cal = CAL (bonobo_object_from_servant (servant)); priv = cal->priv; - if (!cal_backend_remove_object (priv->backend, uid)) + result = cal_backend_remove_object (priv->backend, uid); + switch (result) { + case CAL_BACKEND_RESULT_INVALID_OBJECT : + bonobo_exception_set (ev, ex_GNOME_Evolution_Calendar_Cal_InvalidObject); + break; + case CAL_BACKEND_RESULT_NOT_FOUND : bonobo_exception_set (ev, ex_GNOME_Evolution_Calendar_Cal_NotFound); + break; + case CAL_BACKEND_RESULT_PERMISSION_DENIED : + bonobo_exception_set (ev, ex_GNOME_Evolution_Calendar_Cal_PermissionDenied); + break; + default : + } } /* Cal::getQuery implementation */ -- cgit v1.2.3