Monotone-Parent: 4f12ba210dcd4149e7496ee80e06c65b94793dd3

Monotone-Revision: 7db08f6967ccc793434ea22058755fb137e85d45

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2007-11-01T12:48:19
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2007-11-01 12:48:19 +00:00
parent 891ab5f97a
commit 1da963ff19
12 changed files with 248 additions and 175 deletions
+41 -15
View File
@@ -299,10 +299,34 @@ static NSString *defaultUserID = @"anyone";
inContext: (id)_ctx
acquire: (BOOL) _acquire
{
NSString *folderName, *className;
SOGoMailAccount *mailAccount;
id obj;
if ([_key hasPrefix: @"folder"])
obj = [SOGoMailFolder objectWithName: _key inContainer: self];
{
mailAccount = [self mailAccountFolder];
folderName = [NSString stringWithFormat: @"%@/%@",
[self traversalFromMailAccount],
[_key substringFromIndex: 6]];
if ([folderName
isEqualToString: [mailAccount sentFolderNameInContext: _ctx]])
className = @"SOGoSentFolder";
else if ([folderName isEqualToString:
[mailAccount draftsFolderNameInContext: _ctx]])
className = @"SOGoDraftsFolder";
else if ([folderName isEqualToString:
[mailAccount trashFolderNameInContext: _ctx]])
className = @"SOGoTrashFolder";
/* else if ([folderName isEqualToString:
[mailAccount sieveFolderNameInContext: _ctx]])
obj = [self lookupFiltersFolder: _key inContext: _ctx]; */
else
className = @"SOGoMailFolder";
obj = [NSClassFromString (className)
objectWithName: _key inContainer: self];
}
else
{
if ([[self imap4Connection] doesMailboxExistAtURL: [self imap4URL]])
@@ -394,22 +418,24 @@ static NSString *defaultUserID = @"anyone";
{
// TODO: detect Trash/Sent/Drafts folders
SOGoMailAccount *account;
NSString *n;
NSString *name;
if (folderType != nil)
return folderType;
account = [self mailAccountFolder];
n = nameInContainer;
if (!folderType)
{
account = [self mailAccountFolder];
name = [self traversalFromMailAccount];
if ([n isEqualToString:[account trashFolderNameInContext:nil]])
folderType = @"IPF.Trash";
else if ([n isEqualToString:[account inboxFolderNameInContext:nil]])
folderType = @"IPF.Inbox";
else if ([n isEqualToString:[account sentFolderNameInContext:nil]])
folderType = @"IPF.Sent";
else
folderType = @"IPF.Folder";
if ([name isEqualToString: [account trashFolderNameInContext: nil]])
folderType = @"IPF.Trash";
else if ([name
isEqualToString: [account inboxFolderNameInContext: nil]])
folderType = @"IPF.Inbox";
else if ([name
isEqualToString: [account sentFolderNameInContext: nil]])
folderType = @"IPF.Sent";
else
folderType = @"IPF.Folder";
}
return folderType;
}