From b84952e615b6cb7cde4f15aa82f1aefb4f0e418f Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Thu, 27 Aug 2009 16:10:51 +0000 Subject: [PATCH] Monotone-Parent: 9526db8a187e1a3f30ac4b5933d589fcb9dbbc40 Monotone-Revision: 1639c49f52eac11f85997ccaa9ebcc659f81dd46 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2009-08-27T16:10:51 Monotone-Branch: ca.inverse.sogo --- SOPE/NGCards/ChangeLog | 3 +++ SOPE/NGCards/iCalEntityObject.h | 4 +++- SOPE/NGCards/iCalEntityObject.m | 17 +++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/SOPE/NGCards/ChangeLog b/SOPE/NGCards/ChangeLog index 4fec6f76c..b69bb8d92 100644 --- a/SOPE/NGCards/ChangeLog +++ b/SOPE/NGCards/ChangeLog @@ -1,5 +1,8 @@ 2009-08-27 Wolfgang Sourdeau + * iCalEntityObject.m (-removeFromAttendees:): new helper method to + remove a specific attendee from the list. + * NSArray+NGCards.m (-renderedForCards): empty values are not returned, so as to avoid rendering attributes that do not have a value. diff --git a/SOPE/NGCards/iCalEntityObject.h b/SOPE/NGCards/iCalEntityObject.h index 1b8efeaa5..ba62d1ce9 100644 --- a/SOPE/NGCards/iCalEntityObject.h +++ b/SOPE/NGCards/iCalEntityObject.h @@ -106,11 +106,13 @@ typedef enum - (void) setStatus: (NSString *) _value; - (NSString *) status; -- (void) removeAllAttendees; - (void) addToAttendees: (iCalPerson *) _person; - (NSArray *) attendees; - (void) setAttendees: (NSArray *) attendees; +- (void) removeFromAttendees: (iCalPerson *) oldAttendee; +- (void) removeAllAttendees; + /* categorize attendees into participants and resources */ - (NSArray *) participants; - (NSArray *) resources; diff --git a/SOPE/NGCards/iCalEntityObject.m b/SOPE/NGCards/iCalEntityObject.m index e4475a611..11d7f82dc 100644 --- a/SOPE/NGCards/iCalEntityObject.m +++ b/SOPE/NGCards/iCalEntityObject.m @@ -302,6 +302,23 @@ [self addChild: _person]; } +- (void) removeFromAttendees: (iCalPerson *) oldAttendee +{ + NSMutableArray *newAttendees; + int count, max; + + newAttendees = [NSMutableArray arrayWithArray: [self attendees]]; + max = [newAttendees count]; + for (count = max - 1; count > -1; count--) + { + if ([[newAttendees objectAtIndex: count] + hasSameEmailAddress: oldAttendee]) + [newAttendees removeObjectAtIndex: count]; + } + + [self setAttendees: newAttendees]; +} + - (void) setAttendees: (NSArray *) attendees { [self removeAllAttendees];