diff --git a/ChangeLog b/ChangeLog index b361e3b1a..402dcb0cc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2010-12-30 Wolfgang Sourdeau + * OpenChange/MAPIStoreSentItemsContext.[hm]: class is now derived + from MAPIStoreMailContext and set up its module folder to the + user-configured sentFolder of his/her default account. + * OpenChange/MAPIStoreMailFolderTable.[hm]: new class module subclassed from MAPIStoreFolderTable, that provides the interface for folders in MAPIStoreMailContext. diff --git a/OpenChange/MAPIStoreSentItemsContext.h b/OpenChange/MAPIStoreSentItemsContext.h index 955d5da03..bd2bdc429 100644 --- a/OpenChange/MAPIStoreSentItemsContext.h +++ b/OpenChange/MAPIStoreSentItemsContext.h @@ -23,9 +23,9 @@ #ifndef MAPISTORESEARCHCONTEXT_H #define MAPISTORESEARCHCONTEXT_H -#import "MAPIStoreFileSystemBaseContext.h" +#import "MAPIStoreMailContext.h" -@interface MAPIStoreSentItemsContext : MAPIStoreFileSystemBaseContext +@interface MAPIStoreSentItemsContext : MAPIStoreMailContext @end diff --git a/OpenChange/MAPIStoreSentItemsContext.m b/OpenChange/MAPIStoreSentItemsContext.m index 1a140f80b..678216b89 100644 --- a/OpenChange/MAPIStoreSentItemsContext.m +++ b/OpenChange/MAPIStoreSentItemsContext.m @@ -22,6 +22,15 @@ #import +#import + +#import + +#import + +#import "MAPIApplication.h" +#import "MAPIStoreAuthenticator.h" + #import "MAPIStoreMapping.h" #import "MAPIStoreSentItemsContext.h" @@ -39,4 +48,40 @@ withID: 0x140001]; } +- (void) setupModuleFolder +{ + SOGoUserFolder *userFolder; + SOGoMailAccounts *accountsFolder; + SOGoMailAccount *accountFolder; + SOGoFolder *currentContainer; + + userFolder = [SOGoUserFolder objectWithName: [authenticator username] + inContainer: MAPIApp]; + [parentFoldersBag addObject: userFolder]; + // [self logWithFormat: @"userFolder: %@", userFolder]; + [woContext setClientObject: userFolder]; + + accountsFolder = [userFolder lookupName: @"Mail" + inContext: woContext + acquire: NO]; + [parentFoldersBag addObject: accountsFolder]; + // [self logWithFormat: @"accountsFolder: %@", accountsFolder]; + [woContext setClientObject: accountsFolder]; + + accountFolder = [accountsFolder lookupName: @"0" + inContext: woContext + acquire: NO]; + [parentFoldersBag addObject: accountFolder]; + [woContext setClientObject: accountFolder]; + + moduleFolder = [accountFolder sentFolderInContext: nil]; + [moduleFolder retain]; + currentContainer = [moduleFolder container]; + while (currentContainer != (SOGoFolder *) accountFolder) + { + [parentFoldersBag addObject: currentContainer]; + currentContainer = [currentContainer container]; + } +} + @end