evolution r36818 - in trunk: calendar calendar/gui calendar/gui/dialogs plugins/itip-formatter



Author: msuman
Date: Fri Nov 28 08:04:21 2008
New Revision: 36818
URL: http://svn.gnome.org/viewvc/evolution?rev=36818&view=rev

Log:
Fix for bug #561467 - some changes in the core code needed for evolution-mapi.

Modified:
   trunk/calendar/ChangeLog
   trunk/calendar/gui/dialogs/comp-editor.c
   trunk/calendar/gui/itip-utils.c
   trunk/plugins/itip-formatter/ChangeLog
   trunk/plugins/itip-formatter/itip-formatter.c

Modified: trunk/calendar/gui/dialogs/comp-editor.c
==============================================================================
--- trunk/calendar/gui/dialogs/comp-editor.c	(original)
+++ trunk/calendar/gui/dialogs/comp-editor.c	Fri Nov 28 08:04:21 2008
@@ -3046,7 +3046,8 @@
 			set_attendees_for_delegation (send_comp, address, method);
 	}
 
-	if (!e_cal_component_has_attachments (priv->comp)) {
+		if (!e_cal_component_has_attachments (priv->comp) 
+		 || e_cal_get_static_capability (priv->client, CAL_STATIC_CAPABILITY_CREATE_MESSAGES)) {
 		if (itip_send_comp (method, send_comp, priv->client,
 					NULL, NULL, users)) {
 			g_object_unref (send_comp);

Modified: trunk/calendar/gui/itip-utils.c
==============================================================================
--- trunk/calendar/gui/itip-utils.c	(original)
+++ trunk/calendar/gui/itip-utils.c	Fri Nov 28 08:04:21 2008
@@ -1147,7 +1147,7 @@
 	gchar *subject = NULL;
 	gboolean retval = FALSE;
 
-	/* check whether backend could handle sending requests/updates */
+	/* check whether backend could handle auto-saving requests/updates */
 	if (method != E_CAL_COMPONENT_METHOD_PUBLISH && e_cal_get_save_schedules (client))
 		return TRUE;
 
@@ -1157,6 +1157,15 @@
 			goto cleanup;
 	}
 
+	/* check whether backend could handle sending requests/updates */
+	if (method != E_CAL_COMPONENT_METHOD_PUBLISH && e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_CREATE_MESSAGES)) {
+		if (users) {
+			g_list_foreach (users, (GFunc) g_free, NULL);
+			g_list_free (users);
+		}
+		return TRUE;
+	}
+
 	/* Tidy up the comp */
 	comp = comp_compliant (method, send_comp, client, zones);
 

Modified: trunk/plugins/itip-formatter/itip-formatter.c
==============================================================================
--- trunk/plugins/itip-formatter/itip-formatter.c	(original)
+++ trunk/plugins/itip-formatter/itip-formatter.c	Fri Nov 28 08:04:21 2008
@@ -1186,6 +1186,26 @@
 
 }
 
+static void 
+update_x (ECalComponent *pitip_comp, ECalComponent *comp) 
+{
+	icalcomponent *itip_icalcomp = e_cal_component_get_icalcomponent (pitip_comp);
+	icalcomponent *icalcomp = e_cal_component_get_icalcomponent (comp);
+
+	icalproperty *prop = icalcomponent_get_first_property (itip_icalcomp, ICAL_X_PROPERTY);
+	while (prop) {
+		const char *name = icalproperty_get_x_name (prop);
+		if (!g_ascii_strcasecmp (name, "X-EVOLUTION-IS-REPLY")) {
+			icalproperty *new_prop = icalproperty_new_x (icalproperty_get_x (prop));
+			icalproperty_set_x_name (new_prop, "X-EVOLUTION-IS-REPLY");
+			icalcomponent_add_property (icalcomp, new_prop);
+		}
+		prop = icalcomponent_get_next_property (itip_icalcomp, ICAL_X_PROPERTY);
+	}
+
+	e_cal_component_set_icalcomponent (comp, icalcomp);
+}
+
 static void
 update_attendee_status (struct _itip_puri *pitip)
 {
@@ -1286,6 +1306,8 @@
 			}
 		}
 
+		update_x (pitip->comp, comp);
+
 		if (itip_view_get_update (ITIP_VIEW (pitip->view))) {
 			e_cal_component_commit_sequence (comp);
 			itip_send_comp (E_CAL_COMPONENT_METHOD_REQUEST, comp, pitip->current_ecal, NULL, NULL, NULL);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]