adium 2145:7f1b445ddd0f: Remove some unused variables, prevent i...

commits at adium.im commits at adium.im
Mon May 11 04:45:29 UTC 2009


details:	http://hg.adium.im/adium/rev/7f1b445ddd0f
revision:	2145:7f1b445ddd0f
author:		Zachary West <zacw at adium.im>
date:		Mon May 11 00:45:14 2009 -0400

Remove some unused variables, prevent infinite looping on self-changes, and simplify the account selection code.

diffstat:

 Source/AIAdvancedInspectorPane.h |   2 --
 Source/AIAdvancedInspectorPane.m |  41 ++++++++++++++++-------------------------
 2 files changed, 16 insertions(+), 27 deletions(-)

diffs (90 lines):

diff -r aa365e2cb2f6 -r 7f1b445ddd0f Source/AIAdvancedInspectorPane.h
--- a/Source/AIAdvancedInspectorPane.h	Mon May 11 00:27:46 2009 -0400
+++ b/Source/AIAdvancedInspectorPane.h	Mon May 11 00:45:14 2009 -0400
@@ -39,8 +39,6 @@
 	AIListContact								*currentSelectedContact;
 	
 	AIListObject								*displayedObject;
-	NSArray										*accounts;
-	NSArray										*contacts;
 
 	BOOL										rebuildingContacts;
 }
diff -r aa365e2cb2f6 -r 7f1b445ddd0f Source/AIAdvancedInspectorPane.m
--- a/Source/AIAdvancedInspectorPane.m	Mon May 11 00:27:46 2009 -0400
+++ b/Source/AIAdvancedInspectorPane.m	Mon May 11 00:45:14 2009 -0400
@@ -70,8 +70,6 @@
 {
 	[accountMenu release]; accountMenu = nil;
 	[contactMenu release]; contactMenu = nil;
-	[accounts release]; accounts = nil;
-	[contacts release]; contacts = nil;
     [displayedObject release]; displayedObject = nil;
 	[inspectorContentView release]; inspectorContentView = nil;
 
@@ -144,34 +142,14 @@
 							 group:GROUP_LIST_BOOKMARK];
 }
 
-#pragma mark Accounts Table View methods
-- (NSArray *)accountsForCurrentObject
-{
-	if ([displayedObject isKindOfClass:[AIMetaContact class]]) {
-		NSMutableSet *set = [NSMutableSet set];
-		for (AIService *service in [((AIMetaContact *)displayedObject).uniqueContainedObjects valueForKey:@"service"]) {
-			[set addObjectsFromArray:[adium.accountController accountsCompatibleWithService:service]];
-		}
-
-		return [set allObjects];
-
-	} else 	if ([displayedObject isKindOfClass:[AIListContact class]]) {
-		return [adium.accountController accountsCompatibleWithService:displayedObject.service];
-
-	} else {
-		return nil;
-	}
-}
-
 #pragma mark Menus
 -(void)reloadPopup
 {
+	rebuildingContacts = YES;
+	
 	[contactMenu release]; contactMenu = nil;
 	contactMenu = [[AIContactMenu contactMenuWithDelegate:self forContactsInObject:displayedObject] retain];
 	
-	[accounts release]; accounts = nil;
-	accounts = [[self accountsForCurrentObject] retain];
-	
 	[accountMenu rebuildMenu];
 	
 	[button_addGroup setMenu:[adium.contactController groupMenuWithTarget:self]];
@@ -188,7 +166,18 @@
 
 - (BOOL)accountMenu:(AIAccountMenu *)inAccountMenu shouldIncludeAccount:(AIAccount *)inAccount
 {
-	return [accounts containsObject:inAccount];
+	if (!inAccount.online) {
+		return NO;
+	}
+	
+	if ([displayedObject isKindOfClass:[AIMetaContact class]]) {
+		NSArray *services = [((AIMetaContact *)displayedObject).uniqueContainedObjects valueForKeyPath:@"service.serviceClass"];
+		return [services containsObject:inAccount.service.serviceClass];
+	} else 	if ([displayedObject isKindOfClass:[AIListContact class]]) {
+		return [displayedObject.service.serviceClass isEqualToString:inAccount.service.serviceClass];
+	}
+	
+	return NO;
 }
 
 - (void)accountMenu:(AIAccountMenu *)inAccountMenu didRebuildMenuItems:(NSArray *)menuItems
@@ -215,6 +204,8 @@
 																 account:currentSelectedAccount
 																	 UID:inContact.UID];
 
+	rebuildingContacts = NO;
+	
 	// Update the groups.
 	[tableView_groups reloadData];
 }




More information about the commits mailing list