Monotone-Parent: 2fdf0ead0781ef2362dd389811d5db44ca4cc84a

Monotone-Revision: c91eef7edcfd08d414664c25a590b6268a7e58e2

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2009-11-29T04:19:32
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2009-11-29 04:19:32 +00:00
parent 3821d1aa7f
commit b79a7e5a00
129 changed files with 4402 additions and 3316 deletions
+40 -78
View File
@@ -32,7 +32,6 @@
#import <Foundation/NSDictionary.h>
#import <Foundation/NSEnumerator.h>
#import <Foundation/NSTimeZone.h>
#import <Foundation/NSUserDefaults.h>
#import <Foundation/NSValue.h>
#import <NGObjWeb/WOResponse.h>
@@ -45,44 +44,22 @@
#import <EOControl/EOQualifier.h>
#import <SoObjects/Mailer/NSString+Mail.h>
#import <SoObjects/Mailer/SOGoDraftsFolder.h>
#import <SoObjects/Mailer/SOGoMailFolder.h>
#import <SoObjects/Mailer/SOGoMailObject.h>
#import <SoObjects/Mailer/SOGoSentFolder.h>
#import <SoObjects/SOGo/NSArray+Utilities.h>
#import <SoObjects/SOGo/SOGoDateFormatter.h>
#import <SoObjects/SOGo/SOGoUser.h>
#import <SoObjects/SOGo/SOGoUserDefaults.h>
#import <Mailer/NSString+Mail.h>
#import <Mailer/SOGoDraftsFolder.h>
#import <Mailer/SOGoMailFolder.h>
#import <Mailer/SOGoMailObject.h>
#import <Mailer/SOGoSentFolder.h>
#import <SOGo/NSArray+Utilities.h>
#import <SOGo/SOGoDateFormatter.h>
#import <SOGo/SOGoUser.h>
#import <SOGo/SOGoUserDefaults.h>
#import "UIxMailListView.h"
static NSArray *defaultColumnOrder = nil;
static NSArray *udColumnOrder = nil;
#define messagesPerPage 50
@implementation UIxMailListView
+ (void) initialize
{
if (!defaultColumnOrder)
{
defaultColumnOrder = [NSArray arrayWithObjects: @"Flagged",
@"Attachment", @"Subject", @"From",
@"Unread", @"Date", @"Priority", @"Size",
nil];
[defaultColumnOrder retain];
}
if (!udColumnOrder)
{
udColumnOrder = [[NSUserDefaults standardUserDefaults]
arrayForKey: @"SOGoMailListViewColumnsOrder"];
[udColumnOrder retain];
}
}
- (id) init
{
SOGoUser *user;
@@ -92,8 +69,8 @@ static NSArray *udColumnOrder = nil;
qualifier = nil;
user = [context activeUser];
ASSIGN (dateFormatter, [user dateFormatterInContext: context]);
ASSIGN (userTimeZone, [user timeZone]);
userDefinedOrder = nil;
ASSIGN (userTimeZone, [[user userDefaults] timeZone]);
columnsOrder = nil;
folderType = 0;
currentColumn = nil;
}
@@ -110,7 +87,7 @@ static NSArray *udColumnOrder = nil;
[dateFormatter release];
[userTimeZone release];
[currentColumn release];
[userDefinedOrder release];
[columnsOrder release];
[super dealloc];
}
@@ -504,21 +481,6 @@ static NSArray *udColumnOrder = nil;
return 1;
}
- (void) checkDefaultModulePreference
{
NSUserDefaults *ud;
NSString *pref;
ud = [[context activeUser] userDefaults];
pref = [ud stringForKey: @"SOGoUIxDefaultModule"];
if (pref && [pref isEqualToString: @"Last"])
{
[ud setObject: @"Mail" forKey: @"SOGoUIxLastModule"];
[ud synchronize];
}
}
- (NSArray *) messages
{
NSMutableArray *unsortedMsgs;
@@ -529,8 +491,6 @@ static NSArray *udColumnOrder = nil;
unsigned len, i, count;
NSRange r;
[self checkDefaultModulePreference];
if (!messages)
{
r = [self fetchBlock];
@@ -836,51 +796,53 @@ static NSArray *udColumnOrder = nil;
- (NSArray *) columnsDisplayOrder
{
NSMutableArray *testColumns;
NSArray *defaultsOrder;
NSUserDefaults *ud;
NSMutableArray *finalOrder, *invalid;
NSArray *available;
NSDictionary *metaData;
SOGoUserDefaults *ud;
unsigned int i;
if (!userDefinedOrder)
if (!columnsOrder)
{
ud = [[context activeUser] userSettings];
defaultsOrder = [ud arrayForKey: @"SOGoMailListViewColumnsOrder"];
if (![defaultsOrder count])
{
defaultsOrder = udColumnOrder;
if (![defaultsOrder count])
defaultsOrder = defaultColumnOrder;
}
userDefinedOrder = [defaultsOrder mutableCopy];
ud = [[context activeUser] userDefaults];
columnsOrder = [ud mailListViewColumnsOrder];
testColumns = [userDefinedOrder mutableCopy];
[testColumns removeObjectsInArray: defaultColumnOrder];
if ([testColumns count] > 0)
metaData = [self columnsMetaData];
invalid = [columnsOrder mutableCopy];
[invalid autorelease];
available = [metaData allKeys];
[invalid removeObjectsInArray: available];
if ([invalid count] > 0)
{
[self errorWithFormat: @"one or more column names specified in"
[self errorWithFormat: @"those column names specified in"
@" SOGoMailListViewColumnsOrder are invalid: '%@'",
[testColumns componentsJoinedByString: @"', '"]];
[invalid componentsJoinedByString: @"', '"]];
[self errorWithFormat: @" falling back on hardcoded column order"];
userDefinedOrder = [defaultColumnOrder mutableCopy];
columnsOrder = available;
}
[testColumns release];
finalOrder = [columnsOrder mutableCopy];
[finalOrder autorelease];
if ([self showToAddress])
{
i = [userDefinedOrder indexOfObject: @"From"];
i = [finalOrder indexOfObject: @"From"];
if (i != NSNotFound)
[userDefinedOrder replaceObjectAtIndex: i withObject: @"To"];
[finalOrder replaceObjectAtIndex: i withObject: @"To"];
}
else
{
i = [userDefinedOrder indexOfObject: @"To"];
i = [finalOrder indexOfObject: @"To"];
if (i != NSNotFound)
[userDefinedOrder replaceObjectAtIndex: i withObject: @"From"];
[finalOrder replaceObjectAtIndex: i withObject: @"From"];
}
columnsOrder = [[self columnsMetaData] objectsForKeys: finalOrder
notFoundMarker: @""];
[columnsOrder retain];
}
return [[self columnsMetaData] objectsForKeys: userDefinedOrder
notFoundMarker: @""];
return columnsOrder;
}
- (NSString *) columnsDisplayCount