From 5967911656cd8f0dbc385f67af1cd3254a20c6a5 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Mon, 24 Nov 2008 13:58:04 +0000 Subject: [PATCH] Monotone-Parent: c30c440a14fe8daee4210904dd0d7212fd743325 Monotone-Revision: a6cd236d62a4ba9246dc67535656fddd4588d4ab Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2008-11-24T13:58:04 Monotone-Branch: ca.inverse.sogo --- .../Appointments/iCalEntityObject+SOGo.m | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/SoObjects/Appointments/iCalEntityObject+SOGo.m b/SoObjects/Appointments/iCalEntityObject+SOGo.m index ef2438155..fa2941b4a 100644 --- a/SoObjects/Appointments/iCalEntityObject+SOGo.m +++ b/SoObjects/Appointments/iCalEntityObject+SOGo.m @@ -28,6 +28,7 @@ #import #import +#import #import #import @@ -143,12 +144,33 @@ _computeAllDayOffset() - (id) itipEntryWithMethod: (NSString *) method { iCalCalendar *newCalendar; - iCalEntityObject *newEntry; + iCalEntityObject *currentEvent, *newEntry; + iCalPerson *organizer; + NSArray *events; + int i, count; + newCalendar = [parent mutableCopy]; [newCalendar autorelease]; [newCalendar setMethod: method]; - newEntry = (iCalEntityObject *) [newCalendar firstChildWithTag: tag]; + + events = [newCalendar childrenWithTag: tag]; + count = [events count]; + if (count > 1) + { + // If the event is recurrent, remove all occurences + organizer = [[(iCalEntityObject *)[newCalendar firstChildWithTag: tag] organizer] mutableCopy]; + for (i = 0; i < count; i++) + { + currentEvent = [events objectAtIndex: i]; + [[newCalendar children] removeObject: currentEvent]; + } + newEntry = [[self mutableCopy] autorelease]; + [newEntry setOrganizer: organizer]; + [newCalendar addChild: newEntry]; + } + else + newEntry = (iCalEntityObject *) [newCalendar firstChildWithTag: tag]; return newEntry; }