From 6219541527a4460d604ae3f841c986e6685e6def Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Tue, 3 Jul 2007 16:01:06 +0000 Subject: [PATCH] Monotone-Parent: 4254b3aaa317d0b5f76c8d289e790123b2d1ae94 Monotone-Revision: 0db1f75be8edd93e9293704da8c9f4383ba2d1c0 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-07-03T16:01:06 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 4 + .../iCalRepeatableEntityObject+OCS.m | 102 +++++++++--------- 2 files changed, 52 insertions(+), 54 deletions(-) diff --git a/ChangeLog b/ChangeLog index fdaa48b53..7eada783b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2007-07-03 Wolfgang Sourdeau + * OGoContentStore/iCalRepeatableEntityObject+OCS.m + ([iCalRepeatableEntityObject -cycleInfo]): no longer take the + leading tagname into account when serializing the element values. + * Main/SOGoProductLoader.m: only load bundle directories ending with the "SOGo" extension. diff --git a/OGoContentStore/iCalRepeatableEntityObject+OCS.m b/OGoContentStore/iCalRepeatableEntityObject+OCS.m index 13ed1710e..32e8a369e 100644 --- a/OGoContentStore/iCalRepeatableEntityObject+OCS.m +++ b/OGoContentStore/iCalRepeatableEntityObject+OCS.m @@ -25,65 +25,59 @@ @implementation iCalRepeatableEntityObject (OCS) -- (NSString *)cycleInfo { +- (NSArray *) _indexedRules: (NSArray *) rules +{ + NSMutableArray *ma; + unsigned int i, count; + NSString *valuesString; + + ma = nil; + count = [rules count]; + if (count > 0) + { + ma = [NSMutableArray arrayWithCapacity:count]; + for (i = 0; i < count; i++) + { + iCalRecurrenceRule *rule; + + rule = [rules objectAtIndex:i]; +#warning we could return an NSArray instead and feed it as such to the iCalRecurrenceRule in SOGoAppointmentFolder... + valuesString = [[rule values] componentsJoinedByString: @";"]; + [ma addObject: valuesString]; + } + } + + return ma; +} + +- (NSString *) cycleInfo +{ + NSArray *rules; + NSString *value; NSMutableDictionary *cycleInfo; - NSMutableArray *ma; - NSArray *a; - unsigned count; - if (![self isRecurrent]) - return nil; + if ([self isRecurrent]) + { + cycleInfo = [NSMutableDictionary dictionaryWithCapacity: 3]; - cycleInfo = [NSMutableDictionary dictionaryWithCapacity:3]; - - /* rules */ - a = [self recurrenceRules]; - count = [a count]; - if (count > 0) { - unsigned i; - - ma = [NSMutableArray arrayWithCapacity:count]; - for (i = 0; i < count; i++) { - iCalRecurrenceRule *rule; + /* rules */ + rules = [self _indexedRules: [self recurrenceRules]]; + if (rules) + [cycleInfo setObject: rules forKey: @"rules"]; - rule = [a objectAtIndex:i]; - [ma addObject: [rule versitString]]; - } - [cycleInfo setObject:ma forKey:@"rules"]; - } - - /* exception rules */ - a = [self exceptionRules]; - count = [a count]; - if (count > 0) { - unsigned i; - - ma = [NSMutableArray arrayWithCapacity:count]; - for (i = 0; i < count; i++) { - iCalRecurrenceRule *rule; + rules = [self _indexedRules: [self exceptionRules]]; + if (rules) + [cycleInfo setObject: rules forKey: @"exRules"]; - rule = [a objectAtIndex:i]; - [ma addObject: [rule versitString]]; - } - [cycleInfo setObject:ma forKey:@"exRules"]; - } - - /* exception dates */ - a = [self exceptionDates]; - count = [a count]; - if (count > 0) { - unsigned i; - - ma = [NSMutableArray arrayWithCapacity:count]; - for (i = 0; i < count; i++) { - NSCalendarDate *date; - - date = [a objectAtIndex:i]; - [ma addObject:[date icalString]]; - } - [cycleInfo setObject:ma forKey:@"exDates"]; - } + rules = [self _indexedRules: [self exceptionDates]]; + if (rules) + [cycleInfo setObject: rules forKey: @"exDates"]; - return [cycleInfo description]; + value = [cycleInfo description]; + } + else + value = nil; + + return value; } @end