Monotone-Parent: 40480465ce4ec6f36665568ed685c71f37abb04a
Monotone-Revision: 3d47f593fbb200a77cb1c9523f3d158473420274 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2012-02-14T14:58:34 Monotone-Branch: ca.inverse.sogomaint-2.0.2
parent
0d1f0fc513
commit
186023c961
10
ChangeLog
10
ChangeLog
|
@ -1,5 +1,15 @@
|
|||
2012-02-14 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* OpenChange/MAPIStoreMailFolder.m (-ensureFolderExists): new
|
||||
method that attempts to create a folder when it does not exists
|
||||
and returns NO if that creation failed or YES in any other case.
|
||||
(-createFolder:withFID:andKey:): rc was never initialized when in
|
||||
success code.
|
||||
(-messageKeysMatchingQualifier:andSortOrderings:)
|
||||
(-folderKeysMatchingQualifier:andSortOrderings:)
|
||||
(-permissionEntries): invoke "ensureFolderExists" prior to any
|
||||
operation.
|
||||
|
||||
* OpenChange/MAPIStoreContext.m
|
||||
(+createRootFolder:withFID:andName:forUser:withRole:): removed the
|
||||
"andTDBIndexing:" argument.
|
||||
|
|
|
@ -39,6 +39,8 @@
|
|||
SOGoMAPIFSMessage *versionsMessage;
|
||||
}
|
||||
|
||||
- (BOOL) ensureFolderExists;
|
||||
|
||||
/* synchronisation & versioning */
|
||||
- (BOOL) synchroniseCache;
|
||||
- (NSNumber *) modseqFromMessageChangeNumber: (NSNumber *) changeNum;
|
||||
|
|
|
@ -87,6 +87,12 @@ static Class SOGoMailFolderK;
|
|||
return self;
|
||||
}
|
||||
|
||||
- (void) dealloc
|
||||
{
|
||||
[versionsMessage release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void) setupVersionsMessage
|
||||
{
|
||||
ASSIGN (versionsMessage,
|
||||
|
@ -94,13 +100,11 @@ static Class SOGoMailFolderK;
|
|||
inContainer: propsFolder]);
|
||||
}
|
||||
|
||||
- (void) dealloc
|
||||
- (BOOL) ensureFolderExists
|
||||
{
|
||||
[versionsMessage release];
|
||||
[super dealloc];
|
||||
return [(SOGoMailFolder *) sogoObject exists] || [sogoObject create];
|
||||
}
|
||||
|
||||
|
||||
- (void) addProperties: (NSDictionary *) newProperties
|
||||
{
|
||||
NSString *newDisplayName;
|
||||
|
@ -154,7 +158,10 @@ static Class SOGoMailFolderK;
|
|||
newFolder = [SOGoMailFolderK objectWithName: nameInContainer
|
||||
inContainer: sogoObject];
|
||||
if ([newFolder create])
|
||||
*newKeyP = nameInContainer;
|
||||
{
|
||||
*newKeyP = nameInContainer;
|
||||
rc = MAPISTORE_SUCCESS;
|
||||
}
|
||||
else if ([newFolder exists])
|
||||
rc = MAPISTORE_ERR_EXIST;
|
||||
else
|
||||
|
@ -248,23 +255,30 @@ static Class SOGoMailFolderK;
|
|||
NSArray *uidKeys;
|
||||
EOQualifier *fetchQualifier;
|
||||
|
||||
if (!sortOrderings)
|
||||
sortOrderings = [NSArray arrayWithObject: @"ARRIVAL"];
|
||||
|
||||
if (qualifier)
|
||||
if ([self ensureFolderExists])
|
||||
{
|
||||
fetchQualifier
|
||||
= [[EOAndQualifier alloc] initWithQualifiers:
|
||||
[self nonDeletedQualifier], qualifier,
|
||||
nil];
|
||||
[fetchQualifier autorelease];
|
||||
if (!sortOrderings)
|
||||
sortOrderings = [NSArray arrayWithObject: @"ARRIVAL"];
|
||||
|
||||
if (qualifier)
|
||||
{
|
||||
fetchQualifier
|
||||
= [[EOAndQualifier alloc] initWithQualifiers:
|
||||
[self nonDeletedQualifier], qualifier,
|
||||
nil];
|
||||
[fetchQualifier autorelease];
|
||||
}
|
||||
else
|
||||
fetchQualifier = [self nonDeletedQualifier];
|
||||
|
||||
uidKeys = [[sogoObject fetchUIDsMatchingQualifier: fetchQualifier
|
||||
sortOrdering: sortOrderings]
|
||||
stringsWithFormat: @"%@.eml"];
|
||||
}
|
||||
else
|
||||
fetchQualifier = [self nonDeletedQualifier];
|
||||
uidKeys = nil;
|
||||
|
||||
uidKeys = [sogoObject fetchUIDsMatchingQualifier: fetchQualifier
|
||||
sortOrdering: sortOrderings];
|
||||
return [uidKeys stringsWithFormat: @"%@.eml"];
|
||||
return uidKeys;
|
||||
}
|
||||
|
||||
- (NSMutableString *) _imapFolderNameRepresentation: (NSString *) subfolderName
|
||||
|
@ -325,15 +339,20 @@ static Class SOGoMailFolderK;
|
|||
{
|
||||
NSMutableArray *subfolderKeys;
|
||||
|
||||
if (qualifier)
|
||||
[self errorWithFormat: @"qualifier is not used for folders"];
|
||||
if (sortOrderings)
|
||||
[self errorWithFormat: @"sort orderings are not used for folders"];
|
||||
if ([self ensureFolderExists])
|
||||
{
|
||||
if (qualifier)
|
||||
[self errorWithFormat: @"qualifier is not used for folders"];
|
||||
if (sortOrderings)
|
||||
[self errorWithFormat: @"sort orderings are not used for folders"];
|
||||
|
||||
subfolderKeys = [[sogoObject toManyRelationshipKeys] mutableCopy];
|
||||
[subfolderKeys autorelease];
|
||||
|
||||
subfolderKeys = [[sogoObject toManyRelationshipKeys] mutableCopy];
|
||||
[subfolderKeys autorelease];
|
||||
|
||||
[self _cleanupSubfolderKeys: subfolderKeys];
|
||||
[self _cleanupSubfolderKeys: subfolderKeys];
|
||||
}
|
||||
else
|
||||
subfolderKeys = nil;
|
||||
|
||||
return subfolderKeys;
|
||||
}
|
||||
|
@ -366,6 +385,18 @@ static Class SOGoMailFolderK;
|
|||
return (SOGoFolder *) sogoObject;
|
||||
}
|
||||
|
||||
- (NSArray *) permissionEntries
|
||||
{
|
||||
NSArray *permissionEntries;
|
||||
|
||||
if ([self ensureFolderExists])
|
||||
permissionEntries = [super permissionEntries];
|
||||
else
|
||||
permissionEntries = nil;
|
||||
|
||||
return permissionEntries;
|
||||
}
|
||||
|
||||
/* synchronisation */
|
||||
|
||||
/* Tree:
|
||||
|
|
Loading…
Reference in New Issue