adium/adium

Parents a81b12b803bb
Children ba605f0e271c
Fix a couple of other uses of caseInsensitiveCompare is used on user-visible lists to localizedCaseInsensitiveCompare. Changed some comparators into blocks.
--- a/Frameworks/Adium Framework/Source/AIChat.m Mon May 21 21:42:19 2012 +0200
+++ b/Frameworks/Adium Framework/Source/AIChat.m Mon May 21 22:51:41 2012 +0200
@@ -385,21 +385,6 @@
return AIGroupChatNone;
}
-NSComparisonResult userListSort (id objectA, id objectB, void *context)
-{
- AIChat *chat = (AIChat *)context;
-
- AIGroupChatFlags flagA = highestFlag([chat flagsForContact:objectA]), flagB = highestFlag([chat flagsForContact:objectB]);
-
- if(flagA > flagB) {
- return NSOrderedAscending;
- } else if (flagA < flagB) {
- return NSOrderedDescending;
- } else {
- return [[chat displayNameForContact:objectA] caseInsensitiveCompare:[chat displayNameForContact:objectB]];
- }
-}
-
/*!
* @brief Resorts our participants
*
@@ -407,7 +392,17 @@
*/
- (void)resortParticipants
{
- [participatingContacts sortUsingFunction:userListSort context:self];
+ [participatingContacts sortUsingComparator:^(id objectA, id objectB){
+ AIGroupChatFlags flagA = highestFlag([self flagsForContact:objectA]), flagB = highestFlag([self flagsForContact:objectB]);
+
+ if(flagA > flagB) {
+ return (NSComparisonResult)NSOrderedAscending;
+ } else if (flagA < flagB) {
+ return NSOrderedDescending;
+ } else {
+ return [[self displayNameForContact:objectA] localizedCaseInsensitiveCompare:[self displayNameForContact:objectB]];
+ }
+ }];
}
/*!
--- a/Frameworks/Adium Framework/Source/AIEmoticon.m Mon May 21 21:42:19 2012 +0200
+++ b/Frameworks/Adium Framework/Source/AIEmoticon.m Mon May 21 22:51:41 2012 +0200
@@ -234,7 +234,7 @@
*/
- (NSComparisonResult)compare:(AIEmoticon *)otherEmoticon
{
- return [name caseInsensitiveCompare:[otherEmoticon name]];
+ return [name localizedCaseInsensitiveCompare:[otherEmoticon name]];
}
@end
--- a/Source/AIAppearancePreferencesPlugin.m Mon May 21 21:42:19 2012 +0200
+++ b/Source/AIAppearancePreferencesPlugin.m Mon May 21 22:51:41 2012 +0200
@@ -271,11 +271,6 @@
return success;
}
-//Sort sets
-NSInteger availableSetSort(NSDictionary *objectA, NSDictionary *objectB, void *context) {
- return [[objectA objectForKey:@"name"] caseInsensitiveCompare:[objectB objectForKey:@"name"]];
-}
-
- (NSArray *)availableSetsWithExtension:(NSString *)extension fromFolder:(NSString *)folder
{
NSMutableArray *setArray = [NSMutableArray array];
@@ -307,7 +302,9 @@
}
}
- return [setArray sortedArrayUsingFunction:availableSetSort context:nil];
+ return [setArray sortedArrayUsingComparator:^(NSDictionary *objectA, NSDictionary *objectB){
+ return [[objectA objectForKey:@"name"] localizedCaseInsensitiveCompare:[objectB objectForKey:@"name"]];
+ }];
}
- (NSArray *)availableLayoutSets
--- a/Source/AIChatLog.m Mon May 21 21:42:19 2012 +0200
+++ b/Source/AIChatLog.m Mon May 21 22:51:41 2012 +0200
@@ -150,7 +150,7 @@
//Sort by To, then Date
- (NSComparisonResult)compareTo:(AIChatLog *)inLog
{
- NSComparisonResult result = [to caseInsensitiveCompare:[inLog to]];
+ NSComparisonResult result = [to localizedCaseInsensitiveCompare:[inLog to]];
if (result == NSOrderedSame) {
NSTimeInterval interval = [date timeIntervalSinceDate:[inLog date]];
@@ -165,7 +165,7 @@
}
- (NSComparisonResult)compareToReverse:(AIChatLog *)inLog
{
- NSComparisonResult result = [[inLog to] caseInsensitiveCompare:to];
+ NSComparisonResult result = [[inLog to] localizedCaseInsensitiveCompare:to];
if (result == NSOrderedSame) {
NSTimeInterval interval = [date timeIntervalSinceDate:[inLog date]];
@@ -181,7 +181,7 @@
//Sort by From, then Date
- (NSComparisonResult)compareFrom:(AIChatLog *)inLog
{
- NSComparisonResult result = [from caseInsensitiveCompare:[inLog from]];
+ NSComparisonResult result = [from localizedCaseInsensitiveCompare:[inLog from]];
if (result == NSOrderedSame) {
NSTimeInterval interval = [date timeIntervalSinceDate:[inLog date]];
@@ -196,7 +196,7 @@
}
- (NSComparisonResult)compareFromReverse:(AIChatLog *)inLog
{
- NSComparisonResult result = [[inLog from] caseInsensitiveCompare:from];
+ NSComparisonResult result = [[inLog from] localizedCaseInsensitiveCompare:from];
if (result == NSOrderedSame) {
NSTimeInterval interval = [date timeIntervalSinceDate:[inLog date]];
@@ -213,7 +213,7 @@
//Sort by From, then Date
- (NSComparisonResult)compareService:(AIChatLog *)inLog
{
- NSComparisonResult result = [serviceClass caseInsensitiveCompare:inLog.serviceClass];
+ NSComparisonResult result = [serviceClass localizedCaseInsensitiveCompare:inLog.serviceClass];
if (result == NSOrderedSame) {
NSTimeInterval interval = [date timeIntervalSinceDate:inLog.date];
@@ -228,7 +228,7 @@
}
- (NSComparisonResult)compareServiceReverse:(AIChatLog *)inLog
{
- NSComparisonResult result = [inLog.serviceClass caseInsensitiveCompare:serviceClass];
+ NSComparisonResult result = [inLog.serviceClass localizedCaseInsensitiveCompare:serviceClass];
if (result == NSOrderedSame) {
NSTimeInterval interval = [date timeIntervalSinceDate:inLog.date];
@@ -253,7 +253,7 @@
} else if (interval > 0) {
result = NSOrderedDescending;
} else {
- result = [to caseInsensitiveCompare:[inLog to]];
+ result = [to localizedCaseInsensitiveCompare:[inLog to]];
}
return result;
@@ -268,7 +268,7 @@
} else if (interval > 0) {
result = NSOrderedDescending;
} else {
- result = [[inLog to] caseInsensitiveCompare:to];
+ result = [[inLog to] localizedCaseInsensitiveCompare:to];
}
return result;
@@ -284,7 +284,7 @@
} else if (rankingPercentage < otherRankingPercentage) {
result = NSOrderedAscending;
} else {
- result = [to caseInsensitiveCompare:[inLog to]];
+ result = [to localizedCaseInsensitiveCompare:[inLog to]];
}
return result;
@@ -299,7 +299,7 @@
} else if (rankingPercentage < otherRankingPercentage) {
result = NSOrderedDescending;
} else {
- result = [[inLog to] caseInsensitiveCompare:to];
+ result = [[inLog to] localizedCaseInsensitiveCompare:to];
}
return result;
--- a/Source/AIContactController.m Mon May 21 21:42:19 2012 +0200
+++ b/Source/AIContactController.m Mon May 21 22:51:41 2012 +0200
@@ -970,12 +970,6 @@
group:PREF_GROUP_CONTACT_LIST];
}
-//Sort list objects alphabetically by their display name
-NSInteger contactDisplayNameSort(AIListObject *objectA, AIListObject *objectB, void *context)
-{
- return [objectA.displayName caseInsensitiveCompare:objectB.displayName];
-}
-
#pragma mark Preference observing
/*!
* @brief Preferences changed
--- a/Source/AILogViewerWindowController.m Mon May 21 21:42:19 2012 +0200
+++ b/Source/AILogViewerWindowController.m Mon May 21 22:51:41 2012 +0200
@@ -129,8 +129,6 @@
@implementation AILogViewerWindowController
-static NSInteger toArraySort(id itemA, id itemB, void *context);
-
+ (NSOperationQueue *)sharedLogViewerQueue
{
static NSOperationQueue *logViewerQueue = nil;
@@ -382,7 +380,15 @@
}
}
- [toArray sortUsingFunction:toArraySort context:NULL];
+ [toArray sortUsingComparator:^(id itemA, id itemB){
+ NSString *nameA = [self outlineView:nil objectValueForTableColumn:nil byItem:itemA];
+ NSString *nameB = [self outlineView:nil objectValueForTableColumn:nil byItem:itemB];
+ NSComparisonResult result = [nameA localizedCaseInsensitiveCompare:nameB];
+ if (result == NSOrderedSame) result = [nameA compare:nameB];
+
+ return result;
+ }];
+
[outlineView_contacts reloadData];
if (!isOpeningForContact) {
@@ -2251,17 +2257,6 @@
return nil;
}
-static NSInteger toArraySort(id itemA, id itemB, void *context)
-{
- AILogViewerWindowController *sharedLogViewerInstance = [AILogViewerWindowController existingWindowController];
- NSString *nameA = [sharedLogViewerInstance outlineView:nil objectValueForTableColumn:nil byItem:itemA];
- NSString *nameB = [sharedLogViewerInstance outlineView:nil objectValueForTableColumn:nil byItem:itemB];
- NSComparisonResult result = [nameA caseInsensitiveCompare:nameB];
- if (result == NSOrderedSame) result = [nameA compare:nameB];
-
- return result;
-}
-
#pragma mark Split View Delegate
- (CGFloat)splitView:(NSSplitView *)splitView constrainMaxCoordinate:(CGFloat)proposedMax ofSubviewAt:(NSInteger)dividerIndex
{
--- a/Source/AIXtrasManager.m Mon May 21 21:42:19 2012 +0200
+++ b/Source/AIXtrasManager.m Mon May 21 22:51:41 2012 +0200
@@ -110,7 +110,7 @@
NSInteger categorySort(id categoryA, id categoryB, void * context)
{
- return [[categoryA objectForKey:@"Name"] caseInsensitiveCompare:[categoryB objectForKey:@"Name"]];
+ return [[categoryA objectForKey:@"Name"] localizedCaseInsensitiveCompare:[categoryB objectForKey:@"Name"]];
}
- (void)loadXtras
--- a/Source/ESContactAlertsController.m Mon May 21 21:42:19 2012 +0200
+++ b/Source/ESContactAlertsController.m Mon May 21 22:51:41 2012 +0200
@@ -210,48 +210,6 @@
}
/*!
- * @brief Sort event IDs by group and then by global short description
- */
-NSInteger eventIDSort(id objectA, id objectB, void *context) {
- NSInteger groupA, groupB;
- id <AIEventHandler> eventHandlerA;
- id <AIEventHandler> eventHandlerB;
-
- //Determine the group of the first event ID
- for (groupA = 0; groupA < EVENT_HANDLER_GROUP_COUNT; groupA++) {
- eventHandlerA = [eventHandlersByGroup[groupA] objectForKey:objectA];
- if (!eventHandlerA) {
- eventHandlerA = [globalOnlyEventHandlersByGroup[groupA] objectForKey:objectA];
- }
-
- if (eventHandlerA) break;
- }
-
- //Determine the group of the second ID
- for (groupB = 0; groupB < EVENT_HANDLER_GROUP_COUNT; groupB++) {
- eventHandlerB = [eventHandlersByGroup[groupB] objectForKey:objectB];
- if (!eventHandlerB) {
- eventHandlerB = [globalOnlyEventHandlersByGroup[groupB] objectForKey:objectB];
- }
-
- if (eventHandlerB) break;
- }
-
- if (groupA < groupB) {
- return NSOrderedAscending;
-
- } else if (groupB < groupA) {
- return NSOrderedDescending;
-
- } else {
- NSString *descriptionA = [eventHandlerA globalShortDescriptionForEventID:objectA];
- NSString *descriptionB = [eventHandlerA globalShortDescriptionForEventID:objectB];
-
- return ([descriptionA caseInsensitiveCompare:descriptionB]);
- }
-}
-
-/*!
* @brief Sort an array of event IDs
*
* @brief inArray The array of eventIDs to sort
@@ -259,7 +217,44 @@
*/
- (NSArray *)sortedArrayOfEventIDsFromArray:(NSArray *)inArray
{
- return [inArray sortedArrayUsingFunction:eventIDSort context:NULL];
+ return [inArray sortedArrayUsingComparator:^(id objectA, id objectB){
+ NSInteger groupA, groupB;
+ id <AIEventHandler> eventHandlerA;
+ id <AIEventHandler> eventHandlerB;
+
+ //Determine the group of the first event ID
+ for (groupA = 0; groupA < EVENT_HANDLER_GROUP_COUNT; groupA++) {
+ eventHandlerA = [eventHandlersByGroup[groupA] objectForKey:objectA];
+ if (!eventHandlerA) {
+ eventHandlerA = [globalOnlyEventHandlersByGroup[groupA] objectForKey:objectA];
+ }
+
+ if (eventHandlerA) break;
+ }
+
+ //Determine the group of the second ID
+ for (groupB = 0; groupB < EVENT_HANDLER_GROUP_COUNT; groupB++) {
+ eventHandlerB = [eventHandlersByGroup[groupB] objectForKey:objectB];
+ if (!eventHandlerB) {
+ eventHandlerB = [globalOnlyEventHandlersByGroup[groupB] objectForKey:objectB];
+ }
+
+ if (eventHandlerB) break;
+ }
+
+ if (groupA < groupB) {
+ return (NSComparisonResult)NSOrderedAscending;
+
+ } else if (groupB < groupA) {
+ return NSOrderedDescending;
+
+ } else {
+ NSString *descriptionA = [eventHandlerA globalShortDescriptionForEventID:objectA];
+ NSString *descriptionB = [eventHandlerA globalShortDescriptionForEventID:objectB];
+
+ return ([descriptionA localizedCaseInsensitiveCompare:descriptionB]);
+ }
+ }];
}
/*!
--- a/Source/ESStatusSort.m Mon May 21 21:42:19 2012 +0200
+++ b/Source/ESStatusSort.m Mon May 21 22:51:41 2012 +0200
@@ -728,19 +728,19 @@
NSArray *componentsA = [displayNameA componentsSeparatedByString:space];
NSArray *componentsB = [displayNameB componentsSeparatedByString:space];
- returnValue = [[componentsA lastObject] caseInsensitiveCompare:[componentsB lastObject]];
+ returnValue = [[componentsA lastObject] localizedCaseInsensitiveCompare:[componentsB lastObject]];
//If the last names are the same, compare the whole object, which will amount to sorting these objects
//by first name
if (returnValue == NSOrderedSame) {
- returnValue = [displayNameA caseInsensitiveCompare:displayNameB];
+ returnValue = [displayNameA localizedCaseInsensitiveCompare:displayNameB];
if (returnValue == NSOrderedSame) {
- returnValue = [[objectA internalObjectID] caseInsensitiveCompare:[objectB internalObjectID]];
+ returnValue = [[objectA internalObjectID] localizedCaseInsensitiveCompare:[objectB internalObjectID]];
}
}
} else {
- returnValue = [[objectA longDisplayName] caseInsensitiveCompare:[objectB longDisplayName]];
+ returnValue = [[objectA longDisplayName] localizedCaseInsensitiveCompare:[objectB longDisplayName]];
if (returnValue == NSOrderedSame) {
- returnValue = [[objectA internalObjectID] caseInsensitiveCompare:[objectB internalObjectID]];
+ returnValue = [[objectA internalObjectID] localizedCaseInsensitiveCompare:[objectB internalObjectID]];
}
}