adium 5256:40745831e0e6: Merged adium-1.6 into default.

commits at adium.im commits at adium.im
Thu Jan 3 23:55:05 UTC 2013


details:	http://hg.adium.im/adium/rev/40745831e0e6
revision:	5256:40745831e0e6
branch:		(none)
author:		Thijs Alkemade <me at thijsalkema.de>
date:		Fri Jan 04 00:54:34 2013 +0100

Merged adium-1.6 into default.

I didn't merge Preferences.xib, it is still the default version, as I'm not sure what changed.

diffs (709 lines):

diff -r 5ecaca34d0a1 -r 40745831e0e6 Adium.xcodeproj/project.pbxproj
--- a/Adium.xcodeproj/project.pbxproj	Sun Dec 30 18:43:03 2012 -0500
+++ b/Adium.xcodeproj/project.pbxproj	Fri Jan 04 00:54:34 2013 +0100
@@ -1039,6 +1039,7 @@
 		5A1E3A1214DCE60400724574 /* Preferences-Xtras.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5A1E3A1114DCE60400724574 /* Preferences-Xtras.xib */; };
 		5A22D6E214834F44004E15F7 /* AIFacebookXMPPAccountView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5A22D6E014834F44004E15F7 /* AIFacebookXMPPAccountView.xib */; };
 		5A27FA7E14A272330063489D /* pref-messagestyle.png in Resources */ = {isa = PBXBuildFile; fileRef = 5A27FA7A14A272330063489D /* pref-messagestyle.png */; };
+		5A44595E169143130078AB0A /* AIPreferenceCVPrototypeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A445957169118C60078AB0A /* AIPreferenceCVPrototypeView.m */; };
 		5A4BD41D13F855B000A4D3F7 /* SearchTerms.plist in Resources */ = {isa = PBXBuildFile; fileRef = 5A4BD41B13F855B000A4D3F7 /* SearchTerms.plist */; };
 		5A4BD41E13F8568100A4D3F7 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5ACF27331392C585004B6AEF /* Preferences.xib */; };
 		5A4BD43313F856E300A4D3F7 /* Preferences-AddressBookIntegration.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5AC7F26313B42952002D7265 /* Preferences-AddressBookIntegration.xib */; };
@@ -1057,6 +1058,8 @@
 		5A5F601D12962EC0007A2232 /* AISegmentedControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A5F601A12962D06007A2232 /* AISegmentedControl.m */; };
 		5A5F601E12962ECE007A2232 /* AISegmentedControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A5F601912962D06007A2232 /* AISegmentedControl.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		5A5F8BBD12D560E400019727 /* AIDockNameOverlay.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A5F8BBC12D560E400019727 /* AIDockNameOverlay.m */; };
+		5A6298DF1682BD9100F51DED /* AIAdvancedPreferencePane.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A1E24A815BC746B003A6F9E /* AIAdvancedPreferencePane.m */; };
+		5A6298E31682BD9D00F51DED /* AIAdvancedPreferencePane.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A1E24A715BC746B003A6F9E /* AIAdvancedPreferencePane.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		5A799674133C3D6F0005AC6A /* MessageView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5A1FEA601334549300C14951 /* MessageView.xib */; };
 		5A804FEA12BE9E84007CDC1B /* scandate.m in Sources */ = {isa = PBXBuildFile; fileRef = 31DDDA6F12BDD5CE0048F6C0 /* scandate.m */; };
 		5A80508512BE9F00007CDC1B /* scandate.m in Sources */ = {isa = PBXBuildFile; fileRef = 31DDDA6F12BDD5CE0048F6C0 /* scandate.m */; };
@@ -3895,6 +3898,8 @@
 		5A1FEA601334549300C14951 /* MessageView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = MessageView.xib; path = "Plugins/Dual Window Interface/MessageView.xib"; sourceTree = "<group>"; };
 		5A22D6E114834F44004E15F7 /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xib; name = en; path = "Plugins/Purple Service/Resources/en.lproj/AIFacebookXMPPAccountView.xib"; sourceTree = "<group>"; };
 		5A27FA7A14A272330063489D /* pref-messagestyle.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "pref-messagestyle.png"; path = "Resources/pref-messagestyle.png"; sourceTree = "<group>"; };
+		5A445956169118C60078AB0A /* AIPreferenceCVPrototypeView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AIPreferenceCVPrototypeView.h; path = Source/AIPreferenceCVPrototypeView.h; sourceTree = "<group>"; };
+		5A445957169118C60078AB0A /* AIPreferenceCVPrototypeView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AIPreferenceCVPrototypeView.m; path = Source/AIPreferenceCVPrototypeView.m; sourceTree = "<group>"; };
 		5A4BD41C13F855B000A4D3F7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = en; path = Resources/en.lproj/SearchTerms.plist; sourceTree = "<group>"; };
 		5A4BD47213F858EE00A4D3F7 /* Preferences-ContactList.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = "Preferences-ContactList.xib"; path = "Resources/Preferences-ContactList.xib"; sourceTree = "<group>"; };
 		5A4BD48813F859EF00A4D3F7 /* Preferences-WindowHandling.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = "Preferences-WindowHandling.xib"; path = "Resources/Preferences-WindowHandling.xib"; sourceTree = "<group>"; };
@@ -6461,6 +6466,8 @@
 				F57938BB033E739101A8010A /* AIPreferenceWindowController.m */,
 				344839970BC8644C0083723B /* AIAdvancedPreferencesPlugin.h */,
 				344839980BC8644C0083723B /* AIAdvancedPreferencesPlugin.m */,
+				5A445956169118C60078AB0A /* AIPreferenceCVPrototypeView.h */,
+				5A445957169118C60078AB0A /* AIPreferenceCVPrototypeView.m */,
 			);
 			name = Preferences;
 			sourceTree = "<group>";
@@ -9102,6 +9109,7 @@
 				34F17FCE0F8EAC34009C5A39 /* AIListOutlineView+Drawing.h in Headers */,
 				63B0EC9D0F8FBB660062476B /* AIProxyListObject.h in Headers */,
 				76A79E0B16349477007A0497 /* AIGroupChat.h in Headers */,
+				5A6298E31682BD9D00F51DED /* AIAdvancedPreferencePane.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -10483,6 +10491,7 @@
 				761D58801636C60100210B12 /* AINewMessageTableView.m in Sources */,
 				761D58831636EDE100210B12 /* AINewMessageTextFieldCell.m in Sources */,
 				761D58861636F94300210B12 /* AINewMessageSearchField.m in Sources */,
+				5A44595E169143130078AB0A /* AIPreferenceCVPrototypeView.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -10592,6 +10601,7 @@
 				76FF926814B62AB80043E23B /* AIConsoleController.m in Sources */,
 				5AEE60011602BAE200304672 /* AIBoolToControlTextColorTransformer.m in Sources */,
 				76A79E0C16349477007A0497 /* AIGroupChat.m in Sources */,
+				5A6298DF1682BD9100F51DED /* AIAdvancedPreferencePane.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
diff -r 5ecaca34d0a1 -r 40745831e0e6 AdiumHelp/pgs/AdvancedFeatures-AdiumXtras.html
--- a/AdiumHelp/pgs/AdvancedFeatures-AdiumXtras.html	Sun Dec 30 18:43:03 2012 -0500
+++ b/AdiumHelp/pgs/AdvancedFeatures-AdiumXtras.html	Fri Jan 04 00:54:34 2013 +0100
@@ -68,7 +68,7 @@
 			<h3>Getting support for an Xtra</h3>
 		</div>
 		<div class="taskboxtext">
-			<p>An Xtra installed from the Adium Xtras site is supported by the Xtra's author. The first place to seek support is on the Xtra's page, probably in the comments unless the Author has given other instructions. If that doesn't work, try the <a class="ext_link" href="http://trac.adium.im/wiki/CreatingXtras"http://forum.adium.im/">Adium forums</a>.</p>
+			<p>An Xtra installed from the Adium Xtras site is supported by the Xtra's author. The first place to seek support is on the Xtra's page, probably in the comments unless the Author has given other instructions. If that doesn't work, try the <a class="ext_link" href="http://forum.adium.im/">Adium forums</a>.</p>
 		</div>
 	</div>
 	<div class="taskboxline">
diff -r 5ecaca34d0a1 -r 40745831e0e6 Frameworks/AIUtilities Framework/Source/AIPreferenceCollectionView.h
--- a/Frameworks/AIUtilities Framework/Source/AIPreferenceCollectionView.h	Sun Dec 30 18:43:03 2012 -0500
+++ b/Frameworks/AIUtilities Framework/Source/AIPreferenceCollectionView.h	Fri Jan 04 00:54:34 2013 +0100
@@ -32,6 +32,8 @@
 @property (retain, nonatomic) NSMutableIndexSet *matchedSearchIndexes;
 @property (nonatomic) id <AIPreferenceCollectionViewDelegate> delegate;
 
+- (void)didSelectItem:(id)item;
+
 @end
 
 @protocol AIPreferenceCollectionViewDelegate <NSObject>
diff -r 5ecaca34d0a1 -r 40745831e0e6 Frameworks/AIUtilities Framework/Source/AIPreferenceCollectionView.m
--- a/Frameworks/AIUtilities Framework/Source/AIPreferenceCollectionView.m	Sun Dec 30 18:43:03 2012 -0500
+++ b/Frameworks/AIUtilities Framework/Source/AIPreferenceCollectionView.m	Fri Jan 04 00:54:34 2013 +0100
@@ -93,6 +93,15 @@
 	[self setNeedsDisplay:YES];
 }
 
+- (void)didSelectItem:(id)item
+{
+	//We have to check the represented object because NSCollectionView doesn't have indexOfObject
+	if ([[self content] indexOfObject:[item representedObject]] != NSNotFound) {
+		if ([[self delegate] respondsToSelector:@selector(preferenceCollectionView:didSelectItem:)])
+			[[self delegate] preferenceCollectionView:self didSelectItem:item];
+	}
+}
+
 - (void)drawRect:(NSRect)dirtyRect
 {
 	id highlightItems = ^(NSUInteger anIndex, BOOL *stop) {
diff -r 5ecaca34d0a1 -r 40745831e0e6 Frameworks/Adium Framework/Source/AICorePluginLoader.h
--- a/Frameworks/Adium Framework/Source/AICorePluginLoader.h	Sun Dec 30 18:43:03 2012 -0500
+++ b/Frameworks/Adium Framework/Source/AICorePluginLoader.h	Fri Jan 04 00:54:34 2013 +0100
@@ -24,7 +24,6 @@
 
 + (void)loadPluginAtPath:(NSString *)pluginName confirmLoading:(BOOL)confirmLoading pluginArray:(NSMutableArray *)pluginArray;
 - (id <AIPlugin>)pluginWithClassName:(NSString *)className;
-+ (void)disablePlugin:(NSString *)pluginPath;
-+ (void)enablePlugin:(NSString *)pluginPath;
++ (void)moveXtra:(NSString *)pluginPath toDisabledFolder:(BOOL)disable;
 
 @end
diff -r 5ecaca34d0a1 -r 40745831e0e6 Frameworks/Adium Framework/Source/AICorePluginLoader.m
--- a/Frameworks/Adium Framework/Source/AICorePluginLoader.m	Sun Dec 30 18:43:03 2012 -0500
+++ b/Frameworks/Adium Framework/Source/AICorePluginLoader.m	Fri Jan 04 00:54:34 2013 +0100
@@ -28,6 +28,7 @@
 #define DIRECTORY_INTERNAL_PLUGINS		[@"Contents" stringByAppendingPathComponent:@"PlugIns"]	//Path to the internal plugins
 #define EXTERNAL_PLUGIN_FOLDER			@"PlugIns"				//Folder name of external plugins
 #define EXTERNAL_DISABLED_PLUGIN_FOLDER	@"PlugIns (Disabled)"	//Folder name for disabled external plugins
+#define XTRAS_DISABLED			@" (Disabled)"
 #define EXTENSION_ADIUM_PLUGIN			@"AdiumPlugin"			//File extension of a plugin
 
 #define CONFIRMED_PLUGINS				@"Confirmed Plugins"
@@ -48,7 +49,6 @@
 + (BOOL)confirmPluginArchitectureAtPath:(NSString *)pluginPath;
 + (BOOL)confirmMinimumVersionMetForPluginAtPath:(NSString *)pluginPath;
 + (BOOL)pluginIsBlacklisted:(NSBundle *)plugin;
-+ (void)disablePlugin:(NSString *)pluginPath;
 + (BOOL)allDependenciesMetForPluginAtPath:(NSString *)pluginPath;
 @end
 
@@ -157,7 +157,7 @@
 									 AILocalizedString(@"Disable", nil),
 									 nil,
 									 nil);
-		[self disablePlugin:pluginPath];
+		[self moveXtra:pluginPath toDisabledFolder:YES];
 		return;
 	}
 	
@@ -192,7 +192,7 @@
 											 AILocalizedString(@"Disable", nil),
 											 nil,
 											 nil);
-				[self disablePlugin:pluginPath];
+				[self moveXtra:pluginPath toDisabledFolder:YES];
 				return;
 			}
 			
@@ -225,7 +225,7 @@
 			//The plugin encountered an exception while it was loading.  There is no reason to leave this old
 			//or poorly coded plugin enabled so that it can cause more problems, so disable it and inform
 			//the user that they'll need to restart.
-			[self disablePlugin:pluginPath];
+			[self moveXtra:pluginPath toDisabledFolder:YES];
 			NSRunCriticalAlertPanel([NSString stringWithFormat:@"Error loading %@",[[pluginPath lastPathComponent] stringByDeletingPathExtension]],
 									@"An external plugin failed to load and has been disabled.  Please relaunch Adium",
 									@"Quit",
@@ -255,7 +255,7 @@
 										AILocalizedString(@"Continue", nil),
 										nil) == NSAlertDefaultReturn) {
 			//Disable this plugin
-			[self disablePlugin:pluginPath];
+			[self moveXtra:pluginPath toDisabledFolder:YES];
 			loadPlugin = NO;
 			
 		} else {
@@ -298,7 +298,7 @@
 		NSRunAlertPanel([NSString stringWithFormat:@"Could not load %@", pluginName],
 						@"The %@ plugin is not compatible with Adium %@. Please check xtras.adium.im to see if an update is available.",
 						AILocalizedString(@"Disable", nil), nil, nil, pluginName, [NSApp applicationVersion]);
-		[self disablePlugin:pluginPath];
+		[self moveXtra:pluginPath toDisabledFolder:YES];
 		return NO;
 	}
 
@@ -319,7 +319,7 @@
 						@"%@ requires Adium %@ or later, but you have Adium %@. Please upgrade Adium to use %@",
 						AILocalizedString(@"Disable", nil), nil, nil, 
 						pluginName, minimumVersionOfPlugin, appVersion, pluginName);
-		[self disablePlugin:pluginPath];
+		[self moveXtra:pluginName toDisabledFolder:YES];
 		return NO;
 	}
 
@@ -335,29 +335,23 @@
 			YES);
 }
 
-//Move a plugin to the disabled plugins folder
-+ (void)disablePlugin:(NSString *)pluginPath
++ (void)moveXtra:(NSString *)pluginPath toDisabledFolder:(BOOL)disable
 {
 	NSString	*pluginName = [pluginPath lastPathComponent];
 	NSString	*basePath = [pluginPath stringByDeletingLastPathComponent];
-	NSString	*disabledPath = [[basePath stringByDeletingLastPathComponent] stringByAppendingPathComponent:EXTERNAL_DISABLED_PLUGIN_FOLDER];
+	NSString	*typeName = [basePath lastPathComponent];
 	
-	[[NSFileManager defaultManager] createDirectoryAtPath:disabledPath withIntermediateDirectories:YES attributes:nil error:NULL];
-	[[NSFileManager defaultManager] moveItemAtPath:[basePath stringByAppendingPathComponent:pluginName]
-									  toPath:[disabledPath stringByAppendingPathComponent:pluginName]
-									 error:NULL];
-}
-
-//Move a plugin to the enabled plugins folder
-+ (void)enablePlugin:(NSString *)pluginPath
-{
-	NSString	*pluginName = [pluginPath lastPathComponent];
-	NSString	*basePath = [pluginPath stringByDeletingLastPathComponent];
-	NSString	*disabledPath = [[basePath stringByDeletingLastPathComponent] stringByAppendingPathComponent:EXTERNAL_PLUGIN_FOLDER];
+	if (disable) {
+		if ([typeName rangeOfString:XTRAS_DISABLED].location == NSNotFound)
+			typeName = [typeName stringByAppendingString:XTRAS_DISABLED];
+	} else {
+		typeName = [typeName stringByReplacingOccurrencesOfString:XTRAS_DISABLED withString:@""];
+	}
 	
-	[[NSFileManager defaultManager] createDirectoryAtPath:disabledPath withIntermediateDirectories:YES attributes:nil error:NULL];
-	[[NSFileManager defaultManager] moveItemAtPath:[basePath stringByAppendingPathComponent:pluginName]
-											toPath:[disabledPath stringByAppendingPathComponent:pluginName]
+	NSString	*newPath = [[basePath stringByDeletingLastPathComponent] stringByAppendingPathComponent:typeName];
+	[[NSFileManager defaultManager] createDirectoryAtPath:newPath withIntermediateDirectories:YES attributes:nil error:NULL];
+	[[NSFileManager defaultManager] moveItemAtPath:pluginPath
+											toPath:[newPath stringByAppendingPathComponent:pluginName]
 											 error:NULL];
 }
 
diff -r 5ecaca34d0a1 -r 40745831e0e6 Frameworks/AutoHyperlinks Framework/Source/AHHyperlinkScanner.m
--- a/Frameworks/AutoHyperlinks Framework/Source/AHHyperlinkScanner.m	Sun Dec 30 18:43:03 2012 -0500
+++ b/Frameworks/AutoHyperlinks Framework/Source/AHHyperlinkScanner.m	Fri Jan 04 00:54:34 2013 +0100
@@ -32,7 +32,7 @@
 #define ENC_INDEX_KEY @"encIndex"
 #define ENC_CHAR_KEY @"encChar"
 
-#define MIN_LINK_LENGTH 4
+#define MIN_LINK_LENGTH 0
 
 @interface AHHyperlinkScanner (PRIVATE)
 - (AHMarkedHyperlink *)nextURIFromLocation:(unsigned long *)_scanLocation;
diff -r 5ecaca34d0a1 -r 40745831e0e6 Plugins/Dual Window Interface/MessageView.xib
--- a/Plugins/Dual Window Interface/MessageView.xib	Sun Dec 30 18:43:03 2012 -0500
+++ b/Plugins/Dual Window Interface/MessageView.xib	Fri Jan 04 00:54:34 2013 +0100
@@ -2,13 +2,13 @@
 <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
 	<data>
 		<int key="IBDocument.SystemTarget">1060</int>
-		<string key="IBDocument.SystemVersion">11G56</string>
-		<string key="IBDocument.InterfaceBuilderVersion">2843</string>
-		<string key="IBDocument.AppKitVersion">1138.51</string>
-		<string key="IBDocument.HIToolboxVersion">569.00</string>
+		<string key="IBDocument.SystemVersion">12C60</string>
+		<string key="IBDocument.InterfaceBuilderVersion">3079</string>
+		<string key="IBDocument.AppKitVersion">1187.34</string>
+		<string key="IBDocument.HIToolboxVersion">625.00</string>
 		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
 			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
-			<string key="NS.object.0">2843</string>
+			<string key="NS.object.0">3079</string>
 		</object>
 		<array key="IBDocument.IntegratedClassDependencies">
 			<string>NSBox</string>
@@ -93,7 +93,7 @@
 																						<string key="NSFrameSize">{344, 264}</string>
 																						<reference key="NSSuperview" ref="916213062"/>
 																						<reference key="NSWindow"/>
-																						<reference key="NSNextKeyView" ref="944644976"/>
+																						<reference key="NSNextKeyView" ref="881321079"/>
 																					</object>
 																				</array>
 																				<string key="NSFrameSize">{344, 264}</string>
@@ -119,6 +119,7 @@
 																				<reference key="NSSuperview" ref="60130733"/>
 																				<reference key="NSWindow"/>
 																				<reference key="NSNextKeyView" ref="657097854"/>
+																				<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
 																				<reference key="NSTarget" ref="60130733"/>
 																				<string key="NSAction">_doScroller:</string>
 																				<double key="NSCurValue">1</double>
@@ -131,6 +132,7 @@
 																				<reference key="NSSuperview" ref="60130733"/>
 																				<reference key="NSWindow"/>
 																				<reference key="NSNextKeyView" ref="916213062"/>
+																				<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
 																				<int key="NSsFlags">1</int>
 																				<reference key="NSTarget" ref="60130733"/>
 																				<string key="NSAction">_doScroller:</string>
@@ -140,11 +142,14 @@
 																		<string key="NSFrameSize">{344, 264}</string>
 																		<reference key="NSSuperview" ref="1034558317"/>
 																		<reference key="NSWindow"/>
-																		<reference key="NSNextKeyView" ref="881321079"/>
+																		<reference key="NSNextKeyView" ref="916213062"/>
 																		<int key="NSsFlags">133120</int>
 																		<reference key="NSVScroller" ref="881321079"/>
 																		<reference key="NSHScroller" ref="657097854"/>
 																		<reference key="NSContentView" ref="916213062"/>
+																		<double key="NSMinMagnification">0.25</double>
+																		<double key="NSMaxMagnification">4</double>
+																		<double key="NSMagnification">1</double>
 																	</object>
 																</array>
 																<string key="NSFrameSize">{344, 264}</string>
@@ -171,7 +176,7 @@
 																						<string key="NSFrameSize">{344, 18}</string>
 																						<reference key="NSSuperview" ref="382054263"/>
 																						<reference key="NSWindow"/>
-																						<reference key="NSNextKeyView" ref="949636887"/>
+																						<reference key="NSNextKeyView" ref="559917187"/>
 																						<string key="NSClassName">AIMessageEntryTextView</string>
 																						<string key="NSExtension">NSTextView</string>
 																					</object>
@@ -194,6 +199,7 @@
 																				<reference key="NSSuperview" ref="1006380680"/>
 																				<reference key="NSWindow"/>
 																				<reference key="NSNextKeyView" ref="60271943"/>
+																				<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
 																				<reference key="NSTarget" ref="1006380680"/>
 																				<string key="NSAction">_doScroller:</string>
 																				<double key="NSCurValue">1</double>
@@ -206,6 +212,7 @@
 																				<reference key="NSSuperview" ref="1006380680"/>
 																				<reference key="NSWindow"/>
 																				<reference key="NSNextKeyView" ref="382054263"/>
+																				<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
 																				<int key="NSsFlags">1</int>
 																				<reference key="NSTarget" ref="1006380680"/>
 																				<string key="NSAction">_doScroller:</string>
@@ -215,11 +222,14 @@
 																		<string key="NSFrameSize">{344, 38}</string>
 																		<reference key="NSSuperview" ref="944644976"/>
 																		<reference key="NSWindow"/>
-																		<reference key="NSNextKeyView" ref="559917187"/>
+																		<reference key="NSNextKeyView" ref="382054263"/>
 																		<int key="NSsFlags">133648</int>
 																		<reference key="NSVScroller" ref="949636887"/>
 																		<reference key="NSHScroller" ref="559917187"/>
 																		<reference key="NSContentView" ref="382054263"/>
+																		<double key="NSMinMagnification">0.25</double>
+																		<double key="NSMaxMagnification">4</double>
+																		<double key="NSMagnification">1</double>
 																	</object>
 																</array>
 																<string key="NSFrame">{{0, 265}, {344, 38}}</string>
@@ -308,10 +318,9 @@
 																<string key="NSFrame">{{35, 3}, {84, 14}}</string>
 																<reference key="NSSuperview" ref="561723111"/>
 																<reference key="NSWindow"/>
-																<reference key="NSNextKeyView"/>
 																<bool key="NSEnabled">YES</bool>
 																<object class="NSTextFieldCell" key="NSCell" id="864763355">
-																	<int key="NSCellFlags">68191296</int>
+																	<int key="NSCellFlags">68157504</int>
 																	<int key="NSCellFlags2">272630784</int>
 																	<string key="NSContents">User Count</string>
 																	<object class="NSFont" key="NSSupport">
@@ -336,6 +345,7 @@
 																		<reference key="NSColor" ref="78591470"/>
 																	</object>
 																</object>
+																<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
 															</object>
 															<object class="NSButton" id="282711289">
 																<reference key="NSNextResponder" ref="561723111"/>
@@ -366,6 +376,7 @@
 																	<int key="NSPeriodicDelay">400</int>
 																	<int key="NSPeriodicInterval">75</int>
 																</object>
+																<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
 															</object>
 														</array>
 														<string key="NSFrameSize">{136, 21}</string>
@@ -390,6 +401,8 @@
 																		<reference key="NSWindow"/>
 																		<reference key="NSNextKeyView" ref="990929380"/>
 																		<bool key="NSEnabled">YES</bool>
+																		<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
+																		<bool key="NSControlAllowsExpansionToolTips">YES</bool>
 																		<object class="_NSCornerView" key="NSCornerView">
 																			<nil key="NSNextResponder"/>
 																			<int key="NSvFlags">-2147483392</int>
@@ -401,7 +414,7 @@
 																				<double key="NSMinWidth">16</double>
 																				<double key="NSMaxWidth">1000</double>
 																				<object class="NSTableHeaderCell" key="NSHeaderCell">
-																					<int key="NSCellFlags">75506752</int>
+																					<int key="NSCellFlags">75497536</int>
 																					<int key="NSCellFlags2">2048</int>
 																					<string key="NSContents"/>
 																					<reference key="NSSupport" ref="26"/>
@@ -417,7 +430,7 @@
 																					</object>
 																				</object>
 																				<object class="NSTextFieldCell" key="NSDataCell" id="701780279">
-																					<int key="NSCellFlags">337675328</int>
+																					<int key="NSCellFlags">337641536</int>
 																					<int key="NSCellFlags2">2048</int>
 																					<reference key="NSSupport" ref="523686606"/>
 																					<reference key="NSControlView" ref="824656698"/>
@@ -474,6 +487,7 @@
 																<reference key="NSSuperview" ref="652921259"/>
 																<reference key="NSWindow"/>
 																<reference key="NSNextKeyView" ref="282731645"/>
+																<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
 																<reference key="NSTarget" ref="652921259"/>
 																<string key="NSAction">_doScroller:</string>
 																<double key="NSPercent">0.78195488452911377</double>
@@ -485,6 +499,7 @@
 																<reference key="NSSuperview" ref="652921259"/>
 																<reference key="NSWindow"/>
 																<reference key="NSNextKeyView" ref="561723111"/>
+																<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
 																<int key="NSsFlags">1</int>
 																<reference key="NSTarget" ref="652921259"/>
 																<string key="NSAction">_doScroller:</string>
@@ -500,6 +515,9 @@
 														<reference key="NSHScroller" ref="282731645"/>
 														<reference key="NSContentView" ref="697712038"/>
 														<bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes>
+														<double key="NSMinMagnification">0.25</double>
+														<double key="NSMaxMagnification">4</double>
+														<double key="NSMagnification">1</double>
 													</object>
 												</array>
 												<string key="NSFrame">{{345, 0}, {136, 303}}</string>
@@ -971,15 +989,11 @@
 				<string key="111.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<string key="112.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<string key="142.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-				<string key="150.IBFrameForInitialResizeAction">{{0, 0}, {384, 139}}</string>
 				<string key="150.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-				<string key="151.IBFrameForInitialResizeAction">{{0, 0}, {264, 15}}</string>
 				<string key="151.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<boolean value="YES" key="151.IBShouldRemoveOnLegacySave"/>
-				<string key="152.IBFrameForInitialResizeAction">{{0, 0}, {15, 27}}</string>
 				<string key="152.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<boolean value="YES" key="152.IBShouldRemoveOnLegacySave"/>
-				<string key="153.IBFrameForInitialResizeAction">{{0, 0}, {378, 18}}</string>
 				<string key="153.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<string key="159.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<string key="162.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -999,16 +1013,12 @@
 				<string key="76.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<string key="84.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<string key="85.CustomClassName">AIAutoScrollView</string>
-				<string key="85.IBFrameForInitialResizeAction">{{0, 0}, {118, 210}}</string>
 				<string key="85.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-				<string key="86.IBFrameForInitialResizeAction">{{0, 0}, {101, 15}}</string>
 				<string key="86.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<boolean value="YES" key="86.IBShouldRemoveOnLegacySave"/>
-				<string key="87.IBFrameForInitialResizeAction">{{0, 0}, {15, 208}}</string>
 				<string key="87.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<boolean value="YES" key="87.IBShouldRemoveOnLegacySave"/>
 				<string key="88.CustomClassName">AIUserListOutlineView</string>
-				<string key="88.IBFrameForInitialResizeAction">{{0, 0}, {118, 0}}</string>
 				<string key="88.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<string key="89.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<string key="90.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
diff -r 5ecaca34d0a1 -r 40745831e0e6 Source/AIChatLog.m
--- a/Source/AIChatLog.m	Sun Dec 30 18:43:03 2012 -0500
+++ b/Source/AIChatLog.m	Fri Jan 04 00:54:34 2013 +0100
@@ -52,10 +52,11 @@
 	NSArray *serviceAndFromUIDArray = [serviceAndFromUID componentsSeparatedByString:@"."];
 	
 	if ([serviceAndFromUIDArray count] >= 2) {
-		myServiceClass = handleSpecialCasesForUIDAndServiceClass(toUID, [serviceAndFromUIDArray objectAtIndex:0]);
+		NSString *serviceString = [serviceAndFromUIDArray objectAtIndex:0];
+		myServiceClass = handleSpecialCasesForUIDAndServiceClass(toUID, serviceString);
 		
 		//Use substringFromIndex so we include the rest of the string in the case of a UID with a . in it
-		fromUID = [serviceAndFromUID substringFromIndex:([serviceClass length] + 1)]; //One off for the '.'
+		fromUID = [serviceAndFromUID substringFromIndex:([serviceString length] + 1)]; //One off for the '.'
 
 	} else {
 		//Fallback: blank non-nil serviceClass; folderName as the fromUID
diff -r 5ecaca34d0a1 -r 40745831e0e6 Source/AILogViewerWindowController.m
--- a/Source/AILogViewerWindowController.m	Sun Dec 30 18:43:03 2012 -0500
+++ b/Source/AILogViewerWindowController.m	Fri Jan 04 00:54:34 2013 +0100
@@ -259,7 +259,6 @@
 //Init our log filtering tree
 - (void)initLogFiltering
 {
-    NSMutableDictionary		*toDict = [NSMutableDictionary dictionary];
     NSString				*basePath = [AILoggerPlugin logBasePath];
     NSString				*fromUID, *serviceClass;
 
@@ -268,7 +267,6 @@
     for (NSString *folderName in [[[NSFileManager defaultManager] contentsOfDirectoryAtPath:basePath error:NULL] sortedArrayUsingSelector:@selector(compare:)]) {
 		if (![folderName isEqualToString:@".DS_Store"]) { // avoid the directory info
 			AILogFromGroup  *logFromGroup;
-			NSMutableSet	*toSetForThisService;
 			NSArray         *serviceAndFromUIDArray;
 			
 			/* Determine the service and fromUID - should be SERVICE.ACCOUNT_NAME
@@ -292,19 +290,10 @@
 			//Store logFromGroup on a key in the form "SERVICE.ACCOUNT_NAME"
 			[logFromGroupDict setObject:logFromGroup forKey:folderName];
 
-			//To processing
-			if (!(toSetForThisService = [toDict objectForKey:serviceClass])) {
-				toSetForThisService = [NSMutableSet set];
-				[toDict setObject:toSetForThisService
-						   forKey:serviceClass];
-			}
-
 			//Add the 'to' for each grouping on this account
 			for (AILogToGroup *currentToGroup in [logFromGroup toGroupArray]) {
-				if ([currentToGroup to]) {
-					//Store currentToGroup on a key in the form "SERVICE.ACCOUNT_NAME/TARGET_CONTACT"
-					[logToGroupDict setObject:currentToGroup forKey:[currentToGroup relativePath]];
-				}
+				//Store currentToGroup on a key in the form "SERVICE.ACCOUNT_NAME/TARGET_CONTACT"
+				[logToGroupDict setObject:currentToGroup forKey:[currentToGroup relativePath]];
 			}
 
 		}
diff -r 5ecaca34d0a1 -r 40745831e0e6 Source/AIPreferenceCVPrototypeView.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Source/AIPreferenceCVPrototypeView.h	Fri Jan 04 00:54:34 2013 +0100
@@ -0,0 +1,23 @@
+/*
+ * Adium is the legal property of its developers, whose names are listed in the copyright file included
+ * with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License as published by the Free Software Foundation; either version 2 of the License,
+ * or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
+ * Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with this program; if not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+ at interface AIPreferenceCVPrototypeView : NSView {
+	NSCollectionViewItem *item;
+}
+
+ at property (assign) NSCollectionViewItem *item;
+
+ at end
diff -r 5ecaca34d0a1 -r 40745831e0e6 Source/AIPreferenceCVPrototypeView.m
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Source/AIPreferenceCVPrototypeView.m	Fri Jan 04 00:54:34 2013 +0100
@@ -0,0 +1,53 @@
+/*
+ * Adium is the legal property of its developers, whose names are listed in the copyright file included
+ * with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License as published by the Free Software Foundation; either version 2 of the License,
+ * or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
+ * Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with this program; if not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+#import "AIPreferenceCVPrototypeView.h"
+#import "AIPreferenceCollectionView.h"
+#import "AIPreferencePane.h"
+
+ at implementation AIPreferenceCVPrototypeView
+ at synthesize item;
+
+- (id)accessibilityAttributeValue:(NSString *)attribute
+{
+	//Don't expose the children (image and text field) as accessibility elements since we want them to appear as one item
+	if ([attribute isEqualToString:NSAccessibilityChildrenAttribute])
+		return [NSArray arrayWithObject:self];
+	else if ([attribute isEqualToString:NSAccessibilityParentAttribute])
+		return NSAccessibilityUnignoredAncestor([self superview]);
+
+	else if ([attribute isEqualToString:NSAccessibilityTitleAttribute])
+		return [(AIPreferencePane *)item.representedObject paneName];
+	else if ([attribute isEqualToString:NSAccessibilityDescriptionAttribute])
+		return [(AIPreferencePane *)item.representedObject paneName];
+
+	else if ([attribute isEqualToString:NSAccessibilityRoleAttribute])
+		return NSAccessibilityButtonRole;
+	else if ([attribute isEqualToString:NSAccessibilitySubroleAttribute])
+		return NSAccessibilityTableRowSubrole;
+
+	else
+		return [super accessibilityAttributeValue:attribute];
+}
+
+- (void)accessibilityPerformAction:(NSString *)action
+{
+	//Pass the action up the chain
+	if ([action isEqualToString:NSAccessibilityPressAction])
+		[(AIPreferenceCollectionView *)[self superview] didSelectItem:item];
+}
+
+ at end
diff -r 5ecaca34d0a1 -r 40745831e0e6 Source/AIPreferenceCollectionItem.m
--- a/Source/AIPreferenceCollectionItem.m	Sun Dec 30 18:43:03 2012 -0500
+++ b/Source/AIPreferenceCollectionItem.m	Fri Jan 04 00:54:34 2013 +0100
@@ -15,6 +15,7 @@
  */
 
 #import "AIPreferenceCollectionItem.h"
+#import "AIPreferenceCVPrototypeView.h"
 
 @implementation AIPreferenceCollectionItem
 @synthesize image = _image;
@@ -53,4 +54,10 @@
 		self.image = nil;
 }
 
+- (void)setRepresentedObject:(id)representedObject
+{
+	[super setRepresentedObject:representedObject];
+	[(AIPreferenceCVPrototypeView *)self.view setItem:self];
+}
+
 @end
diff -r 5ecaca34d0a1 -r 40745831e0e6 Source/AIPreferenceWindowController.m
--- a/Source/AIPreferenceWindowController.m	Sun Dec 30 18:43:03 2012 -0500
+++ b/Source/AIPreferenceWindowController.m	Fri Jan 04 00:54:34 2013 +0100
@@ -286,6 +286,15 @@
 	[label_advanced setStringValue:AILocalizedString(@"Advanced", nil)];
 	[button_showAll setStringValue:AILocalizedString(@"Show All", nil)];
 	
+	[[generalCV enclosingScrollView] accessibilitySetOverrideValue:AILocalizedString(@"Preference panes", nil)
+													  forAttribute:NSAccessibilityDescriptionAttribute];
+	[[appearanceCV enclosingScrollView] accessibilitySetOverrideValue:AILocalizedString(@"Preference panes", nil)
+														 forAttribute:NSAccessibilityDescriptionAttribute];
+	[[eventsCV enclosingScrollView] accessibilitySetOverrideValue:AILocalizedString(@"Preference panes", nil)
+													 forAttribute:NSAccessibilityDescriptionAttribute];
+	[[advancedCV enclosingScrollView] accessibilitySetOverrideValue:AILocalizedString(@"Preference panes", nil)
+													   forAttribute:NSAccessibilityDescriptionAttribute];
+	
 	//Resize the last collection view and window
 	NSUInteger advCount = [advancedPaneArray count];
 	NSUInteger advColumns = [advancedCV maxNumberOfColumns];
diff -r 5ecaca34d0a1 -r 40745831e0e6 Source/AIXtrasManager.m
--- a/Source/AIXtrasManager.m	Sun Dec 30 18:43:03 2012 -0500
+++ b/Source/AIXtrasManager.m	Fri Jan 04 00:54:34 2013 +0100
@@ -223,12 +223,6 @@
 	if ([xtraList numberOfRows]) {
 		[xtraList selectRowIndexes:[NSIndexSet indexSetWithIndex:0] byExtendingSelection:NO];
 	}
-
-	//Show/Hide the plugin enabler for the plugin category
-	if ([[[categories objectAtIndex:[tableView_categories selectedRow]] objectForKey:@"Directory"] integerValue] == AIPluginsDirectory)
-		[togglePluginEnabled setHidden:NO];
-	else
-		[togglePluginEnabled setHidden:YES];
 	
 	[self updatePreview];
 }
@@ -295,13 +289,12 @@
 		NSIndexSet * indices = [xtraList selectedRowIndexes];
 		NSMutableSet * pathExtensions = [NSMutableSet set];
 		NSString * path;
-		for (NSInteger i = [indices lastIndex]; i >= 0; i--) {
-			if ([indices containsIndex:i]) {
-				path = [[selectedCategory objectAtIndex:i] path];
-				[pathExtensions addObject:[path pathExtension]];
-				[fileManager trashFileAtPath:path];
-			}
+		for (AIXtraInfo *xtra in [selectedCategory objectsAtIndexes:indices]) {
+			path = [xtra path];
+			[pathExtensions addObject:[path pathExtension]];
+			[fileManager trashFileAtPath:path];
 		}
+		
 		[xtraList selectRowIndexes:[NSIndexSet indexSetWithIndex:0] byExtendingSelection:NO];
 		[selectedCategory removeObjectsAtIndexes:indices];
 		[xtraList reloadData];
@@ -348,17 +341,14 @@
 	[[xtraList selectedRowIndexes] enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop) {
 		AIXtraInfo *xtraInfo = [selectedCategory objectAtIndex:idx];
 		
-		if (xtraInfo.enabled)
-			[AICorePluginLoader disablePlugin:xtraInfo.path];
-		else
-			[AICorePluginLoader enablePlugin:xtraInfo.path];
+		[AICorePluginLoader moveXtra:[xtraInfo path] toDisabledFolder:xtraInfo.enabled];
 	}];
 	
 	NSAlert * warning = [NSAlert alertWithMessageText:AILocalizedString(@"You will need to restart Adium", nil)
 										defaultButton:AILocalizedString(@"OK", nil)
 									  alternateButton:nil
 										  otherButton:nil
-							informativeTextWithFormat:AILocalizedString(@"Enabling or disabling plugins requires a restart of Adium.", nil)];
+							informativeTextWithFormat:AILocalizedString(@"Enabling or disabling Xtras requires a restart of Adium.", nil)];
 	[warning beginSheetModalForWindow:self.view.window
 						modalDelegate:nil
 					   didEndSelector:nil
@@ -368,7 +358,7 @@
 	[self xtrasChanged:nil];
 }
 
-+ (BOOL)createXtraBundleAtPath:(NSString *)path 
++ (BOOL)createXtraBundleAtPath:(NSString *)path
 {
 	NSString *contentsPath  = [path stringByAppendingPathComponent:@"Contents"];
 	NSString *resourcesPath = [contentsPath stringByAppendingPathComponent:@"Resources"];




More information about the commits mailing list