diff --git a/ChangeLog b/ChangeLog index 582a816ef..7b414324e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -35,6 +35,19 @@ looking for an event for a specific user, we now search into all the user's calendar folders. + * UI/MailPartViewers/UIxMailPartICalViewer.m + ([UIxMailPartICalViewer -startCalendarDate]): new method that returns + the start date with the proper timezone. + ([-endCalendarDate]): idem for the end date. + ([-startDate]): new method that returns a formatted string of the + start date. + ([-endDate]): idem for the end date. Also take care of all-day events. + ([-startTime]): new method that returns a formatted string ot the + start time. + ([-endTime]): idem for the end time. + ([-isEndDateOnSameDay]): must subtract 1 second from end date when + it's a all-day event. + 2009-03-24 Wolfgang Sourdeau * UI/Scheduler/UIxComponentEditor.m ([UIxComponentEditor diff --git a/UI/MailPartViewers/UIxMailPartICalViewer.m b/UI/MailPartViewers/UIxMailPartICalViewer.m index 4a18f0284..69916a243 100644 --- a/UI/MailPartViewers/UIxMailPartICalViewer.m +++ b/UI/MailPartViewers/UIxMailPartICalViewer.m @@ -164,7 +164,7 @@ return item; } -- (NSCalendarDate *) startTime +- (NSCalendarDate *) startCalendarDate { NSCalendarDate *date; NSTimeZone *timeZone; @@ -172,11 +172,21 @@ date = [[self inEvent] startDate]; timeZone = [[context activeUser] timeZone]; [date setTimeZone: timeZone]; - + return date; } -- (NSCalendarDate *) endTime +- (NSString *) startDate +{ + return [[self dateFormatter] formattedDate: [self startCalendarDate]]; +} + +- (NSString *) startTime +{ + return [[self dateFormatter] formattedTime: [self startCalendarDate]]; +} + +- (NSCalendarDate *) endCalendarDate { NSCalendarDate *date; NSTimeZone *timeZone; @@ -188,14 +198,35 @@ return date; } +- (NSString *) endDate +{ + NSCalendarDate *aDate; + if ([[self inEvent] isAllDay]) + aDate = [[self endCalendarDate] dateByAddingYears:0 months:0 days:0 hours:0 minutes:0 seconds:-1]; + else + aDate = [self endCalendarDate]; + + return [[self dateFormatter] formattedDate: aDate]; +} + +- (NSString *) endTime +{ + return [[self dateFormatter] formattedTime: [self endCalendarDate]]; +} + - (BOOL) isEndDateOnSameDay { - return [[self startTime] isDateOnSameDay:[self endTime]]; + NSCalendarDate *aDate; + if ([[self inEvent] isAllDay]) + aDate = [[self endCalendarDate] dateByAddingYears:0 months:0 days:0 hours:0 minutes:0 seconds:-1]; + else + aDate = [self endCalendarDate]; + return [[self startCalendarDate] isDateOnSameDay: aDate]; } - (NSTimeInterval) duration { - return [[self endTime] timeIntervalSinceDate:[self startTime]]; + return [[self endCalendarDate] timeIntervalSinceDate:[self startCalendarDate]]; } /* calendar folder support */ diff --git a/UI/Templates/MailPartViewers/UIxMailPartICalViewer.wox b/UI/Templates/MailPartViewers/UIxMailPartICalViewer.wox index 96bf1e168..cf76b98c8 100644 --- a/UI/Templates/MailPartViewers/UIxMailPartICalViewer.wox +++ b/UI/Templates/MailPartViewers/UIxMailPartICalViewer.wox @@ -167,9 +167,23 @@ : - - - + + + + + + + + + + + + + + + + +