From c0974b8f2e87486c5f61e8338ad5a9790c7950fe Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Mon, 7 Feb 2011 15:27:22 +0000 Subject: [PATCH] Monotone-Parent: 27dc3c974ed1585b54e4d58d5ab193527645b95b Monotone-Revision: dc04eb7c603c80427d9ac15ee5747b6d6ed6ff48 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2011-02-07T15:27:22 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 4 +++ OpenChange/MAPIStoreDraftsContext.h | 4 +-- OpenChange/MAPIStoreDraftsContext.m | 43 +++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index fd7996ea1..b49d44e64 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,10 @@ MAPIStoreMailContext and make use of the trash folder as module folder. + * OpenChange/MAPIStoreDraftsContext.m: now a subclass of + MAPIStoreMailContext and make use of the drafts folder as module + folder. + 2011-02-06 Wolfgang Sourdeau * OpenChange/MAPIStoreMailMessageTable.m (-setSordOrder): diff --git a/OpenChange/MAPIStoreDraftsContext.h b/OpenChange/MAPIStoreDraftsContext.h index cfdb51a0a..fac1494be 100644 --- a/OpenChange/MAPIStoreDraftsContext.h +++ b/OpenChange/MAPIStoreDraftsContext.h @@ -23,9 +23,9 @@ #ifndef MAPISTOREDRAFTSCONTEXT_H #define MAPISTOREDRAFTSCONTEXT_H -#import "MAPIStoreFSBaseContext.h" +#import "MAPIStoreMailContext.h" -@interface MAPIStoreDraftsContext : MAPIStoreFSBaseContext +@interface MAPIStoreDraftsContext : MAPIStoreMailContext @end diff --git a/OpenChange/MAPIStoreDraftsContext.m b/OpenChange/MAPIStoreDraftsContext.m index 9e380ff38..2ad70c212 100644 --- a/OpenChange/MAPIStoreDraftsContext.m +++ b/OpenChange/MAPIStoreDraftsContext.m @@ -22,8 +22,15 @@ #import +#import + #import "MAPIStoreMapping.h" +#import + +#import "MAPIApplication.h" +#import "MAPIStoreAuthenticator.h" + #import "MAPIStoreDraftsContext.h" @implementation MAPIStoreDraftsContext @@ -39,4 +46,40 @@ withID: 0x1e0001]; } +- (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 draftsFolderInContext: nil]; + [moduleFolder retain]; + currentContainer = [moduleFolder container]; + while (currentContainer != (SOGoFolder *) accountFolder) + { + [parentFoldersBag addObject: currentContainer]; + currentContainer = [currentContainer container]; + } +} + @end