adium 3277:21ab21e877e0: Add a Reopen Closed Tab menu item to th...

commits at adium.im commits at adium.im
Mon Aug 30 00:15:25 UTC 2010


details:	http://hg.adium.im/adium/rev/21ab21e877e0
revision:	3277:21ab21e877e0
author:		Thijs Alkemade <thijsalkemade at gmail.com>
date:		Sat Aug 28 22:01:12 2010 +0200

Add a Reopen Closed Tab menu item to the File menu that will restore the most recently closed tab, similar to Chrome. Fixes #12537

Does not work with MSN group chats (and probably other protocols that have unnamed MUCs).

r=wix
Subject: adium 3278:2dfee308da03: Add Google Chrome support for link insertion.

details:	http://hg.adium.im/adium/rev/2dfee308da03
revision:	3278:2dfee308da03
author:		Frank Dowsett <wixardy at adium.im>
date:		Sun Aug 29 20:05:34 2010 -0400

Add Google Chrome support for link insertion.
Subject: adium 3279:2be2cb5ee1fa: Update the AdiumBuild script to work with hg revisions.

details:	http://hg.adium.im/adium/rev/2be2cb5ee1fa
revision:	3279:2be2cb5ee1fa
author:		Frank Dowsett <wixardy at adium.im>
date:		Sun Aug 29 20:07:28 2010 -0400

Update the AdiumBuild script to work with hg revisions.

diffs (977 lines):

diff -r aa190f1573ff -r 2be2cb5ee1fa Frameworks/Adium Framework/Source/AIChatControllerProtocol.h
--- a/Frameworks/Adium Framework/Source/AIChatControllerProtocol.h	Sat Aug 21 18:40:48 2010 -0400
+++ b/Frameworks/Adium Framework/Source/AIChatControllerProtocol.h	Sun Aug 29 20:07:28 2010 -0400
@@ -34,6 +34,7 @@
 
 - (BOOL)closeChat:(AIChat *)inChat;
 - (void)accountDidCloseChat:(AIChat *)inChat;
+- (void)restoreChat:(AIChat *)inChat;
 
 @property (nonatomic, readonly) NSSet *openChats;
 @property (nonatomic, readonly) AIChat *mostRecentUnviewedChat;
diff -r aa190f1573ff -r 2be2cb5ee1fa Resources/MainMenu.nib/designable.nib
--- a/Resources/MainMenu.nib/designable.nib	Sat Aug 21 18:40:48 2010 -0400
+++ b/Resources/MainMenu.nib/designable.nib	Sun Aug 29 20:07:28 2010 -0400
@@ -2,17 +2,17 @@
 <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
 	<data>
 		<int key="IBDocument.SystemTarget">1050</int>
-		<string key="IBDocument.SystemVersion">10D573</string>
+		<string key="IBDocument.SystemVersion">10F569</string>
 		<string key="IBDocument.InterfaceBuilderVersion">762</string>
 		<string key="IBDocument.AppKitVersion">1038.29</string>
-		<string key="IBDocument.HIToolboxVersion">460.00</string>
+		<string key="IBDocument.HIToolboxVersion">461.00</string>
 		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
 			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
 			<string key="NS.object.0">762</string>
 		</object>
 		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
 			<bool key="EncodedWithXMLCoder">YES</bool>
-			<integer value="6600"/>
+			<integer value="6614"/>
 		</object>
 		<object class="NSArray" key="IBDocument.PluginDependencies">
 			<bool key="EncodedWithXMLCoder">YES</bool>
@@ -262,6 +262,16 @@
 									<reference key="NSOnImage" ref="145266427"/>
 									<reference key="NSMixedImage" ref="551713053"/>
 								</object>
+								<object class="NSMenuItem" id="600191255">
+									<reference key="NSMenu" ref="580936113"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<string key="NSTitle">Reopen Closed Tab</string>
+									<string key="NSKeyEquiv">T</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="145266427"/>
+									<reference key="NSMixedImage" ref="551713053"/>
+								</object>
 								<object class="NSMenuItem" id="863669792">
 									<reference key="NSMenu" ref="580936113"/>
 									<string key="NSTitle">Close Window</string>
@@ -2614,6 +2624,22 @@
 					</object>
 					<int key="connectionID">7374</int>
 				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">reopenChat:</string>
+						<reference key="source" ref="276456795"/>
+						<reference key="destination" ref="600191255"/>
+					</object>
+					<int key="connectionID">7381</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">menuItem_reopenTab</string>
+						<reference key="source" ref="276456795"/>
+						<reference key="destination" ref="600191255"/>
+					</object>
+					<int key="connectionID">7382</int>
+				</object>
 			</object>
 			<object class="IBMutableOrderedSet" key="objectRecords">
 				<object class="NSArray" key="orderedObjects">
@@ -3240,6 +3266,7 @@
 							<reference ref="863669792"/>
 							<reference ref="550369297"/>
 							<reference ref="970744887"/>
+							<reference ref="600191255"/>
 						</object>
 						<reference key="parent" ref="958311131"/>
 					</object>
@@ -3392,243 +3419,464 @@
 						<reference key="object" ref="715555530"/>
 						<reference key="parent" ref="814345242"/>
 					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">7380</int>
+						<reference key="object" ref="600191255"/>
+						<reference key="parent" ref="580936113"/>
+					</object>
 				</object>
 			</object>
 			<object class="NSMutableDictionary" key="flattenedProperties">
 				<bool key="EncodedWithXMLCoder">YES</bool>
 				<object class="NSArray" key="dict.sortedKeys">
 					<bool key="EncodedWithXMLCoder">YES</bool>
+					<string>-3.IBPluginDependency</string>
 					<string>-3.ImportedFromIB2</string>
 					<string>2512.ImportedFromIB2</string>
 					<string>4001.ImportedFromIB2</string>
+					<string>6453.IBPluginDependency</string>
 					<string>6453.ImportedFromIB2</string>
+					<string>6455.IBPluginDependency</string>
 					<string>6455.ImportedFromIB2</string>
+					<string>6462.IBPluginDependency</string>
 					<string>6462.ImportedFromIB2</string>
+					<string>6473.IBPluginDependency</string>
 					<string>6473.ImportedFromIB2</string>
+					<string>6474.IBPluginDependency</string>
 					<string>6474.ImportedFromIB2</string>
+					<string>6475.IBPluginDependency</string>
 					<string>6475.ImportedFromIB2</string>
+					<string>6480.IBPluginDependency</string>
 					<string>6480.ImportedFromIB2</string>
+					<string>6481.IBPluginDependency</string>
 					<string>6481.ImportedFromIB2</string>
+					<string>6482.IBPluginDependency</string>
 					<string>6482.ImportedFromIB2</string>
+					<string>6483.IBPluginDependency</string>
 					<string>6483.ImportedFromIB2</string>
+					<string>6486.IBPluginDependency</string>
 					<string>6486.ImportedFromIB2</string>
+					<string>6491.IBPluginDependency</string>
 					<string>6491.ImportedFromIB2</string>
+					<string>6493.IBPluginDependency</string>
 					<string>6493.ImportedFromIB2</string>
+					<string>6494.IBPluginDependency</string>
 					<string>6494.ImportedFromIB2</string>
+					<string>6501.IBPluginDependency</string>
 					<string>6501.ImportedFromIB2</string>
+					<string>6507.IBPluginDependency</string>
 					<string>6507.ImportedFromIB2</string>
+					<string>6508.IBPluginDependency</string>
 					<string>6508.ImportedFromIB2</string>
+					<string>6509.IBPluginDependency</string>
 					<string>6509.ImportedFromIB2</string>
+					<string>6511.IBPluginDependency</string>
 					<string>6511.ImportedFromIB2</string>
+					<string>6516.IBPluginDependency</string>
 					<string>6516.ImportedFromIB2</string>
 					<string>6521.IBEditorWindowLastContentRect</string>
+					<string>6521.IBPluginDependency</string>
 					<string>6521.ImportedFromIB2</string>
+					<string>6528.IBPluginDependency</string>
 					<string>6528.ImportedFromIB2</string>
+					<string>6532.IBPluginDependency</string>
 					<string>6532.ImportedFromIB2</string>
+					<string>6533.IBPluginDependency</string>
 					<string>6533.ImportedFromIB2</string>
+					<string>6534.IBPluginDependency</string>
 					<string>6534.ImportedFromIB2</string>
+					<string>6538.IBPluginDependency</string>
 					<string>6538.ImportedFromIB2</string>
+					<string>6539.IBPluginDependency</string>
 					<string>6539.ImportedFromIB2</string>
+					<string>6540.IBPluginDependency</string>
 					<string>6540.ImportedFromIB2</string>
+					<string>6542.IBPluginDependency</string>
 					<string>6542.ImportedFromIB2</string>
+					<string>6546.IBPluginDependency</string>
 					<string>6546.ImportedFromIB2</string>
+					<string>6549.IBPluginDependency</string>
 					<string>6549.ImportedFromIB2</string>
+					<string>6550.IBPluginDependency</string>
 					<string>6550.ImportedFromIB2</string>
+					<string>6555.IBPluginDependency</string>
 					<string>6555.ImportedFromIB2</string>
+					<string>6556.IBPluginDependency</string>
 					<string>6556.ImportedFromIB2</string>
+					<string>6565.IBPluginDependency</string>
 					<string>6565.ImportedFromIB2</string>
+					<string>6566.IBPluginDependency</string>
 					<string>6566.ImportedFromIB2</string>
+					<string>6567.IBPluginDependency</string>
 					<string>6567.ImportedFromIB2</string>
+					<string>6572.IBPluginDependency</string>
 					<string>6572.ImportedFromIB2</string>
+					<string>6580.IBPluginDependency</string>
 					<string>6580.ImportedFromIB2</string>
+					<string>6581.IBPluginDependency</string>
 					<string>6581.ImportedFromIB2</string>
+					<string>6584.IBPluginDependency</string>
 					<string>6584.ImportedFromIB2</string>
+					<string>6587.IBPluginDependency</string>
 					<string>6587.ImportedFromIB2</string>
+					<string>6594.IBPluginDependency</string>
 					<string>6594.ImportedFromIB2</string>
+					<string>6595.IBPluginDependency</string>
 					<string>6595.ImportedFromIB2</string>
+					<string>6597.IBPluginDependency</string>
 					<string>6597.ImportedFromIB2</string>
+					<string>6598.IBPluginDependency</string>
 					<string>6598.ImportedFromIB2</string>
 					<string>6600.IBEditorWindowLastContentRect</string>
+					<string>6600.IBPluginDependency</string>
 					<string>6600.ImportedFromIB2</string>
+					<string>6609.IBPluginDependency</string>
 					<string>6609.ImportedFromIB2</string>
+					<string>6611.IBPluginDependency</string>
 					<string>6611.ImportedFromIB2</string>
+					<string>6612.IBPluginDependency</string>
 					<string>6612.ImportedFromIB2</string>
+					<string>6614.IBEditorWindowLastContentRect</string>
+					<string>6614.IBPluginDependency</string>
 					<string>6614.ImportedFromIB2</string>
+					<string>6615.IBPluginDependency</string>
 					<string>6615.ImportedFromIB2</string>
+					<string>6616.IBPluginDependency</string>
 					<string>6616.ImportedFromIB2</string>
+					<string>6618.IBPluginDependency</string>
 					<string>6618.ImportedFromIB2</string>
+					<string>6620.IBPluginDependency</string>
 					<string>6620.ImportedFromIB2</string>
+					<string>6623.IBPluginDependency</string>
 					<string>6623.ImportedFromIB2</string>
 					<string>6655.ImportedFromIB2</string>
 					<string>6706.ImportedFromIB2</string>
+					<string>6932.IBPluginDependency</string>
 					<string>6932.ImportedFromIB2</string>
+					<string>6933.IBPluginDependency</string>
 					<string>6933.ImportedFromIB2</string>
+					<string>6944.IBPluginDependency</string>
 					<string>6944.ImportedFromIB2</string>
+					<string>6946.IBPluginDependency</string>
 					<string>6946.ImportedFromIB2</string>
+					<string>6952.IBPluginDependency</string>
 					<string>6952.ImportedFromIB2</string>
+					<string>6987.IBPluginDependency</string>
 					<string>6987.ImportedFromIB2</string>
+					<string>6988.IBPluginDependency</string>
 					<string>6988.ImportedFromIB2</string>
+					<string>6989.IBPluginDependency</string>
 					<string>6989.ImportedFromIB2</string>
+					<string>6990.IBPluginDependency</string>
 					<string>6990.ImportedFromIB2</string>
+					<string>6991.IBPluginDependency</string>
 					<string>6991.ImportedFromIB2</string>
+					<string>6992.IBPluginDependency</string>
 					<string>6992.ImportedFromIB2</string>
+					<string>6993.IBPluginDependency</string>
 					<string>6993.ImportedFromIB2</string>
+					<string>7010.IBPluginDependency</string>
 					<string>7010.ImportedFromIB2</string>
+					<string>7011.IBPluginDependency</string>
 					<string>7011.ImportedFromIB2</string>
+					<string>7016.IBPluginDependency</string>
 					<string>7016.ImportedFromIB2</string>
+					<string>7017.IBPluginDependency</string>
 					<string>7017.ImportedFromIB2</string>
+					<string>7032.IBPluginDependency</string>
 					<string>7032.ImportedFromIB2</string>
+					<string>7033.IBPluginDependency</string>
 					<string>7033.ImportedFromIB2</string>
+					<string>7034.IBPluginDependency</string>
 					<string>7034.ImportedFromIB2</string>
+					<string>7037.IBPluginDependency</string>
 					<string>7037.ImportedFromIB2</string>
+					<string>7039.IBPluginDependency</string>
 					<string>7039.ImportedFromIB2</string>
+					<string>7054.IBPluginDependency</string>
 					<string>7054.ImportedFromIB2</string>
+					<string>7057.IBPluginDependency</string>
 					<string>7057.ImportedFromIB2</string>
+					<string>7058.IBPluginDependency</string>
 					<string>7058.ImportedFromIB2</string>
+					<string>7102.IBPluginDependency</string>
 					<string>7102.ImportedFromIB2</string>
+					<string>7104.IBPluginDependency</string>
 					<string>7104.ImportedFromIB2</string>
+					<string>7214.IBPluginDependency</string>
 					<string>7214.ImportedFromIB2</string>
+					<string>7224.IBPluginDependency</string>
 					<string>7224.ImportedFromIB2</string>
+					<string>7225.IBPluginDependency</string>
 					<string>7225.ImportedFromIB2</string>
+					<string>7227.IBPluginDependency</string>
 					<string>7227.ImportedFromIB2</string>
+					<string>7228.IBPluginDependency</string>
 					<string>7228.ImportedFromIB2</string>
+					<string>7229.IBPluginDependency</string>
 					<string>7229.ImportedFromIB2</string>
+					<string>7230.IBPluginDependency</string>
 					<string>7230.ImportedFromIB2</string>
+					<string>7231.IBPluginDependency</string>
 					<string>7231.ImportedFromIB2</string>
+					<string>7240.IBPluginDependency</string>
 					<string>7240.ImportedFromIB2</string>
 					<string>7246.ImportedFromIB2</string>
+					<string>7251.IBPluginDependency</string>
 					<string>7251.ImportedFromIB2</string>
+					<string>7254.IBPluginDependency</string>
 					<string>7254.ImportedFromIB2</string>
+					<string>7255.IBPluginDependency</string>
 					<string>7255.ImportedFromIB2</string>
+					<string>7256.IBPluginDependency</string>
 					<string>7256.ImportedFromIB2</string>
+					<string>7268.IBPluginDependency</string>
 					<string>7268.ImportedFromIB2</string>
+					<string>7269.IBPluginDependency</string>
 					<string>7269.ImportedFromIB2</string>
+					<string>7272.IBPluginDependency</string>
 					<string>7272.ImportedFromIB2</string>
+					<string>7273.IBPluginDependency</string>
 					<string>7273.ImportedFromIB2</string>
+					<string>7274.IBPluginDependency</string>
 					<string>7274.ImportedFromIB2</string>
+					<string>7291.IBPluginDependency</string>
 					<string>7291.ImportedFromIB2</string>
+					<string>7337.IBPluginDependency</string>
 					<string>7337.ImportedFromIB2</string>
+					<string>7341.IBPluginDependency</string>
 					<string>7341.ImportedFromIB2</string>
+					<string>7348.IBPluginDependency</string>
 					<string>7348.ImportedFromIB2</string>
+					<string>7366.IBPluginDependency</string>
 					<string>7366.ImportedFromIB2</string>
 					<string>7373.IBPluginDependency</string>
+					<string>7380.IBPluginDependency</string>
 				</object>
 				<object class="NSMutableArray" key="dict.values">
 					<bool key="EncodedWithXMLCoder">YES</bool>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
 					<boolean value="YES"/>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
 					<string>{{642, 832}, {202, 143}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
 					<string>{{93, 975}, {610, 20}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>{{170, 812}, {222, 163}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
 					<boolean value="YES"/>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<boolean value="YES"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 				</object>
 			</object>
 			<object class="NSMutableDictionary" key="unlocalizedProperties">
@@ -3647,7 +3895,7 @@
 				</object>
 			</object>
 			<nil key="sourceID"/>
-			<int key="maxID">7374</int>
+			<int key="maxID">7382</int>
 		</object>
 		<object class="IBClassDescriber" key="IBDocument.Classes">
 			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -3753,6 +4001,7 @@
 							<string>paste:</string>
 							<string>pasteAndMatchStyle:</string>
 							<string>pasteWithImagesAndColors:</string>
+							<string>reopenChat:</string>
 							<string>runToolbarCustomizationPalette:</string>
 							<string>setFontPanelSettingsAsDefaultFont:</string>
 							<string>showContactListAndBringToFront:</string>
@@ -3779,6 +4028,7 @@
 							<string>id</string>
 							<string>id</string>
 							<string>id</string>
+							<string>id</string>
 						</object>
 					</object>
 					<object class="NSMutableDictionary" key="outlets">
@@ -3799,6 +4049,7 @@
 							<string>menuItem_pasteAndMatchStyle</string>
 							<string>menuItem_pasteWithImagesAndColors</string>
 							<string>menuItem_print</string>
+							<string>menuItem_reopenTab</string>
 							<string>menuItem_showFonts</string>
 							<string>menuItem_showToolbar</string>
 						</object>
@@ -3820,6 +4071,7 @@
 							<string>NSMenuItem</string>
 							<string>NSMenuItem</string>
 							<string>NSMenuItem</string>
+							<string>NSMenuItem</string>
 						</object>
 					</object>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
@@ -4115,13 +4367,11 @@
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<string>runToolbarConfigurationPalette:</string>
 							<string>toggleBaseWritingDirection:</string>
-							<string>toggleGrammarChecking:</string>
 						</object>
 						<object class="NSMutableArray" key="dict.values">
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<string>id</string>
 							<string>id</string>
-							<string>id</string>
 						</object>
 					</object>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
@@ -4580,6 +4830,37 @@
 					</object>
 				</object>
 				<object class="IBPartialClassDescription">
+					<string key="className">NSTextView</string>
+					<object class="NSMutableDictionary" key="actions">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>toggleAutomaticDashSubstitution:</string>
+							<string>toggleAutomaticDataDetection:</string>
+							<string>toggleAutomaticSpellingCorrection:</string>
+							<string>toggleAutomaticTextReplacement:</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+						</object>
+					</object>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="79193227">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">Frameworks/AIUtilities Framework/Source/AILeopardCompatibility.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSTextView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">Frameworks/AIUtilities Framework/Source/AITextViewAdditions.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
 					<string key="className">NSView</string>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
 						<string key="majorKey">IBProjectSource</string>
@@ -4595,6 +4876,24 @@
 					</object>
 				</object>
 				<object class="IBPartialClassDescription">
+					<string key="className">NSWindow</string>
+					<reference key="sourceIdentifier" ref="79193227"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSWindow</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">Frameworks/AIUtilities Framework/Source/AIWindowAdditions.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSWindow</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">Source/NSWindowScriptingAdditions.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
 					<string key="className">RBSplitSubview</string>
 					<string key="superclassName">NSView</string>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
@@ -4699,6 +4998,14 @@
 					</object>
 				</object>
 				<object class="IBPartialClassDescription">
+					<string key="className">NSBrowser</string>
+					<string key="superclassName">NSControl</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSBrowser.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
 					<string key="className">NSButton</string>
 					<string key="superclassName">NSControl</string>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
@@ -4759,6 +5066,22 @@
 					</object>
 				</object>
 				<object class="IBPartialClassDescription">
+					<string key="className">NSFormatter</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSMatrix</string>
+					<string key="superclassName">NSControl</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSMatrix.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
 					<string key="className">NSMenu</string>
 					<string key="superclassName">NSObject</string>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="197677337">
@@ -4775,6 +5098,14 @@
 					</object>
 				</object>
 				<object class="IBPartialClassDescription">
+					<string key="className">NSMovieView</string>
+					<string key="superclassName">NSView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSMovieView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
 					<string key="className">NSObject</string>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
 						<string key="majorKey">IBFrameworkSource</string>
@@ -5300,6 +5631,22 @@
 					<reference key="sourceIdentifier" ref="415592568"/>
 				</object>
 				<object class="IBPartialClassDescription">
+					<string key="className">NSText</string>
+					<string key="superclassName">NSView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSText.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSTextView</string>
+					<string key="superclassName">NSText</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSTextView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
 					<string key="className">NSView</string>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
 						<string key="majorKey">IBFrameworkSource</string>
@@ -5323,6 +5670,28 @@
 					<reference key="sourceIdentifier" ref="817207599"/>
 				</object>
 				<object class="IBPartialClassDescription">
+					<string key="className">NSWindow</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSDrawer.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSWindow</string>
+					<string key="superclassName">NSResponder</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSWindow.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSWindow</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">AppKit.framework/Headers/NSWindowScripting.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
 					<string key="className">PDFView</string>
 					<string key="superclassName">NSView</string>
 					<object class="NSMutableDictionary" key="actions">
@@ -5357,6 +5726,29 @@
 					<reference key="sourceIdentifier" ref="196789552"/>
 				</object>
 				<object class="IBPartialClassDescription">
+					<string key="className">QCView</string>
+					<string key="superclassName">NSView</string>
+					<object class="NSMutableDictionary" key="actions">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>play:</string>
+							<string>start:</string>
+							<string>stop:</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+						</object>
+					</object>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">QuartzComposer.framework/Headers/QCView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
 					<string key="className">QTMovieView</string>
 					<string key="superclassName">NSView</string>
 					<object class="NSMutableDictionary" key="actions">
diff -r aa190f1573ff -r 2be2cb5ee1fa Resources/MainMenu.nib/keyedobjects.nib
Binary file Resources/MainMenu.nib/keyedobjects.nib has changed
diff -r aa190f1573ff -r 2be2cb5ee1fa Resources/Safari.scpt
Binary file Resources/Safari.scpt has changed
diff -r aa190f1573ff -r 2be2cb5ee1fa Resources/Scripts/System Statistics.AdiumScripts/AdiumBuild.scpt
Binary file Resources/Scripts/System Statistics.AdiumScripts/AdiumBuild.scpt has changed
diff -r aa190f1573ff -r 2be2cb5ee1fa Source/AIChatController.m
--- a/Source/AIChatController.m	Sat Aug 21 18:40:48 2010 -0400
+++ b/Source/AIChatController.m	Sun Aug 29 20:07:28 2010 -0400
@@ -544,6 +544,11 @@
 	return shouldRemove;
 }
 
+- (void)restoreChat:(AIChat *)inChat
+{
+	[openChats addObject:inChat];
+}
+
 /*!
  * @brief Called by an account to notifiy the chat controller that it left a chat
  *
diff -r aa190f1573ff -r 2be2cb5ee1fa Source/AIInterfaceController.h
--- a/Source/AIInterfaceController.h	Sat Aug 21 18:40:48 2010 -0400
+++ b/Source/AIInterfaceController.h	Sun Aug 29 20:07:28 2010 -0400
@@ -36,6 +36,8 @@
 	IBOutlet    NSMenuItem      *menuItem_customizeToolbar;
 
 	IBOutlet	NSMenuItem		*menuItem_print;
+	
+	IBOutlet NSMenuItem			*menuItem_reopenTab;
 
     NSMutableArray				*contactListViewArray;
     NSMutableArray				*messageViewArray;		
@@ -80,6 +82,8 @@
 
 	IBOutlet NSView				*fontPanelAccessoryView;
 	IBOutlet NSButton			*button_fontPanelSetAsDefault;
+	
+	NSMutableArray				*recentlyClosedChats;
 }
 
 - (IBAction)toggleContactList:(id)sender;
@@ -104,4 +108,6 @@
 
 - (IBAction)showPreferenceWindow:(id)sender;
 
+- (IBAction)reopenChat:(id)sender;
+
 @end
diff -r aa190f1573ff -r 2be2cb5ee1fa Source/AIInterfaceController.m
--- a/Source/AIInterfaceController.m	Sat Aug 21 18:40:48 2010 -0400
+++ b/Source/AIInterfaceController.m	Sun Aug 29 20:07:28 2010 -0400
@@ -138,6 +138,8 @@
 		
 		windowMenuArray = nil;
 		
+		recentlyClosedChats = [[NSMutableArray alloc] init];
+		
 #ifdef LOG_RESPONDER_CHAIN
 		[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(reportResponderChain:) userInfo:nil repeats:YES];
 #endif
@@ -274,6 +276,8 @@
 	[[NSNotificationCenter defaultCenter] removeObserver:self];
 	[adium.preferenceController unregisterPreferenceObserver:self];
 	
+	[recentlyClosedChats release]; recentlyClosedChats = nil;
+	
     [super dealloc];
 }
 
@@ -663,6 +667,31 @@
 {
 	if (inChat) {
 		if ([adium.chatController closeChat:inChat]) {
+			
+			NSMutableDictionary *newRecentlyClosedChat = [NSMutableDictionary dictionary];
+			
+			[newRecentlyClosedChat setObject:inChat.account.internalObjectID forKey:@"AccountID"];
+			
+			if (inChat.isGroupChat) {
+				// -chatCreationDictionary may be nil, so put it last.
+				[newRecentlyClosedChat addEntriesFromDictionary:[NSDictionary dictionaryWithObjectsAndKeys:
+																 [NSNumber numberWithBool:YES], @"IsGroupChat",
+																 inChat.name, @"Name",
+																 [inChat chatCreationDictionary], @"ChatCreationInfo",nil]];
+			} else {
+				[newRecentlyClosedChat addEntriesFromDictionary:[NSDictionary dictionaryWithObjectsAndKeys:
+																 inChat.listObject.UID, @"UID",
+																 inChat.account.service.serviceID, @"serviceID",
+																 inChat.account.internalObjectID, @"AccountID",nil]];
+			}
+			
+			[recentlyClosedChats insertObject:newRecentlyClosedChat atIndex:0];
+			
+			// this sounds like a sensible limit: no-one will remember what chat they had in the closed tab beyond these
+			while (recentlyClosedChats.count > 16) {
+				[recentlyClosedChats removeLastObject];
+			}
+			
 			[interfacePlugin closeChat:inChat];
 		}
 	}
@@ -783,6 +812,50 @@
 	[_cachedOpenChats release]; _cachedOpenChats = nil;
 }
 
+- (IBAction)reopenChat:(id)sender
+{
+	if (recentlyClosedChats.count == 0) {
+		AILogWithSignature(@"Can't open recently closed tab: no recently closed tabs!");
+		return;
+	}
+	
+	NSDictionary *chatDict = [[[recentlyClosedChats objectAtIndex:0] retain] autorelease];
+	[recentlyClosedChats removeObjectAtIndex:0];
+	
+	AIChat			*chat = nil;
+	AIService		*service = [adium.accountController firstServiceWithServiceID:[chatDict objectForKey:@"serviceID"]];
+	AIAccount		*account = [adium.accountController accountWithInternalObjectID:[chatDict objectForKey:@"AccountID"]];
+	
+	if ([[chatDict objectForKey:@"IsGroupChat"] boolValue]) {
+		chat = [adium.chatController chatWithName:[chatDict objectForKey:@"Name"]
+									   identifier:nil
+										onAccount:account
+								 chatCreationInfo:[chatDict objectForKey:@"ChatCreationInfo"]];
+	} else {
+		AIListContact *contact = [adium.contactController contactWithService:service
+																	 account:account
+																		 UID:[chatDict objectForKey:@"UID"]];
+		
+		if (contact) chat = [adium.chatController chatWithContact:contact];
+	}
+	
+	if (!chat) {
+		NSRunAlertPanel(AILocalizedString(@"Restoring chat failed", nil),
+						AILocalizedString(@"Restoring the last closed tab failed. Perhaps the account not exist anymore?", nil),
+						AILocalizedString(@"OK", nil),
+						nil,
+						nil);
+		return;
+	}
+	
+	// Tag the chat as restored.
+	[chat setValue:[NSNumber numberWithBool:YES]
+	   forProperty:@"Restored Chat"
+			notify:NotifyNow];
+	
+	[self openChat:chat inContainerWithID:nil atIndex:-1];
+	[self setActiveChat:chat];
+}
 
 
 //Interface plugin callbacks -------------------------------------------------------------------------------------------
@@ -1931,7 +2004,9 @@
 									  AILocalizedString(@"Show Fonts",nil))];
 		return YES;
 	} else if (menuItem == menuItem_toggleUserlist || menuItem == menuItem_toggleUserlistSide) {
-			return self.activeChat.isGroupChat;
+		return self.activeChat.isGroupChat;
+	} else if (menuItem == menuItem_reopenTab) {
+		return recentlyClosedChats.count > 0;
 	} else {
 		return YES;
 	}
diff -r aa190f1573ff -r 2be2cb5ee1fa Source/ESSafariLinkToolbarItemPlugin.m
--- a/Source/ESSafariLinkToolbarItemPlugin.m	Sat Aug 21 18:40:48 2010 -0400
+++ b/Source/ESSafariLinkToolbarItemPlugin.m	Sun Aug 29 20:07:28 2010 -0400
@@ -57,7 +57,7 @@
 		defaultBrowserName = [[NSFileManager defaultManager] displayNameAtPath:defaultBrowserPath];
 
 		//Is the default browser supported?
-		NSEnumerator *enumerator = [[NSArray arrayWithObjects:@"Safari", @"Firefox", @"OmniWeb", @"Camino", @"Shiira", @"NetNewsWire", nil] objectEnumerator];
+		NSEnumerator *enumerator = [[NSArray arrayWithObjects:@"Safari", @"Firefox", @"OmniWeb", @"Camino", @"Shiira", @"NetNewsWire", @"Google Chrome", nil] objectEnumerator];
 		NSString	 *aSupportedBrowser;
 
 		while ((aSupportedBrowser = [enumerator nextObject])) {




More information about the commits mailing list