diff options
author | Rodrigo Moya <rodrigo@ximian.com> | 2002-05-17 00:41:35 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@src.gnome.org> | 2002-05-17 00:41:35 +0800 |
commit | 48140af35f90d7ec4f994821a5265b1fe0159cfa (patch) | |
tree | dd2bde3e78c4fd5db7a97dbb754b59edf66bbb4e /calendar/pcs/cal.c | |
parent | aad3ac6ddd62d5cd1b3421f5bf45ccdcf1b0ed35 (diff) | |
download | gsoc2013-evolution-48140af35f90d7ec4f994821a5265b1fe0159cfa.tar.gz 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.c | 28 |
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 */ |