diff --git a/SOPE/NGCards/CardElement.h b/SOPE/NGCards/CardElement.h index b5d047569..6f59d0ad1 100644 --- a/SOPE/NGCards/CardElement.h +++ b/SOPE/NGCards/CardElement.h @@ -74,6 +74,8 @@ to: (NSString *) aValue; - (NSString *) namedValue: (NSString *) aValueName; +- (void) setCommaSeparatedValues: (NSArray *) values; + - (void) setValue: (unsigned int) anInt ofAttribute: (NSString *) anAttribute to: (NSString *) aValue; diff --git a/SOPE/NGCards/CardElement.m b/SOPE/NGCards/CardElement.m index 344e83bcf..49c3913b4 100644 --- a/SOPE/NGCards/CardElement.m +++ b/SOPE/NGCards/CardElement.m @@ -362,6 +362,28 @@ return value; } +- (void) setCommaSeparatedValues: (NSArray *) newValues +{ + NSMutableString *newValue; + NSUInteger count, max; + NSString *currentValue; + + newValue = [NSMutableString stringWithCapacity: 250]; + + max = [newValues count]; + for (count = 0; count < max; count++) + { + currentValue = [[newValues objectAtIndex: count] + stringByReplacingString: @"," + withString: @"\\,"]; + if (count > 0) + [newValue appendFormat: @",%@", currentValue]; + else + [newValue appendString: currentValue]; + } + [self setValues: [NSArray arrayWithObject: newValue]]; +} + - (void) setValue: (unsigned int) anInt ofAttribute: (NSString *) anAttribute to: (NSString *) aValue diff --git a/SOPE/NGCards/ChangeLog b/SOPE/NGCards/ChangeLog index 297e60653..cb2732934 100644 --- a/SOPE/NGCards/ChangeLog +++ b/SOPE/NGCards/ChangeLog @@ -1,3 +1,12 @@ +2010-10-27 Wolfgang Sourdeau + + * NGVCard.m (-setCategories): make use of the new method below. + (-categories): make use of value 0 and of the + vCardSubvaluesWithSeparator: category method. + + * CardElement.m (-setCommaSeparatedValues): temporary helper for + versit fields that are using the comma as value separator. + 2010-10-26 Wolfgang Sourdeau * NGVCard.m (-setCategories, -categories): new accessors for the diff --git a/SOPE/NGCards/NGVCard.m b/SOPE/NGCards/NGVCard.m index aaccf90c7..c27697013 100644 --- a/SOPE/NGCards/NGVCard.m +++ b/SOPE/NGCards/NGVCard.m @@ -25,6 +25,7 @@ #import #import "NSArray+NGCards.h" +#import "NSString+NGCards.h" #import "NGVCardPhoto.h" @@ -330,7 +331,8 @@ CardElement *cats; cats = [self uniqueChildWithTag: @"categories"]; - [cats setValues: newCategories]; + + [cats setCommaSeparatedValues: newCategories]; } - (NSArray *) categories @@ -339,7 +341,7 @@ cats = [self uniqueChildWithTag: @"categories"]; - return [cats values]; + return [[cats value: 0] vCardSubvaluesWithSeparator: ',']; } // - (void) setOrg: (NGVCardOrg *) _v