From ff5efe1b1986c616f5b2168d2a7512ef0545e099 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Wed, 2 Nov 2011 12:43:36 +0000 Subject: [PATCH] Monotone-Parent: ca32e7014fbdeca8576a2cd0926f5921a097e971 Monotone-Revision: 3e37d64800faf93e948c9831e2985ae7f4da314a Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2011-11-02T12:43:36 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 5 +++++ OpenChange/MAPIStoreCalendarMessage.m | 23 +++++++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 09e770858..baee5b509 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-11-02 Wolfgang Sourdeau + + * OpenChange/MAPIStoreCalendarMessage.m (-save): handle all day + events based on the value of PidLidAppointmentSubType. + 2011-11-01 Wolfgang Sourdeau * OpenChange/MAPIStoreCalendarMessage.m (-save): added work-around diff --git a/OpenChange/MAPIStoreCalendarMessage.m b/OpenChange/MAPIStoreCalendarMessage.m index 0b5f39ad0..07a34ee52 100644 --- a/OpenChange/MAPIStoreCalendarMessage.m +++ b/OpenChange/MAPIStoreCalendarMessage.m @@ -610,6 +610,7 @@ - (void) save { iCalCalendar *vCalendar; + BOOL isAllDay; iCalDateTime *start, *end; iCalTimeZone *tz; NSCalendarDate *now; @@ -715,6 +716,10 @@ tz = [iCalTimeZone timeZoneForName: tzName]; [vCalendar addTimeZone: tz]; + isAllDay = [[properties + objectForKey: MAPIPropertyKey (PidLidAppointmentSubType)] + boolValue]; + // start value = [properties objectForKey: MAPIPropertyKey (PR_START_DATE)]; if (!value) @@ -723,8 +728,13 @@ if (value) { start = (iCalDateTime *) [newEvent uniqueChildWithTag: @"dtstart"]; - [start setTimeZone: tz]; - [start setDateTime: value]; + if (isAllDay) + [start setDate: value]; + else + { + [start setTimeZone: tz]; + [start setDateTime: value]; + } } /* end */ @@ -734,8 +744,13 @@ if (value) { end = (iCalDateTime *) [newEvent uniqueChildWithTag: @"dtend"]; - [end setTimeZone: tz]; - [end setDateTime: value]; + if (isAllDay) + [end setDate: value]; + else + { + [end setTimeZone: tz]; + [end setDateTime: value]; + } } /* priority */