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/gui | |
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/gui')
-rw-r--r-- | calendar/gui/calendar-model.c | 6 | ||||
-rw-r--r-- | calendar/gui/dialogs/comp-editor.c | 23 | ||||
-rw-r--r-- | calendar/gui/e-day-view.c | 18 | ||||
-rw-r--r-- | calendar/gui/e-itip-control.c | 49 | ||||
-rw-r--r-- | calendar/gui/e-week-view.c | 8 | ||||
-rw-r--r-- | calendar/gui/tasks-migrate.c | 2 |
6 files changed, 81 insertions, 25 deletions
diff --git a/calendar/gui/calendar-model.c b/calendar/gui/calendar-model.c index e8317402ac..927b986212 100644 --- a/calendar/gui/calendar-model.c +++ b/calendar/gui/calendar-model.c @@ -1320,7 +1320,7 @@ calendar_model_set_value_at (ETableModel *etm, int col, int row, const void *val return; } - if (!cal_client_update_object (priv->client, comp)) + if (cal_client_update_object (priv->client, comp) != CAL_CLIENT_RESULT_SUCCESS) g_message ("calendar_model_set_value_at(): Could not update the object!"); } @@ -1399,7 +1399,7 @@ calendar_model_append_row (ETableModel *etm, ETableModel *source, gint row) set_complete (comp, e_table_model_value_at(source, CAL_COMPONENT_FIELD_COMPLETE, row)); set_status (comp, e_table_model_value_at(source, CAL_COMPONENT_FIELD_STATUS, row)); - if (!cal_client_update_object (priv->client, comp)) { + if (cal_client_update_object (priv->client, comp) != CAL_CLIENT_RESULT_SUCCESS) { /* FIXME: Show error dialog. */ g_message ("calendar_model_append_row(): Could not add new object!"); } @@ -2270,7 +2270,7 @@ calendar_model_mark_task_complete (CalendarModel *model, ensure_task_complete (comp, -1); - if (!cal_client_update_object (priv->client, comp)) + if (cal_client_update_object (priv->client, comp) != CAL_CLIENT_RESULT_SUCCESS) g_message ("calendar_model_mark_task_complete(): Could not update the object!"); } diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c index cad55ebf08..05710b7581 100644 --- a/calendar/gui/dialogs/comp-editor.c +++ b/calendar/gui/dialogs/comp-editor.c @@ -297,6 +297,7 @@ save_comp (CompEditor *editor) CompEditorPrivate *priv; CalComponent *clone; GList *l; + CalClientResult result; priv = editor->priv; @@ -316,11 +317,29 @@ save_comp (CompEditor *editor) priv->updating = TRUE; - if (!cal_client_update_object (priv->client, priv->comp)) { + result = cal_client_update_object (priv->client, priv->comp); + if (result != CAL_CLIENT_RESULT_SUCCESS) { GtkWidget *dlg; + char *msg; + + switch (result) { + case CAL_CLIENT_RESULT_INVALID_OBJECT : + msg = g_strdup (_("Could not update invalid object")); + break; + case CAL_CLIENT_RESULT_NOT_FOUND : + msg = g_strdup (_("Object not found, not updated")); + break; + case CAL_CLIENT_RESULT_PERMISSION_DENIED : + msg = g_strdup (_("You don't have permissions to update this object")); + break; + default : + msg = g_strdup (_("Could not update object")); + break; + } - dlg = gnome_error_dialog (_("Could not update object!")); + dlg = gnome_error_dialog (msg); gnome_dialog_run_and_close (GNOME_DIALOG (dlg)); + g_free (msg); return FALSE; } else { diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c index 2a346cdbf9..d305190352 100644 --- a/calendar/gui/e-day-view.c +++ b/calendar/gui/e-day-view.c @@ -3996,7 +3996,7 @@ e_day_view_on_delete_occurrence (GtkWidget *widget, gpointer data) comp = cal_component_clone (event->comp); cal_comp_util_add_exdate (comp, event->start, day_view->zone); - if (!cal_client_update_object (day_view->client, comp)) + if (cal_client_update_object (day_view->client, comp) != CAL_CLIENT_RESULT_SUCCESS) g_message ("e_day_view_on_delete_occurrence(): Could not update the object!"); gtk_object_unref (GTK_OBJECT (comp)); @@ -4172,12 +4172,12 @@ e_day_view_on_unrecur_appointment (GtkWidget *widget, gpointer data) /* Now update both CalComponents. Note that we do this last since at * present the updates happen synchronously so our event may disappear. */ - if (!cal_client_update_object (day_view->client, comp)) + if (cal_client_update_object (day_view->client, comp) != CAL_CLIENT_RESULT_SUCCESS) g_message ("e_day_view_on_unrecur_appointment(): Could not update the object!"); gtk_object_unref (GTK_OBJECT (comp)); - if (!cal_client_update_object (day_view->client, new_comp)) + if (cal_client_update_object (day_view->client, new_comp) != CAL_CLIENT_RESULT_SUCCESS) g_message ("e_day_view_on_unrecur_appointment(): Could not update the object!"); gtk_object_unref (GTK_OBJECT (new_comp)); @@ -4712,7 +4712,7 @@ e_day_view_finish_long_event_resize (EDayView *day_view) day_view->resize_drag_pos = E_DAY_VIEW_POS_NONE; - if (cal_client_update_object (day_view->client, comp)) { + if (cal_client_update_object (day_view->client, comp) == CAL_CLIENT_RESULT_SUCCESS) { if (cal_component_has_attendees (comp) && send_component_dialog (comp, FALSE)) itip_send_comp (CAL_COMPONENT_METHOD_REQUEST, comp, day_view->client, NULL); } else { @@ -4773,7 +4773,7 @@ e_day_view_finish_resize (EDayView *day_view) day_view->resize_drag_pos = E_DAY_VIEW_POS_NONE; - if (cal_client_update_object (day_view->client, comp)) { + if (cal_client_update_object (day_view->client, comp) == CAL_CLIENT_RESULT_SUCCESS) { if (cal_component_has_attendees (comp) && send_component_dialog (comp, FALSE)) itip_send_comp (CAL_COMPONENT_METHOD_REQUEST, comp, day_view->client, NULL); } else { @@ -6116,7 +6116,7 @@ e_day_view_on_editing_stopped (EDayView *day_view, summary.altrep = NULL; cal_component_set_summary (event->comp, &summary); - if (cal_client_update_object (day_view->client, event->comp)) { + if (cal_client_update_object (day_view->client, event->comp) == CAL_CLIENT_RESULT_SUCCESS) { if (cal_component_has_attendees (event->comp) && send_component_dialog (event->comp, FALSE)) itip_send_comp (CAL_COMPONENT_METHOD_REQUEST, event->comp, day_view->client, NULL); @@ -7165,7 +7165,8 @@ e_day_view_on_top_canvas_drag_data_received (GtkWidget *widget, if (event->canvas_item) gnome_canvas_item_show (event->canvas_item); - if (cal_client_update_object (day_view->client, comp)) { + if (cal_client_update_object (day_view->client, comp) + == CAL_CLIENT_RESULT_SUCCESS) { if (cal_component_has_attendees (comp) && send_component_dialog (comp, FALSE)) itip_send_comp (CAL_COMPONENT_METHOD_REQUEST, comp, day_view->client, NULL); @@ -7278,7 +7279,8 @@ e_day_view_on_main_canvas_drag_data_received (GtkWidget *widget, if (event->canvas_item) gnome_canvas_item_show (event->canvas_item); - if (cal_client_update_object (day_view->client, comp)) { + if (cal_client_update_object (day_view->client, comp) + == CAL_CLIENT_RESULT_SUCCESS) { if (cal_component_has_attendees (comp) && send_component_dialog (comp, FALSE)) itip_send_comp (CAL_COMPONENT_METHOD_REQUEST, comp, day_view->client, NULL); diff --git a/calendar/gui/e-itip-control.c b/calendar/gui/e-itip-control.c index f8cfe2fea3..75be4d098d 100644 --- a/calendar/gui/e-itip-control.c +++ b/calendar/gui/e-itip-control.c @@ -1548,6 +1548,7 @@ update_item (EItipControl *itip) CalClient *client; CalComponentVType type; GtkWidget *dialog; + CalClientResult result; priv = itip->priv; @@ -1560,10 +1561,27 @@ update_item (EItipControl *itip) clone = icalcomponent_new_clone (priv->ical_comp); icalcomponent_add_component (priv->top_level, clone); - if (!cal_client_update_objects (client, priv->top_level)) - dialog = gnome_warning_dialog (_("Calendar file could not be updated!\n")); - else + result = cal_client_update_objects (client, priv->top_level); + switch (result) { + case CAL_CLIENT_RESULT_INVALID_OBJECT : + dialog = gnome_warning_dialog (_("Object is invalid and cannot be updated\n")); + break; + case CAL_CLIENT_RESULT_CORBA_ERROR : + dialog = gnome_warning_dialog (_("There was an error on the CORBA system\n")); + break; + case CAL_CLIENT_RESULT_NOT_FOUND : + dialog = gnome_warning_dialog (_("Object could not be found\n")); + break; + case CAL_CLIENT_RESULT_PERMISSION_DENIED : + dialog = gnome_warning_dialog (_("You don't have permissions to update the calendar\n")); + break; + case CAL_CLIENT_RESULT_SUCCESS : dialog = gnome_ok_dialog (_("Update complete\n")); + break; + default : + dialog = gnome_warning_dialog (_("Calendar file could not be updated!\n")); + break; + } gnome_dialog_run_and_close (GNOME_DIALOG (dialog)); icalcomponent_remove_component (priv->top_level, clone); @@ -1579,6 +1597,7 @@ update_attendee_status (EItipControl *itip) CalComponentVType type; const char *uid; GtkWidget *dialog; + CalClientResult result; priv = itip->priv; @@ -1634,10 +1653,26 @@ update_attendee_status (EItipControl *itip) } } - if (!cal_client_update_object (client, comp)) - dialog = gnome_warning_dialog (_("Attendee status could not be updated!\n")); - else + result = cal_client_update_object (client, comp); + switch (result) { + case CAL_CLIENT_RESULT_INVALID_OBJECT : + dialog = gnome_warning_dialog (_("Object is invalid and cannot be updated\n")); + break; + case CAL_CLIENT_RESULT_CORBA_ERROR : + dialog = gnome_warning_dialog (_("There was an error on the CORBA system\n")); + break; + case CAL_CLIENT_RESULT_NOT_FOUND : + dialog = gnome_warning_dialog (_("Object could not be found\n")); + break; + case CAL_CLIENT_RESULT_PERMISSION_DENIED : + dialog = gnome_warning_dialog (_("You don't have permissions to update the calendar\n")); + break; + case CAL_CLIENT_RESULT_SUCCESS : dialog = gnome_ok_dialog (_("Attendee status updated\n")); + break; + default : + dialog = gnome_warning_dialog (_("Attendee status could not be updated!\n")); + } } else { dialog = gnome_warning_dialog (_("Attendee status can not be updated " "because the item no longer exists")); @@ -1670,7 +1705,7 @@ remove_item (EItipControl *itip) return; cal_component_get_uid (priv->comp, &uid); - if (cal_client_remove_object (client, uid)) { + if (cal_client_remove_object (client, uid) == CAL_CLIENT_RESULT_SUCCESS) { dialog = gnome_ok_dialog (_("Removal Complete")); gnome_dialog_run_and_close (GNOME_DIALOG (dialog)); } diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c index f0913e3e28..514558cc58 100644 --- a/calendar/gui/e-week-view.c +++ b/calendar/gui/e-week-view.c @@ -3216,7 +3216,7 @@ e_week_view_on_editing_stopped (EWeekView *week_view, summary.altrep = NULL; cal_component_set_summary (event->comp, &summary); - if (cal_client_update_object (week_view->client, event->comp)) { + if (cal_client_update_object (week_view->client, event->comp) == CAL_CLIENT_RESULT_SUCCESS) { if (cal_component_has_attendees (event->comp) && send_component_dialog (event->comp, FALSE)) itip_send_comp (CAL_COMPONENT_METHOD_REQUEST, event->comp, week_view->client, NULL); @@ -3870,7 +3870,7 @@ e_week_view_on_delete_occurrence (GtkWidget *widget, gpointer data) comp = cal_component_clone (event->comp); cal_comp_util_add_exdate (comp, event->start, week_view->zone); - if (!cal_client_update_object (week_view->client, comp)) + if (cal_client_update_object (week_view->client, comp) != CAL_CLIENT_RESULT_SUCCESS) g_message ("e_week_view_on_delete_occurrence(): Could not update the object!"); gtk_object_unref (GTK_OBJECT (comp)); @@ -4030,12 +4030,12 @@ e_week_view_on_unrecur_appointment (GtkWidget *widget, gpointer data) /* Now update both CalComponents. Note that we do this last since at present the updates happen synchronously so our event may disappear. */ - if (!cal_client_update_object (week_view->client, comp)) + if (cal_client_update_object (week_view->client, comp) != CAL_CLIENT_RESULT_SUCCESS) g_message ("e_week_view_on_unrecur_appointment(): Could not update the object!"); gtk_object_unref (GTK_OBJECT (comp)); - if (!cal_client_update_object (week_view->client, new_comp)) + if (cal_client_update_object (week_view->client, new_comp) != CAL_CLIENT_RESULT_SUCCESS) g_message ("e_week_view_on_unrecur_appointment(): Could not update the object!"); gtk_object_unref (GTK_OBJECT (new_comp)); diff --git a/calendar/gui/tasks-migrate.c b/calendar/gui/tasks-migrate.c index 5c9a4fa7c5..c6c6309528 100644 --- a/calendar/gui/tasks-migrate.c +++ b/calendar/gui/tasks-migrate.c @@ -75,7 +75,7 @@ migrate (void) switch (status) { case CAL_CLIENT_GET_SUCCESS: - if (cal_client_update_object (tasks_client, comp)) + if (cal_client_update_object (tasks_client, comp) == CAL_CLIENT_RESULT_SUCCESS) cal_client_remove_object (calendar_client, uid); else success = FALSE; |