adium 4022:1bc4d73e1c05: Authorization Request window now auto-s...

commits at adium.im commits at adium.im
Sun Jun 26 16:27:37 UTC 2011


details:	http://hg.adium.im/adium/rev/1bc4d73e1c05
revision:	4022:1bc4d73e1c05
branch:		(none)
author:		Patrick Steinhardt <steinhardt.p at me.com>
date:		Sun Jun 26 18:12:55 2011 +0200

Authorization Request window now auto-selects first entry and disables toolbar buttons if nothing is selected.
Subject: adium 4023:bfce6775ab4c: Fixed Target errors for AIStatusDefines and AIFontAdditions introduced in r4021 (f5412548f2f3).

details:	http://hg.adium.im/adium/rev/bfce6775ab4c
revision:	4023:bfce6775ab4c
branch:		(none)
author:		Patrick Steinhardt <steinhardt.p at me.com>
date:		Sun Jun 26 18:27:18 2011 +0200

Fixed Target errors for AIStatusDefines and AIFontAdditions introduced in r4021 (f5412548f2f3).

diffs (219 lines):

diff -r f5412548f2f3 -r bfce6775ab4c Adium.xcodeproj/project.pbxproj
--- a/Adium.xcodeproj/project.pbxproj	Sun Jun 26 10:13:19 2011 -0500
+++ b/Adium.xcodeproj/project.pbxproj	Sun Jun 26 18:27:18 2011 +0200
@@ -840,7 +840,7 @@
 		34DC8A6B0A7EEEF7003E1636 /* AIEmoticon.m in Sources */ = {isa = PBXBuildFile; fileRef = 34503C7E058F96C400FB7AD1 /* AIEmoticon.m */; };
 		34DC8A6C0A7EEEF7003E1636 /* AIEmoticonPack.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C73F83E04D62A2900A80106 /* AIEmoticonPack.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		34DC8A6D0A7EEEF7003E1636 /* AIEmoticonPack.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C73F83F04D62A2900A80106 /* AIEmoticonPack.m */; };
-		34DC8A6E0A7EEEF7003E1636 /* AIStatusDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 07B87D760A3A9FCF00A38283 /* AIStatusDefines.h */; };
+		34DC8A6E0A7EEEF7003E1636 /* AIStatusDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 07B87D760A3A9FCF00A38283 /* AIStatusDefines.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		34DC8A6F0A7EEEF7003E1636 /* AIStatusItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 348F50C00935317C00288E41 /* AIStatusItem.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		34DC8A700A7EEEF7003E1636 /* AIStatusItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 348F50C10935317C00288E41 /* AIStatusItem.m */; };
 		34DC8A710A7EEEF7003E1636 /* AIStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 34AC36B907B5C51400145239 /* AIStatus.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -1299,7 +1299,7 @@
 		633400900F9C14C2003C77A9 /* AIEventAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6334FFC50F9C14C1003C77A9 /* AIEventAdditions.m */; };
 		633400910F9C14C2003C77A9 /* AIFileManagerAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6334FFC60F9C14C1003C77A9 /* AIFileManagerAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		633400920F9C14C2003C77A9 /* AIFileManagerAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6334FFC70F9C14C1003C77A9 /* AIFileManagerAdditions.m */; };
-		633400930F9C14C2003C77A9 /* AIFontAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6334FFC80F9C14C1003C77A9 /* AIFontAdditions.h */; };
+		633400930F9C14C2003C77A9 /* AIFontAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6334FFC80F9C14C1003C77A9 /* AIFontAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		633400940F9C14C2003C77A9 /* AIFontAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6334FFC90F9C14C1003C77A9 /* AIFontAdditions.m */; };
 		633400950F9C14C2003C77A9 /* AIFontManagerAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6334FFCA0F9C14C1003C77A9 /* AIFontManagerAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		633400960F9C14C2003C77A9 /* AIFontManagerAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6334FFCB0F9C14C1003C77A9 /* AIFontManagerAdditions.m */; };
diff -r f5412548f2f3 -r bfce6775ab4c Frameworks/Adium Framework/Source/AIAuthorizationRequestsWindowController.m
--- a/Frameworks/Adium Framework/Source/AIAuthorizationRequestsWindowController.m	Sun Jun 26 10:13:19 2011 -0500
+++ b/Frameworks/Adium Framework/Source/AIAuthorizationRequestsWindowController.m	Sun Jun 26 18:27:18 2011 +0200
@@ -33,6 +33,30 @@
 #define MAXIMUM_ROW_HEIGHT				300.0f
 #define MINIMUM_CELL_SPACING			4
 
+ at interface AIValidatingToolbarItem : NSToolbarItem {
+}
+ at end
+
+ at implementation AIValidatingToolbarItem
+
+- (void)validate {
+	if ([self view]) {
+		BOOL enabled = YES;
+		
+		if ([[self toolbar] delegate]) {
+			if ([[[self toolbar] delegate] respondsToSelector:@selector(validateToolbarItem:)]) {
+				enabled = [(id)[[self toolbar] delegate] validateToolbarItem:self];
+			}
+		}
+		
+		[self setEnabled:enabled];
+	} else {
+		[super validate];
+	}
+}
+
+ at end
+
 @interface AIAuthorizationRequestsWindowController()
 - (void)reloadData;
 - (void)rebuildHeights;
@@ -85,6 +109,7 @@
 	
 	[tableView accessibilitySetOverrideValue:AILocalizedString(@"Authorization Requests", nil)
 								forAttribute:NSAccessibilityRoleDescriptionAttribute];
+	[tableView selectRowIndexes:[NSIndexSet indexSetWithIndex:0] byExtendingSelection:NO];
 	
 	[self.window setTitle:AUTHORIZATION_REQUESTS];
 }
@@ -131,29 +156,27 @@
 	
 	toolbarItems = [[NSMutableDictionary alloc] init];
 	
+	AIValidatingToolbarItem 	*toolbarItem;
+	MVMenuButton				*button;
+	
 	// Authorize
-	
-	MVMenuButton *button = [[[MVMenuButton alloc] initWithFrame:NSMakeRect(0, 0, 32, 32)] autorelease];
-	
+	button = [[[MVMenuButton alloc] initWithFrame:NSMakeRect(0, 0, 32, 32)] autorelease];
 	[button setImage:[NSImage imageNamed:@"Authorize" forClass:[self class]]];
 	
-	[AIToolbarUtilities addToolbarItemToDictionary:toolbarItems
-									withIdentifier:@"authorize"
-											 label:AUTHORIZE
-									  paletteLabel:AUTHORIZE
-										   toolTip:AILocalizedString(@"Authorize Selected",nil)
-											target:self
-								   settingSelector:@selector(setView:)
-									   itemContent:button
-											action:@selector(authorize:)
-											  menu:nil];
-	
-	NSToolbarItem *toolbarItem = [AIToolbarUtilities toolbarItemFromDictionary:toolbarItems withIdentifier:@"authorize"];
-
+	toolbarItem = [[[AIValidatingToolbarItem alloc] initWithItemIdentifier:AUTHORIZE] autorelease];
+    [toolbarItem setLabel:AUTHORIZE];
+    [toolbarItem setPaletteLabel:AUTHORIZE];
+	[toolbarItem setToolTip:AILocalizedString(@"Authorize Selected",nil)];
+	[toolbarItem setTarget:self];
+	[toolbarItem performSelector:@selector(setView:) withObject:button];
+	[toolbarItem setAction:@selector(authorize:)];
 	[button setToolbarItem:toolbarItem];
 
+	[toolbarItems setObject:toolbarItem forKey:AUTHORIZE];
+	
+	// Get Info
 	[AIToolbarUtilities addToolbarItemToDictionary:toolbarItems
-									withIdentifier:@"getInfo"
+									withIdentifier:GET_INFO
 											 label:GET_INFO
 									  paletteLabel:GET_INFO
 										   toolTip:AILocalizedString(@"Get Info",nil)
@@ -164,45 +187,35 @@
 											  menu:nil];
 	
 	// Deny
+	button = [[[MVMenuButton alloc] initWithFrame:NSMakeRect(0, 0, 32, 32)] autorelease];
+	[button setImage:[NSImage imageNamed:@"Deny" forClass:[self class]]];
+
+	toolbarItem = [[[AIValidatingToolbarItem alloc] initWithItemIdentifier:DENY] autorelease];
+	[toolbarItem setLabel:DENY];
+    [toolbarItem setPaletteLabel:DENY];
+	[toolbarItem setToolTip:AILocalizedString(@"Deny Selected",nil)];
+	[toolbarItem setTarget:self];
+	[toolbarItem performSelector:@selector(setView:) withObject:button];
+	[toolbarItem setAction:@selector(deny:)];
+	[button setToolbarItem:toolbarItem];
 	
-	button = [[[MVMenuButton alloc] initWithFrame:NSMakeRect(0, 0, 32, 32)] autorelease];
-	
-	[button setImage:[NSImage imageNamed:@"Deny" forClass:[self class]]];
-	
-	[AIToolbarUtilities addToolbarItemToDictionary:toolbarItems
-									withIdentifier:@"deny"
-											 label:DENY
-									  paletteLabel:DENY
-										   toolTip:AILocalizedString(@"Deny Selected",nil)
-											target:self
-								   settingSelector:@selector(setView:)
-									   itemContent:button
-											action:@selector(deny:)
-											  menu:nil];
-
-	toolbarItem = [AIToolbarUtilities toolbarItemFromDictionary:toolbarItems withIdentifier:@"deny"];
-	
-	[button setToolbarItem:toolbarItem];
+	[toolbarItems setObject:toolbarItem forKey:DENY];
 	
 	// Ignore
 	button = [[[MVMenuButton alloc] initWithFrame:NSMakeRect(0, 0, 32, 32)] autorelease];
-	
 	[button setImage:[NSImage imageNamed:@"Ignore" forClass:[self class]]];
-	
-	[AIToolbarUtilities addToolbarItemToDictionary:toolbarItems
-									withIdentifier:@"ignore"
-											 label:IGNORE
-									  paletteLabel:IGNORE
-										   toolTip:AILocalizedString(@"Ignore Selected",nil)
-											target:self
-								   settingSelector:@selector(setView:)
-									   itemContent:button
-											action:@selector(ignore:)
-											  menu:nil];
-	
-	toolbarItem = [AIToolbarUtilities toolbarItemFromDictionary:toolbarItems withIdentifier:@"ignore"];
-	
+
+	toolbarItem = [[[AIValidatingToolbarItem alloc] initWithItemIdentifier:IGNORE] autorelease];
+	[toolbarItem setLabel:IGNORE];
+    [toolbarItem setPaletteLabel:IGNORE];
+	[toolbarItem setToolTip:AILocalizedString(@"Ignore Selected",nil)];
+	[toolbarItem setTarget:self];
+	[toolbarItem performSelector:@selector(setView:) withObject:button];
+	[toolbarItem setAction:@selector(ignore:)];
 	[button setToolbarItem:toolbarItem];
+
+	[toolbarItems setObject:toolbarItem forKey:IGNORE];
+
 	
 	[[self window] setToolbar:toolbar];
 }
@@ -211,7 +224,7 @@
 {
 	NSToolbarItem	*item = [[notification userInfo] objectForKey:@"item"];
 	
-	if ([[item itemIdentifier] isEqualToString:@"authorize"]) {
+	if ([[item itemIdentifier] isEqualToString:AUTHORIZE]) {
 		NSMenu *menu = [[NSMenu alloc] init];
 		
 		[menu addItemWithTitle:AUTHORIZE
@@ -226,7 +239,7 @@
 		
 		[[item view] setMenu:menu];
 		[menu release];
-	} else if ([[item itemIdentifier] isEqualToString:@"deny"]) {
+	} else if ([[item itemIdentifier] isEqualToString:DENY]) {
 		NSMenu *menu = [[NSMenu alloc] init];
 		
 		[menu addItemWithTitle:DENY
@@ -241,7 +254,7 @@
 		
 		[[item view] setMenu:menu];
 		[menu release];	
-	} else if ([[item itemIdentifier] isEqualToString:@"ignore"]) {
+	} else if ([[item itemIdentifier] isEqualToString:IGNORE]) {
 		NSMenu *menu = [[NSMenu alloc] init];
 		
 		[menu addItemWithTitle:IGNORE
@@ -267,11 +280,11 @@
 - (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar*)toolbar
 {
     return [NSArray arrayWithObjects:
-			@"authorize",
+			AUTHORIZE,
 			NSToolbarSeparatorItemIdentifier,
-			@"getInfo",
+			GET_INFO,
 			NSToolbarFlexibleSpaceItemIdentifier,
-			@"ignore", @"deny", nil];
+			IGNORE, DENY, nil];
 }
 
 - (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar*)toolbar




More information about the commits mailing list