Monotone-Parent: c19f9b62fb1cd88301e4921d8d23bb5b5169fb45

Monotone-Revision: 59576b63b875c6db3416e7be726b196610b856a3

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2012-01-12T13:39:18
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2012-01-12 13:39:18 +00:00
parent 74a4c00daa
commit 4c2762e7b2
2 changed files with 25 additions and 14 deletions

View File

@ -1,3 +1,9 @@
2012-01-12 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* OpenChange/MAPIStoreTasksMessage.m (-save): the dates provided
by Outlook for start, due and completed are all-day dates, we thus
need to remove the timezone offset from those dates.
2012-01-11 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* OpenChange/MAPIStoreGCSMessageTable.m

View File

@ -22,8 +22,10 @@
*/
#import <Foundation/NSArray.h>
#import <Foundation/NSCalendarDate.h>
#import <Foundation/NSDictionary.h>
#import <Foundation/NSString.h>
#import <Foundation/NSTimeZone.h>
#import <NGObjWeb/WOContext+SoObjects.h>
#import <NGExtensions/NSObject+Logs.h>
#import <NGCards/iCalCalendar.h>
@ -325,13 +327,11 @@
iCalCalendar *vCalendar;
iCalToDo *vToDo;
id value;
SOGoUserDefaults *ud;
iCalTimeZone *tz;
iCalDateTime *date;
NSString *owner, *status, *priority;
NSString *status, *priority;
NSCalendarDate *now;
NSInteger tzOffset;
owner = [sogoObject ownerInContext: nil];
vToDo = [sogoObject component: YES secure: NO];
vCalendar = [vToDo parent];
[vCalendar setProdID: @"-//Inverse inc.//OpenChange+SOGo//EN"];
@ -366,17 +366,16 @@
[vToDo setTimeStampAsDate: value];
}
ud = [[SOGoUser userWithLogin: owner] userDefaults];
tz = [iCalTimeZone timeZoneForName: [ud timeZoneName]];
[vCalendar addTimeZone: tz];
// start
value = [properties objectForKey: MAPIPropertyKey (PidLidTaskStartDate)];
if (value)
{
date = (iCalDateTime *) [vToDo uniqueChildWithTag: @"dtstart"];
[date setTimeZone: tz];
[date setDateTime: value];
tzOffset = [[value timeZone] secondsFromGMTForDate: value];
value = [value dateByAddingYears: 0 months: 0 days: 0
hours: 0 minutes: 0
seconds: -tzOffset];
[date setDate: value];
}
else
{
@ -388,8 +387,11 @@
if (value)
{
date = (iCalDateTime *) [vToDo uniqueChildWithTag: @"due"];
[date setTimeZone: tz];
[date setDateTime: value];
tzOffset = [[value timeZone] secondsFromGMTForDate: value];
value = [value dateByAddingYears: 0 months: 0 days: 0
hours: 0 minutes: 0
seconds: -tzOffset];
[date setDate: value];
}
else
{
@ -401,8 +403,11 @@
if (value)
{
date = (iCalDateTime *) [vToDo uniqueChildWithTag: @"completed"];
[date setTimeZone: tz];
[date setDateTime: value];
tzOffset = [[value timeZone] secondsFromGMTForDate: value];
value = [value dateByAddingYears: 0 months: 0 days: 0
hours: 0 minutes: 0
seconds: -tzOffset];
[date setDate: value];
}
else
{