Monotone-Parent: 1d8390cb8afe22fe543231383205ab7e41337609

Monotone-Revision: f633654a120834c13835a3ef41a1418e31efffe3

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2008-07-16T21:48:54
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2008-07-16 21:48:54 +00:00
parent f2527bfde3
commit f0d7546b8b
8 changed files with 259 additions and 182 deletions
+44 -3
View File
@@ -24,10 +24,14 @@
#import <Foundation/NSEnumerator.h>
#import <Foundation/NSString.h>
#import <Foundation/NSValue.h>
#import <Foundation/NSTimeZone.h>
#import <NGCards/iCalCalendar.h>
#import <NGCards/iCalPerson.h>
#import <NGObjWeb/WOApplication.h>
#import <NGObjWeb/WOContext+SoObjects.h>
#import <SoObjects/SOGo/NSArray+Utilities.h>
#import <SoObjects/SOGo/SOGoUser.h>
@@ -35,8 +39,31 @@
#import "iCalEntityObject+SOGo.h"
static int utcOffset = -1;
@implementation iCalEntityObject (SOGoExtensions)
static inline int
_computeAllDayOffset()
{
NSTimeZone *tz;
SOGoUser *user;
WOApplication *application;
int offset;
if (utcOffset == -1)
{
tz = [[NSCalendarDate date] timeZone];
utcOffset = [tz secondsFromGMT];
}
application = [WOApplication application];
user = [[application context] activeUser];
offset = utcOffset - [[user timeZone] secondsFromGMT];
return offset;
}
+ (void) initializeSOGoExtensions;
{
if (!iCalDistantFuture)
@@ -140,10 +167,24 @@
}
- (NSNumber *) quickRecordDateAsNumber: (NSCalendarDate *) _date
withOffset: (int) offset
forAllDay: (BOOL) allDay
{
return ((_date == iCalDistantFuture)
? iCalDistantFutureNumber
: [NSNumber numberWithUnsignedInt: [_date timeIntervalSince1970]]);
unsigned int seconds;
NSNumber *dateNumber;
if (_date == iCalDistantFuture)
dateNumber = iCalDistantFutureNumber;
else
{
seconds = [_date timeIntervalSince1970] + offset;
if (allDay)
seconds += _computeAllDayOffset ();
dateNumber = [NSNumber numberWithUnsignedInt: seconds];
}
return dateNumber;
}
- (NSMutableDictionary *) quickRecord