aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/pcs/cal.c
diff options
context:
space:
mode:
authorRodrigo Moya <rodrigo@ximian.com>2002-05-17 00:41:35 +0800
committerRodrigo Moya <rodrigo@src.gnome.org>2002-05-17 00:41:35 +0800
commit48140af35f90d7ec4f994821a5265b1fe0159cfa (patch)
treedd2bde3e78c4fd5db7a97dbb754b59edf66bbb4e /calendar/pcs/cal.c
parentaad3ac6ddd62d5cd1b3421f5bf45ccdcf1b0ed35 (diff)
downloadgsoc2013-evolution-48140af35f90d7ec4f994821a5265b1fe0159cfa.tar
gsoc2013-evolution-48140af35f90d7ec4f994821a5265b1fe0159cfa.tar.gz
gsoc2013-evolution-48140af35f90d7ec4f994821a5265b1fe0159cfa.tar.bz2
gsoc2013-evolution-48140af35f90d7ec4f994821a5265b1fe0159cfa.tar.lz
gsoc2013-evolution-48140af35f90d7ec4f994821a5265b1fe0159cfa.tar.xz
gsoc2013-evolution-48140af35f90d7ec4f994821a5265b1fe0159cfa.tar.zst
gsoc2013-evolution-48140af35f90d7ec4f994821a5265b1fe0159cfa.zip
added PermissionDenied exception and make it be raised in open,
2002-05-16 Rodrigo Moya <rodrigo@ximian.com> * 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
Diffstat (limited to 'calendar/pcs/cal.c')
-rw-r--r--calendar/pcs/cal.c28
1 files changed, 26 insertions, 2 deletions
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 */