From b62149d65fcb98ce264cc8c81edb2fbc5e4e1413 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Mon, 21 Mar 2011 00:38:17 +0000 Subject: [PATCH] Monotone-Parent: 96d751786922d33162cb95008bfb6f6460b05db4 Monotone-Revision: e1d77c8035a84435f5745fe6e47f1fb5c978d808 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2011-03-21T00:38:17 Monotone-Branch: ca.inverse.sogo --- SOPE/NGCards/CardGroup.h | 2 ++ SOPE/NGCards/CardGroup.m | 16 ++++++++++++++++ SOPE/NGCards/ChangeLog | 5 +++++ SOPE/NGCards/iCalRepeatableEntityObject.m | 11 +++++------ 4 files changed, 28 insertions(+), 6 deletions(-) diff --git a/SOPE/NGCards/CardGroup.h b/SOPE/NGCards/CardGroup.h index c299830e1..4535f041d 100644 --- a/SOPE/NGCards/CardGroup.h +++ b/SOPE/NGCards/CardGroup.h @@ -48,6 +48,8 @@ - (void) addChild: (CardElement *) aChild; - (void) addChildren: (NSArray *) someChildren; +- (void) removeChild: (CardElement *) aChild; +- (void) removeChildren: (NSArray *) someChildren; - (NSMutableArray *) children; - (CardElement *) firstChildWithTag: (NSString *) aTag; diff --git a/SOPE/NGCards/CardGroup.m b/SOPE/NGCards/CardGroup.m index 9f62afa98..138c6b99c 100644 --- a/SOPE/NGCards/CardGroup.m +++ b/SOPE/NGCards/CardGroup.m @@ -253,6 +253,22 @@ static NGCardsSaxHandler *sax = nil; [self addChild: currentChild]; } +- (void) removeChild: (CardElement *) aChild +{ + [aChild setParent: nil]; + [children removeObject: aChild]; +} + +- (void) removeChildren: (NSArray *) someChildren +{ + CardElement *currentChild; + NSEnumerator *newChildren; + + newChildren = [someChildren objectEnumerator]; + while ((currentChild = [newChildren nextObject])) + [self removeChild: currentChild]; +} + - (NSMutableArray *) children { return children; diff --git a/SOPE/NGCards/ChangeLog b/SOPE/NGCards/ChangeLog index c12b30353..86dab1f70 100644 --- a/SOPE/NGCards/ChangeLog +++ b/SOPE/NGCards/ChangeLog @@ -1,3 +1,8 @@ +2011-03-20 Wolfgang Sourdeau + + * CardGroup.m (-removeChild:, -removeChildren:): new + self-explanatory methods. + 2011-03-15 Wolfgang Sourdeau * NSString+NGCards.m (-asCardAttributeValues): rewritten method diff --git a/SOPE/NGCards/iCalRepeatableEntityObject.m b/SOPE/NGCards/iCalRepeatableEntityObject.m index f24f4ad88..35fd63394 100644 --- a/SOPE/NGCards/iCalRepeatableEntityObject.m +++ b/SOPE/NGCards/iCalRepeatableEntityObject.m @@ -54,7 +54,7 @@ - (void) removeAllRecurrenceRules { - [children removeObjectsInArray: [self childrenWithTag: @"rrule"]]; + [self removeChildren: [self recurrenceRules]]; } - (void) addToRecurrenceRules: (id) _rrule @@ -80,7 +80,7 @@ - (void) removeAllExceptionRules { - [children removeObjectsInArray: [self childrenWithTag: @"exrule"]]; + [self removeChildren: [self exceptionRules]]; } - (void) addToExceptionRules: (id) _rrule @@ -106,7 +106,7 @@ - (void) removeAllExceptionDates { - [children removeObjectsInArray: [self childrenWithTag: @"exdate"]]; + [self removeChildren: [self exceptionDates]]; } - (void) addToExceptionDates: (NSCalendarDate *) _rdate @@ -171,8 +171,7 @@ */ - (NSArray *) exceptionDatesWithEventTimeZone: (iCalTimeZone *) theTimeZone { - NSArray *exDates; - NSMutableArray *dates; + NSArray *dates, *exDates; NSEnumerator *dateList; NSCalendarDate *exDate; NSString *dateString; @@ -190,7 +189,7 @@ { dateString = [exDates objectAtIndex: i]; exDate = [theTimeZone computedDateForString: dateString]; - [dates addObject: exDate]; + [(NSMutableArray *) dates addObject: exDate]; } } }