adium 4835:d51a831588dc: Fix a couple of other uses of caseInsen...

commits at adium.im commits at adium.im
Mon May 21 20:52:23 UTC 2012


details:	http://hg.adium.im/adium/rev/d51a831588dc
revision:	4835:d51a831588dc
branch:		(none)
author:		Thijs Alkemade <thijsalkemade at gmail.com>
date:		Mon May 21 22:51:41 2012 +0200

Fix a couple of other uses of caseInsensitiveCompare is used on user-visible lists to localizedCaseInsensitiveCompare. Changed some comparators into blocks.

diffs (376 lines):

diff -r a81b12b803bb -r d51a831588dc Frameworks/Adium Framework/Source/AIChat.m
--- 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]];
+		}
+	}];
 }
 
 /*!
diff -r a81b12b803bb -r d51a831588dc Frameworks/Adium Framework/Source/AIEmoticon.m
--- 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
diff -r a81b12b803bb -r d51a831588dc Source/AIAppearancePreferencesPlugin.m
--- 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
diff -r a81b12b803bb -r d51a831588dc Source/AIChatLog.m
--- 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;
diff -r a81b12b803bb -r d51a831588dc Source/AIContactController.m
--- 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
diff -r a81b12b803bb -r d51a831588dc Source/AILogViewerWindowController.m
--- 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
 {
diff -r a81b12b803bb -r d51a831588dc Source/AIXtrasManager.m
--- 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
diff -r a81b12b803bb -r d51a831588dc Source/ESContactAlertsController.m
--- 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]);
+		}
+	}];
 }
 
 /*!
diff -r a81b12b803bb -r d51a831588dc Source/ESStatusSort.m
--- 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]];
 			}
 		}
 		




More information about the commits mailing list