aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui
diff options
context:
space:
mode:
authorJP Rosevear <jpr@ximian.com>2002-09-05 00:19:21 +0800
committerJP Rosevear <jpr@src.gnome.org>2002-09-05 00:19:21 +0800
commitf768bddb9325e7784477bcbcef0bce2a466a635a (patch)
tree7a5223bc31dc49e046ea4b41e0c3da35467b282c /calendar/gui
parentddaa0af2ceba5de217424eeddfa3f650049ddfa1 (diff)
downloadgsoc2013-evolution-f768bddb9325e7784477bcbcef0bce2a466a635a.tar.gz
gsoc2013-evolution-f768bddb9325e7784477bcbcef0bce2a466a635a.tar.zst
gsoc2013-evolution-f768bddb9325e7784477bcbcef0bce2a466a635a.zip
provide error message param, give a dialog with the message if we get a
2002-09-04 JP Rosevear <jpr@ximian.com> * gui/itip-utils.c (comp_server_send): provide error message param, give a dialog with the message if we get a busy result; return TRUE if we succeed (itip_send_comp): bail out if we had a problem sending via the server * cal-client/cal-client.c (cal_client_send_object): pass back error message if we get the busy exception in the new param * cal-client/cal-client.h: update proto * pcs/cal.c (impl_Cal_send_object): dump backend error message into Busy exception * pcs/cal-backend.h: update proto * pcs/cal-backend.c (cal_backend_send_object): take/pass new error message parameter * pcs/cal-backend-file.c (cal_backend_file_send_object): take new param * idl/evolution-calendar.idl: add errorMsg to Busy exception svn path=/trunk/; revision=17964
Diffstat (limited to 'calendar/gui')
-rw-r--r--calendar/gui/itip-utils.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/calendar/gui/itip-utils.c b/calendar/gui/itip-utils.c
index c6af6989ba..544c9f5e25 100644
--- a/calendar/gui/itip-utils.c
+++ b/calendar/gui/itip-utils.c
@@ -521,15 +521,17 @@ comp_content_type (CalComponent *comp, CalComponentItipMethod method)
}
-static GList *
-comp_server_send (CalComponentItipMethod method, CalComponent *comp, CalClient *client, icalcomponent *zones)
+static gboolean
+comp_server_send (CalComponentItipMethod method, CalComponent *comp, CalClient *client,
+ icalcomponent *zones, GList **users)
{
- CalClientResult result;
+ CalClientSendResult result;
icalcomponent *top_level, *new_top_level = NULL;
- GList *users = NULL;
+ char error_msg[256];
+ gboolean retval = FALSE;
top_level = comp_toplevel_with_zones (method, comp, client, zones);
- result = cal_client_send_object (client, top_level, &new_top_level, &users);
+ result = cal_client_send_object (client, top_level, &new_top_level, users, error_msg);
if (result == CAL_CLIENT_SEND_SUCCESS) {
icalcomponent *ical_comp;
@@ -538,11 +540,17 @@ comp_server_send (CalComponentItipMethod method, CalComponent *comp, CalClient *
icalcomponent_remove_component (new_top_level, ical_comp);
cal_component_set_icalcomponent (comp, ical_comp);
icalcomponent_free (new_top_level);
+
+ retval = TRUE;
+ } else if (result == CAL_CLIENT_SEND_BUSY) {
+ e_notice (NULL, GNOME_MESSAGE_BOX_ERROR, error_msg);
+
+ retval = FALSE;
}
icalcomponent_free (top_level);
- return users;
+ return retval;
}
static gboolean
@@ -800,7 +808,8 @@ itip_send_comp (CalComponentItipMethod method, CalComponent *send_comp,
composer_server = BONOBO_OBJREF (bonobo_server);
/* Give the server a chance to manipulate the comp */
- users = comp_server_send (method, send_comp, client, zones);
+ if (!comp_server_send (method, send_comp, client, zones, &users))
+ goto cleanup;
/* Tidy up the comp */
comp = comp_compliant (method, send_comp);