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
1.1 --- a/Frameworks/Adium Framework/Source/AIChatControllerProtocol.h Sat Aug 21 18:40:48 2010 -0400
1.2 +++ b/Frameworks/Adium Framework/Source/AIChatControllerProtocol.h Sat Aug 28 22:01:12 2010 +0200
1.3 @@ -34,6 +34,7 @@
1.4
1.5 - (BOOL)closeChat:(AIChat *)inChat;
1.6 - (void)accountDidCloseChat:(AIChat *)inChat;
1.7 +- (void)restoreChat:(AIChat *)inChat;
1.8
1.9 @property (nonatomic, readonly) NSSet *openChats;
1.10 @property (nonatomic, readonly) AIChat *mostRecentUnviewedChat;
2.1 --- a/Resources/MainMenu.nib/designable.nib Sat Aug 21 18:40:48 2010 -0400
2.2 +++ b/Resources/MainMenu.nib/designable.nib Sat Aug 28 22:01:12 2010 +0200
2.3 @@ -2,17 +2,17 @@
2.4 <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
2.5 <data>
2.6 <int key="IBDocument.SystemTarget">1050</int>
2.7 - <string key="IBDocument.SystemVersion">10D573</string>
2.8 + <string key="IBDocument.SystemVersion">10F569</string>
2.9 <string key="IBDocument.InterfaceBuilderVersion">762</string>
2.10 <string key="IBDocument.AppKitVersion">1038.29</string>
2.11 - <string key="IBDocument.HIToolboxVersion">460.00</string>
2.12 + <string key="IBDocument.HIToolboxVersion">461.00</string>
2.13 <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
2.14 <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
2.15 <string key="NS.object.0">762</string>
2.16 </object>
2.17 <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
2.18 <bool key="EncodedWithXMLCoder">YES</bool>
2.19 - <integer value="6600"/>
2.20 + <integer value="6614"/>
2.21 </object>
2.22 <object class="NSArray" key="IBDocument.PluginDependencies">
2.23 <bool key="EncodedWithXMLCoder">YES</bool>
2.24 @@ -262,6 +262,16 @@
2.25 <reference key="NSOnImage" ref="145266427"/>
2.26 <reference key="NSMixedImage" ref="551713053"/>
2.27 </object>
2.28 + <object class="NSMenuItem" id="600191255">
2.29 + <reference key="NSMenu" ref="580936113"/>
2.30 + <bool key="NSIsDisabled">YES</bool>
2.31 + <string key="NSTitle">Reopen Closed Tab</string>
2.32 + <string key="NSKeyEquiv">T</string>
2.33 + <int key="NSKeyEquivModMask">1048576</int>
2.34 + <int key="NSMnemonicLoc">2147483647</int>
2.35 + <reference key="NSOnImage" ref="145266427"/>
2.36 + <reference key="NSMixedImage" ref="551713053"/>
2.37 + </object>
2.38 <object class="NSMenuItem" id="863669792">
2.39 <reference key="NSMenu" ref="580936113"/>
2.40 <string key="NSTitle">Close Window</string>
2.41 @@ -2614,6 +2624,22 @@
2.42 </object>
2.43 <int key="connectionID">7374</int>
2.44 </object>
2.45 + <object class="IBConnectionRecord">
2.46 + <object class="IBActionConnection" key="connection">
2.47 + <string key="label">reopenChat:</string>
2.48 + <reference key="source" ref="276456795"/>
2.49 + <reference key="destination" ref="600191255"/>
2.50 + </object>
2.51 + <int key="connectionID">7381</int>
2.52 + </object>
2.53 + <object class="IBConnectionRecord">
2.54 + <object class="IBOutletConnection" key="connection">
2.55 + <string key="label">menuItem_reopenTab</string>
2.56 + <reference key="source" ref="276456795"/>
2.57 + <reference key="destination" ref="600191255"/>
2.58 + </object>
2.59 + <int key="connectionID">7382</int>
2.60 + </object>
2.61 </object>
2.62 <object class="IBMutableOrderedSet" key="objectRecords">
2.63 <object class="NSArray" key="orderedObjects">
2.64 @@ -3240,6 +3266,7 @@
2.65 <reference ref="863669792"/>
2.66 <reference ref="550369297"/>
2.67 <reference ref="970744887"/>
2.68 + <reference ref="600191255"/>
2.69 </object>
2.70 <reference key="parent" ref="958311131"/>
2.71 </object>
2.72 @@ -3392,243 +3419,464 @@
2.73 <reference key="object" ref="715555530"/>
2.74 <reference key="parent" ref="814345242"/>
2.75 </object>
2.76 + <object class="IBObjectRecord">
2.77 + <int key="objectID">7380</int>
2.78 + <reference key="object" ref="600191255"/>
2.79 + <reference key="parent" ref="580936113"/>
2.80 + </object>
2.81 </object>
2.82 </object>
2.83 <object class="NSMutableDictionary" key="flattenedProperties">
2.84 <bool key="EncodedWithXMLCoder">YES</bool>
2.85 <object class="NSArray" key="dict.sortedKeys">
2.86 <bool key="EncodedWithXMLCoder">YES</bool>
2.87 + <string>-3.IBPluginDependency</string>
2.88 <string>-3.ImportedFromIB2</string>
2.89 <string>2512.ImportedFromIB2</string>
2.90 <string>4001.ImportedFromIB2</string>
2.91 + <string>6453.IBPluginDependency</string>
2.92 <string>6453.ImportedFromIB2</string>
2.93 + <string>6455.IBPluginDependency</string>
2.94 <string>6455.ImportedFromIB2</string>
2.95 + <string>6462.IBPluginDependency</string>
2.96 <string>6462.ImportedFromIB2</string>
2.97 + <string>6473.IBPluginDependency</string>
2.98 <string>6473.ImportedFromIB2</string>
2.99 + <string>6474.IBPluginDependency</string>
2.100 <string>6474.ImportedFromIB2</string>
2.101 + <string>6475.IBPluginDependency</string>
2.102 <string>6475.ImportedFromIB2</string>
2.103 + <string>6480.IBPluginDependency</string>
2.104 <string>6480.ImportedFromIB2</string>
2.105 + <string>6481.IBPluginDependency</string>
2.106 <string>6481.ImportedFromIB2</string>
2.107 + <string>6482.IBPluginDependency</string>
2.108 <string>6482.ImportedFromIB2</string>
2.109 + <string>6483.IBPluginDependency</string>
2.110 <string>6483.ImportedFromIB2</string>
2.111 + <string>6486.IBPluginDependency</string>
2.112 <string>6486.ImportedFromIB2</string>
2.113 + <string>6491.IBPluginDependency</string>
2.114 <string>6491.ImportedFromIB2</string>
2.115 + <string>6493.IBPluginDependency</string>
2.116 <string>6493.ImportedFromIB2</string>
2.117 + <string>6494.IBPluginDependency</string>
2.118 <string>6494.ImportedFromIB2</string>
2.119 + <string>6501.IBPluginDependency</string>
2.120 <string>6501.ImportedFromIB2</string>
2.121 + <string>6507.IBPluginDependency</string>
2.122 <string>6507.ImportedFromIB2</string>
2.123 + <string>6508.IBPluginDependency</string>
2.124 <string>6508.ImportedFromIB2</string>
2.125 + <string>6509.IBPluginDependency</string>
2.126 <string>6509.ImportedFromIB2</string>
2.127 + <string>6511.IBPluginDependency</string>
2.128 <string>6511.ImportedFromIB2</string>
2.129 + <string>6516.IBPluginDependency</string>
2.130 <string>6516.ImportedFromIB2</string>
2.131 <string>6521.IBEditorWindowLastContentRect</string>
2.132 + <string>6521.IBPluginDependency</string>
2.133 <string>6521.ImportedFromIB2</string>
2.134 + <string>6528.IBPluginDependency</string>
2.135 <string>6528.ImportedFromIB2</string>
2.136 + <string>6532.IBPluginDependency</string>
2.137 <string>6532.ImportedFromIB2</string>
2.138 + <string>6533.IBPluginDependency</string>
2.139 <string>6533.ImportedFromIB2</string>
2.140 + <string>6534.IBPluginDependency</string>
2.141 <string>6534.ImportedFromIB2</string>
2.142 + <string>6538.IBPluginDependency</string>
2.143 <string>6538.ImportedFromIB2</string>
2.144 + <string>6539.IBPluginDependency</string>
2.145 <string>6539.ImportedFromIB2</string>
2.146 + <string>6540.IBPluginDependency</string>
2.147 <string>6540.ImportedFromIB2</string>
2.148 + <string>6542.IBPluginDependency</string>
2.149 <string>6542.ImportedFromIB2</string>
2.150 + <string>6546.IBPluginDependency</string>
2.151 <string>6546.ImportedFromIB2</string>
2.152 + <string>6549.IBPluginDependency</string>
2.153 <string>6549.ImportedFromIB2</string>
2.154 + <string>6550.IBPluginDependency</string>
2.155 <string>6550.ImportedFromIB2</string>
2.156 + <string>6555.IBPluginDependency</string>
2.157 <string>6555.ImportedFromIB2</string>
2.158 + <string>6556.IBPluginDependency</string>
2.159 <string>6556.ImportedFromIB2</string>
2.160 + <string>6565.IBPluginDependency</string>
2.161 <string>6565.ImportedFromIB2</string>
2.162 + <string>6566.IBPluginDependency</string>
2.163 <string>6566.ImportedFromIB2</string>
2.164 + <string>6567.IBPluginDependency</string>
2.165 <string>6567.ImportedFromIB2</string>
2.166 + <string>6572.IBPluginDependency</string>
2.167 <string>6572.ImportedFromIB2</string>
2.168 + <string>6580.IBPluginDependency</string>
2.169 <string>6580.ImportedFromIB2</string>
2.170 + <string>6581.IBPluginDependency</string>
2.171 <string>6581.ImportedFromIB2</string>
2.172 + <string>6584.IBPluginDependency</string>
2.173 <string>6584.ImportedFromIB2</string>
2.174 + <string>6587.IBPluginDependency</string>
2.175 <string>6587.ImportedFromIB2</string>
2.176 + <string>6594.IBPluginDependency</string>
2.177 <string>6594.ImportedFromIB2</string>
2.178 + <string>6595.IBPluginDependency</string>
2.179 <string>6595.ImportedFromIB2</string>
2.180 + <string>6597.IBPluginDependency</string>
2.181 <string>6597.ImportedFromIB2</string>
2.182 + <string>6598.IBPluginDependency</string>
2.183 <string>6598.ImportedFromIB2</string>
2.184 <string>6600.IBEditorWindowLastContentRect</string>
2.185 + <string>6600.IBPluginDependency</string>
2.186 <string>6600.ImportedFromIB2</string>
2.187 + <string>6609.IBPluginDependency</string>
2.188 <string>6609.ImportedFromIB2</string>
2.189 + <string>6611.IBPluginDependency</string>
2.190 <string>6611.ImportedFromIB2</string>
2.191 + <string>6612.IBPluginDependency</string>
2.192 <string>6612.ImportedFromIB2</string>
2.193 + <string>6614.IBEditorWindowLastContentRect</string>
2.194 + <string>6614.IBPluginDependency</string>
2.195 <string>6614.ImportedFromIB2</string>
2.196 + <string>6615.IBPluginDependency</string>
2.197 <string>6615.ImportedFromIB2</string>
2.198 + <string>6616.IBPluginDependency</string>
2.199 <string>6616.ImportedFromIB2</string>
2.200 + <string>6618.IBPluginDependency</string>
2.201 <string>6618.ImportedFromIB2</string>
2.202 + <string>6620.IBPluginDependency</string>
2.203 <string>6620.ImportedFromIB2</string>
2.204 + <string>6623.IBPluginDependency</string>
2.205 <string>6623.ImportedFromIB2</string>
2.206 <string>6655.ImportedFromIB2</string>
2.207 <string>6706.ImportedFromIB2</string>
2.208 + <string>6932.IBPluginDependency</string>
2.209 <string>6932.ImportedFromIB2</string>
2.210 + <string>6933.IBPluginDependency</string>
2.211 <string>6933.ImportedFromIB2</string>
2.212 + <string>6944.IBPluginDependency</string>
2.213 <string>6944.ImportedFromIB2</string>
2.214 + <string>6946.IBPluginDependency</string>
2.215 <string>6946.ImportedFromIB2</string>
2.216 + <string>6952.IBPluginDependency</string>
2.217 <string>6952.ImportedFromIB2</string>
2.218 + <string>6987.IBPluginDependency</string>
2.219 <string>6987.ImportedFromIB2</string>
2.220 + <string>6988.IBPluginDependency</string>
2.221 <string>6988.ImportedFromIB2</string>
2.222 + <string>6989.IBPluginDependency</string>
2.223 <string>6989.ImportedFromIB2</string>
2.224 + <string>6990.IBPluginDependency</string>
2.225 <string>6990.ImportedFromIB2</string>
2.226 + <string>6991.IBPluginDependency</string>
2.227 <string>6991.ImportedFromIB2</string>
2.228 + <string>6992.IBPluginDependency</string>
2.229 <string>6992.ImportedFromIB2</string>
2.230 + <string>6993.IBPluginDependency</string>
2.231 <string>6993.ImportedFromIB2</string>
2.232 + <string>7010.IBPluginDependency</string>
2.233 <string>7010.ImportedFromIB2</string>
2.234 + <string>7011.IBPluginDependency</string>
2.235 <string>7011.ImportedFromIB2</string>
2.236 + <string>7016.IBPluginDependency</string>
2.237 <string>7016.ImportedFromIB2</string>
2.238 + <string>7017.IBPluginDependency</string>
2.239 <string>7017.ImportedFromIB2</string>
2.240 + <string>7032.IBPluginDependency</string>
2.241 <string>7032.ImportedFromIB2</string>
2.242 + <string>7033.IBPluginDependency</string>
2.243 <string>7033.ImportedFromIB2</string>
2.244 + <string>7034.IBPluginDependency</string>
2.245 <string>7034.ImportedFromIB2</string>
2.246 + <string>7037.IBPluginDependency</string>
2.247 <string>7037.ImportedFromIB2</string>
2.248 + <string>7039.IBPluginDependency</string>
2.249 <string>7039.ImportedFromIB2</string>
2.250 + <string>7054.IBPluginDependency</string>
2.251 <string>7054.ImportedFromIB2</string>
2.252 + <string>7057.IBPluginDependency</string>
2.253 <string>7057.ImportedFromIB2</string>
2.254 + <string>7058.IBPluginDependency</string>
2.255 <string>7058.ImportedFromIB2</string>
2.256 + <string>7102.IBPluginDependency</string>
2.257 <string>7102.ImportedFromIB2</string>
2.258 + <string>7104.IBPluginDependency</string>
2.259 <string>7104.ImportedFromIB2</string>
2.260 + <string>7214.IBPluginDependency</string>
2.261 <string>7214.ImportedFromIB2</string>
2.262 + <string>7224.IBPluginDependency</string>
2.263 <string>7224.ImportedFromIB2</string>
2.264 + <string>7225.IBPluginDependency</string>
2.265 <string>7225.ImportedFromIB2</string>
2.266 + <string>7227.IBPluginDependency</string>
2.267 <string>7227.ImportedFromIB2</string>
2.268 + <string>7228.IBPluginDependency</string>
2.269 <string>7228.ImportedFromIB2</string>
2.270 + <string>7229.IBPluginDependency</string>
2.271 <string>7229.ImportedFromIB2</string>
2.272 + <string>7230.IBPluginDependency</string>
2.273 <string>7230.ImportedFromIB2</string>
2.274 + <string>7231.IBPluginDependency</string>
2.275 <string>7231.ImportedFromIB2</string>
2.276 + <string>7240.IBPluginDependency</string>
2.277 <string>7240.ImportedFromIB2</string>
2.278 <string>7246.ImportedFromIB2</string>
2.279 + <string>7251.IBPluginDependency</string>
2.280 <string>7251.ImportedFromIB2</string>
2.281 + <string>7254.IBPluginDependency</string>
2.282 <string>7254.ImportedFromIB2</string>
2.283 + <string>7255.IBPluginDependency</string>
2.284 <string>7255.ImportedFromIB2</string>
2.285 + <string>7256.IBPluginDependency</string>
2.286 <string>7256.ImportedFromIB2</string>
2.287 + <string>7268.IBPluginDependency</string>
2.288 <string>7268.ImportedFromIB2</string>
2.289 + <string>7269.IBPluginDependency</string>
2.290 <string>7269.ImportedFromIB2</string>
2.291 + <string>7272.IBPluginDependency</string>
2.292 <string>7272.ImportedFromIB2</string>
2.293 + <string>7273.IBPluginDependency</string>
2.294 <string>7273.ImportedFromIB2</string>
2.295 + <string>7274.IBPluginDependency</string>
2.296 <string>7274.ImportedFromIB2</string>
2.297 + <string>7291.IBPluginDependency</string>
2.298 <string>7291.ImportedFromIB2</string>
2.299 + <string>7337.IBPluginDependency</string>
2.300 <string>7337.ImportedFromIB2</string>
2.301 + <string>7341.IBPluginDependency</string>
2.302 <string>7341.ImportedFromIB2</string>
2.303 + <string>7348.IBPluginDependency</string>
2.304 <string>7348.ImportedFromIB2</string>
2.305 + <string>7366.IBPluginDependency</string>
2.306 <string>7366.ImportedFromIB2</string>
2.307 <string>7373.IBPluginDependency</string>
2.308 + <string>7380.IBPluginDependency</string>
2.309 </object>
2.310 <object class="NSMutableArray" key="dict.values">
2.311 <bool key="EncodedWithXMLCoder">YES</bool>
2.312 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.313 <boolean value="YES"/>
2.314 <boolean value="YES"/>
2.315 <boolean value="YES"/>
2.316 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.317 <boolean value="YES"/>
2.318 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.319 <boolean value="YES"/>
2.320 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.321 <boolean value="YES"/>
2.322 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.323 <boolean value="YES"/>
2.324 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.325 <boolean value="YES"/>
2.326 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.327 <boolean value="YES"/>
2.328 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.329 <boolean value="YES"/>
2.330 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.331 <boolean value="YES"/>
2.332 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.333 <boolean value="YES"/>
2.334 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.335 <boolean value="YES"/>
2.336 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.337 <boolean value="YES"/>
2.338 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.339 <boolean value="YES"/>
2.340 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.341 <boolean value="YES"/>
2.342 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.343 <boolean value="YES"/>
2.344 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.345 <boolean value="YES"/>
2.346 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.347 <boolean value="YES"/>
2.348 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.349 <boolean value="YES"/>
2.350 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.351 <boolean value="YES"/>
2.352 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.353 <boolean value="YES"/>
2.354 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.355 <boolean value="YES"/>
2.356 <string>{{642, 832}, {202, 143}}</string>
2.357 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.358 <boolean value="YES"/>
2.359 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.360 <boolean value="YES"/>
2.361 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.362 <boolean value="YES"/>
2.363 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.364 <boolean value="YES"/>
2.365 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.366 <boolean value="YES"/>
2.367 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.368 <boolean value="YES"/>
2.369 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.370 <boolean value="YES"/>
2.371 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.372 <boolean value="YES"/>
2.373 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.374 <boolean value="YES"/>
2.375 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.376 <boolean value="YES"/>
2.377 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.378 <boolean value="YES"/>
2.379 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.380 <boolean value="YES"/>
2.381 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.382 <boolean value="YES"/>
2.383 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.384 <boolean value="YES"/>
2.385 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.386 <boolean value="YES"/>
2.387 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.388 <boolean value="YES"/>
2.389 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.390 <boolean value="YES"/>
2.391 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.392 <boolean value="YES"/>
2.393 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.394 <boolean value="YES"/>
2.395 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.396 <boolean value="YES"/>
2.397 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.398 <boolean value="YES"/>
2.399 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.400 <boolean value="YES"/>
2.401 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.402 <boolean value="YES"/>
2.403 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.404 <boolean value="YES"/>
2.405 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.406 <boolean value="YES"/>
2.407 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.408 <boolean value="YES"/>
2.409 <string>{{93, 975}, {610, 20}}</string>
2.410 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.411 <boolean value="YES"/>
2.412 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.413 <boolean value="YES"/>
2.414 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.415 <boolean value="YES"/>
2.416 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.417 <boolean value="YES"/>
2.418 + <string>{{170, 812}, {222, 163}}</string>
2.419 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.420 <boolean value="YES"/>
2.421 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.422 <boolean value="YES"/>
2.423 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.424 <boolean value="YES"/>
2.425 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.426 <boolean value="YES"/>
2.427 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.428 <boolean value="YES"/>
2.429 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.430 <boolean value="YES"/>
2.431 <boolean value="YES"/>
2.432 <boolean value="YES"/>
2.433 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.434 <boolean value="YES"/>
2.435 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.436 <boolean value="YES"/>
2.437 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.438 <boolean value="YES"/>
2.439 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.440 <boolean value="YES"/>
2.441 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.442 <boolean value="YES"/>
2.443 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.444 <boolean value="YES"/>
2.445 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.446 <boolean value="YES"/>
2.447 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.448 <boolean value="YES"/>
2.449 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.450 <boolean value="YES"/>
2.451 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.452 <boolean value="YES"/>
2.453 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.454 <boolean value="YES"/>
2.455 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.456 <boolean value="YES"/>
2.457 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.458 <boolean value="YES"/>
2.459 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.460 <boolean value="YES"/>
2.461 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.462 <boolean value="YES"/>
2.463 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.464 <boolean value="YES"/>
2.465 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.466 <boolean value="YES"/>
2.467 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.468 <boolean value="YES"/>
2.469 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.470 <boolean value="YES"/>
2.471 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.472 <boolean value="YES"/>
2.473 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.474 <boolean value="YES"/>
2.475 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.476 <boolean value="YES"/>
2.477 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.478 <boolean value="YES"/>
2.479 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.480 <boolean value="YES"/>
2.481 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.482 <boolean value="YES"/>
2.483 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.484 <boolean value="YES"/>
2.485 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.486 <boolean value="YES"/>
2.487 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.488 <boolean value="YES"/>
2.489 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.490 <boolean value="YES"/>
2.491 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.492 <boolean value="YES"/>
2.493 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.494 <boolean value="YES"/>
2.495 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.496 <boolean value="YES"/>
2.497 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.498 <boolean value="YES"/>
2.499 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.500 <boolean value="YES"/>
2.501 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.502 <boolean value="YES"/>
2.503 <boolean value="YES"/>
2.504 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.505 <boolean value="YES"/>
2.506 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.507 <boolean value="YES"/>
2.508 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.509 <boolean value="YES"/>
2.510 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.511 <boolean value="YES"/>
2.512 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.513 <boolean value="YES"/>
2.514 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.515 <boolean value="YES"/>
2.516 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.517 <boolean value="YES"/>
2.518 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.519 <boolean value="YES"/>
2.520 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.521 <boolean value="YES"/>
2.522 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.523 <boolean value="YES"/>
2.524 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.525 <boolean value="YES"/>
2.526 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.527 <boolean value="YES"/>
2.528 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.529 <boolean value="YES"/>
2.530 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.531 <boolean value="YES"/>
2.532 <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.533 + <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
2.534 </object>
2.535 </object>
2.536 <object class="NSMutableDictionary" key="unlocalizedProperties">
2.537 @@ -3647,7 +3895,7 @@
2.538 </object>
2.539 </object>
2.540 <nil key="sourceID"/>
2.541 - <int key="maxID">7374</int>
2.542 + <int key="maxID">7382</int>
2.543 </object>
2.544 <object class="IBClassDescriber" key="IBDocument.Classes">
2.545 <object class="NSMutableArray" key="referencedPartialClassDescriptions">
2.546 @@ -3753,6 +4001,7 @@
2.547 <string>paste:</string>
2.548 <string>pasteAndMatchStyle:</string>
2.549 <string>pasteWithImagesAndColors:</string>
2.550 + <string>reopenChat:</string>
2.551 <string>runToolbarCustomizationPalette:</string>
2.552 <string>setFontPanelSettingsAsDefaultFont:</string>
2.553 <string>showContactListAndBringToFront:</string>
2.554 @@ -3779,6 +4028,7 @@
2.555 <string>id</string>
2.556 <string>id</string>
2.557 <string>id</string>
2.558 + <string>id</string>
2.559 </object>
2.560 </object>
2.561 <object class="NSMutableDictionary" key="outlets">
2.562 @@ -3799,6 +4049,7 @@
2.563 <string>menuItem_pasteAndMatchStyle</string>
2.564 <string>menuItem_pasteWithImagesAndColors</string>
2.565 <string>menuItem_print</string>
2.566 + <string>menuItem_reopenTab</string>
2.567 <string>menuItem_showFonts</string>
2.568 <string>menuItem_showToolbar</string>
2.569 </object>
2.570 @@ -3820,6 +4071,7 @@
2.571 <string>NSMenuItem</string>
2.572 <string>NSMenuItem</string>
2.573 <string>NSMenuItem</string>
2.574 + <string>NSMenuItem</string>
2.575 </object>
2.576 </object>
2.577 <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.578 @@ -4115,13 +4367,11 @@
2.579 <bool key="EncodedWithXMLCoder">YES</bool>
2.580 <string>runToolbarConfigurationPalette:</string>
2.581 <string>toggleBaseWritingDirection:</string>
2.582 - <string>toggleGrammarChecking:</string>
2.583 </object>
2.584 <object class="NSMutableArray" key="dict.values">
2.585 <bool key="EncodedWithXMLCoder">YES</bool>
2.586 <string>id</string>
2.587 <string>id</string>
2.588 - <string>id</string>
2.589 </object>
2.590 </object>
2.591 <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.592 @@ -4580,6 +4830,37 @@
2.593 </object>
2.594 </object>
2.595 <object class="IBPartialClassDescription">
2.596 + <string key="className">NSTextView</string>
2.597 + <object class="NSMutableDictionary" key="actions">
2.598 + <bool key="EncodedWithXMLCoder">YES</bool>
2.599 + <object class="NSArray" key="dict.sortedKeys">
2.600 + <bool key="EncodedWithXMLCoder">YES</bool>
2.601 + <string>toggleAutomaticDashSubstitution:</string>
2.602 + <string>toggleAutomaticDataDetection:</string>
2.603 + <string>toggleAutomaticSpellingCorrection:</string>
2.604 + <string>toggleAutomaticTextReplacement:</string>
2.605 + </object>
2.606 + <object class="NSMutableArray" key="dict.values">
2.607 + <bool key="EncodedWithXMLCoder">YES</bool>
2.608 + <string>id</string>
2.609 + <string>id</string>
2.610 + <string>id</string>
2.611 + <string>id</string>
2.612 + </object>
2.613 + </object>
2.614 + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="79193227">
2.615 + <string key="majorKey">IBProjectSource</string>
2.616 + <string key="minorKey">Frameworks/AIUtilities Framework/Source/AILeopardCompatibility.h</string>
2.617 + </object>
2.618 + </object>
2.619 + <object class="IBPartialClassDescription">
2.620 + <string key="className">NSTextView</string>
2.621 + <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.622 + <string key="majorKey">IBProjectSource</string>
2.623 + <string key="minorKey">Frameworks/AIUtilities Framework/Source/AITextViewAdditions.h</string>
2.624 + </object>
2.625 + </object>
2.626 + <object class="IBPartialClassDescription">
2.627 <string key="className">NSView</string>
2.628 <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.629 <string key="majorKey">IBProjectSource</string>
2.630 @@ -4595,6 +4876,24 @@
2.631 </object>
2.632 </object>
2.633 <object class="IBPartialClassDescription">
2.634 + <string key="className">NSWindow</string>
2.635 + <reference key="sourceIdentifier" ref="79193227"/>
2.636 + </object>
2.637 + <object class="IBPartialClassDescription">
2.638 + <string key="className">NSWindow</string>
2.639 + <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.640 + <string key="majorKey">IBProjectSource</string>
2.641 + <string key="minorKey">Frameworks/AIUtilities Framework/Source/AIWindowAdditions.h</string>
2.642 + </object>
2.643 + </object>
2.644 + <object class="IBPartialClassDescription">
2.645 + <string key="className">NSWindow</string>
2.646 + <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.647 + <string key="majorKey">IBProjectSource</string>
2.648 + <string key="minorKey">Source/NSWindowScriptingAdditions.h</string>
2.649 + </object>
2.650 + </object>
2.651 + <object class="IBPartialClassDescription">
2.652 <string key="className">RBSplitSubview</string>
2.653 <string key="superclassName">NSView</string>
2.654 <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.655 @@ -4699,6 +4998,14 @@
2.656 </object>
2.657 </object>
2.658 <object class="IBPartialClassDescription">
2.659 + <string key="className">NSBrowser</string>
2.660 + <string key="superclassName">NSControl</string>
2.661 + <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.662 + <string key="majorKey">IBFrameworkSource</string>
2.663 + <string key="minorKey">AppKit.framework/Headers/NSBrowser.h</string>
2.664 + </object>
2.665 + </object>
2.666 + <object class="IBPartialClassDescription">
2.667 <string key="className">NSButton</string>
2.668 <string key="superclassName">NSControl</string>
2.669 <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.670 @@ -4759,6 +5066,22 @@
2.671 </object>
2.672 </object>
2.673 <object class="IBPartialClassDescription">
2.674 + <string key="className">NSFormatter</string>
2.675 + <string key="superclassName">NSObject</string>
2.676 + <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.677 + <string key="majorKey">IBFrameworkSource</string>
2.678 + <string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string>
2.679 + </object>
2.680 + </object>
2.681 + <object class="IBPartialClassDescription">
2.682 + <string key="className">NSMatrix</string>
2.683 + <string key="superclassName">NSControl</string>
2.684 + <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.685 + <string key="majorKey">IBFrameworkSource</string>
2.686 + <string key="minorKey">AppKit.framework/Headers/NSMatrix.h</string>
2.687 + </object>
2.688 + </object>
2.689 + <object class="IBPartialClassDescription">
2.690 <string key="className">NSMenu</string>
2.691 <string key="superclassName">NSObject</string>
2.692 <object class="IBClassDescriptionSource" key="sourceIdentifier" id="197677337">
2.693 @@ -4775,6 +5098,14 @@
2.694 </object>
2.695 </object>
2.696 <object class="IBPartialClassDescription">
2.697 + <string key="className">NSMovieView</string>
2.698 + <string key="superclassName">NSView</string>
2.699 + <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.700 + <string key="majorKey">IBFrameworkSource</string>
2.701 + <string key="minorKey">AppKit.framework/Headers/NSMovieView.h</string>
2.702 + </object>
2.703 + </object>
2.704 + <object class="IBPartialClassDescription">
2.705 <string key="className">NSObject</string>
2.706 <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.707 <string key="majorKey">IBFrameworkSource</string>
2.708 @@ -5300,6 +5631,22 @@
2.709 <reference key="sourceIdentifier" ref="415592568"/>
2.710 </object>
2.711 <object class="IBPartialClassDescription">
2.712 + <string key="className">NSText</string>
2.713 + <string key="superclassName">NSView</string>
2.714 + <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.715 + <string key="majorKey">IBFrameworkSource</string>
2.716 + <string key="minorKey">AppKit.framework/Headers/NSText.h</string>
2.717 + </object>
2.718 + </object>
2.719 + <object class="IBPartialClassDescription">
2.720 + <string key="className">NSTextView</string>
2.721 + <string key="superclassName">NSText</string>
2.722 + <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.723 + <string key="majorKey">IBFrameworkSource</string>
2.724 + <string key="minorKey">AppKit.framework/Headers/NSTextView.h</string>
2.725 + </object>
2.726 + </object>
2.727 + <object class="IBPartialClassDescription">
2.728 <string key="className">NSView</string>
2.729 <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.730 <string key="majorKey">IBFrameworkSource</string>
2.731 @@ -5323,6 +5670,28 @@
2.732 <reference key="sourceIdentifier" ref="817207599"/>
2.733 </object>
2.734 <object class="IBPartialClassDescription">
2.735 + <string key="className">NSWindow</string>
2.736 + <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.737 + <string key="majorKey">IBFrameworkSource</string>
2.738 + <string key="minorKey">AppKit.framework/Headers/NSDrawer.h</string>
2.739 + </object>
2.740 + </object>
2.741 + <object class="IBPartialClassDescription">
2.742 + <string key="className">NSWindow</string>
2.743 + <string key="superclassName">NSResponder</string>
2.744 + <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.745 + <string key="majorKey">IBFrameworkSource</string>
2.746 + <string key="minorKey">AppKit.framework/Headers/NSWindow.h</string>
2.747 + </object>
2.748 + </object>
2.749 + <object class="IBPartialClassDescription">
2.750 + <string key="className">NSWindow</string>
2.751 + <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.752 + <string key="majorKey">IBFrameworkSource</string>
2.753 + <string key="minorKey">AppKit.framework/Headers/NSWindowScripting.h</string>
2.754 + </object>
2.755 + </object>
2.756 + <object class="IBPartialClassDescription">
2.757 <string key="className">PDFView</string>
2.758 <string key="superclassName">NSView</string>
2.759 <object class="NSMutableDictionary" key="actions">
2.760 @@ -5357,6 +5726,29 @@
2.761 <reference key="sourceIdentifier" ref="196789552"/>
2.762 </object>
2.763 <object class="IBPartialClassDescription">
2.764 + <string key="className">QCView</string>
2.765 + <string key="superclassName">NSView</string>
2.766 + <object class="NSMutableDictionary" key="actions">
2.767 + <bool key="EncodedWithXMLCoder">YES</bool>
2.768 + <object class="NSArray" key="dict.sortedKeys">
2.769 + <bool key="EncodedWithXMLCoder">YES</bool>
2.770 + <string>play:</string>
2.771 + <string>start:</string>
2.772 + <string>stop:</string>
2.773 + </object>
2.774 + <object class="NSMutableArray" key="dict.values">
2.775 + <bool key="EncodedWithXMLCoder">YES</bool>
2.776 + <string>id</string>
2.777 + <string>id</string>
2.778 + <string>id</string>
2.779 + </object>
2.780 + </object>
2.781 + <object class="IBClassDescriptionSource" key="sourceIdentifier">
2.782 + <string key="majorKey">IBFrameworkSource</string>
2.783 + <string key="minorKey">QuartzComposer.framework/Headers/QCView.h</string>
2.784 + </object>
2.785 + </object>
2.786 + <object class="IBPartialClassDescription">
2.787 <string key="className">QTMovieView</string>
2.788 <string key="superclassName">NSView</string>
2.789 <object class="NSMutableDictionary" key="actions">
3.1 Binary file Resources/MainMenu.nib/keyedobjects.nib has changed
4.1 --- a/Source/AIChatController.m Sat Aug 21 18:40:48 2010 -0400
4.2 +++ b/Source/AIChatController.m Sat Aug 28 22:01:12 2010 +0200
4.3 @@ -544,6 +544,11 @@
4.4 return shouldRemove;
4.5 }
4.6
4.7 +- (void)restoreChat:(AIChat *)inChat
4.8 +{
4.9 + [openChats addObject:inChat];
4.10 +}
4.11 +
4.12 /*!
4.13 * @brief Called by an account to notifiy the chat controller that it left a chat
4.14 *
5.1 --- a/Source/AIInterfaceController.h Sat Aug 21 18:40:48 2010 -0400
5.2 +++ b/Source/AIInterfaceController.h Sat Aug 28 22:01:12 2010 +0200
5.3 @@ -36,6 +36,8 @@
5.4 IBOutlet NSMenuItem *menuItem_customizeToolbar;
5.5
5.6 IBOutlet NSMenuItem *menuItem_print;
5.7 +
5.8 + IBOutlet NSMenuItem *menuItem_reopenTab;
5.9
5.10 NSMutableArray *contactListViewArray;
5.11 NSMutableArray *messageViewArray;
5.12 @@ -80,6 +82,8 @@
5.13
5.14 IBOutlet NSView *fontPanelAccessoryView;
5.15 IBOutlet NSButton *button_fontPanelSetAsDefault;
5.16 +
5.17 + NSMutableArray *recentlyClosedChats;
5.18 }
5.19
5.20 - (IBAction)toggleContactList:(id)sender;
5.21 @@ -104,4 +108,6 @@
5.22
5.23 - (IBAction)showPreferenceWindow:(id)sender;
5.24
5.25 +- (IBAction)reopenChat:(id)sender;
5.26 +
5.27 @end
6.1 --- a/Source/AIInterfaceController.m Sat Aug 21 18:40:48 2010 -0400
6.2 +++ b/Source/AIInterfaceController.m Sat Aug 28 22:01:12 2010 +0200
6.3 @@ -138,6 +138,8 @@
6.4
6.5 windowMenuArray = nil;
6.6
6.7 + recentlyClosedChats = [[NSMutableArray alloc] init];
6.8 +
6.9 #ifdef LOG_RESPONDER_CHAIN
6.10 [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(reportResponderChain:) userInfo:nil repeats:YES];
6.11 #endif
6.12 @@ -274,6 +276,8 @@
6.13 [[NSNotificationCenter defaultCenter] removeObserver:self];
6.14 [adium.preferenceController unregisterPreferenceObserver:self];
6.15
6.16 + [recentlyClosedChats release]; recentlyClosedChats = nil;
6.17 +
6.18 [super dealloc];
6.19 }
6.20
6.21 @@ -663,6 +667,31 @@
6.22 {
6.23 if (inChat) {
6.24 if ([adium.chatController closeChat:inChat]) {
6.25 +
6.26 + NSMutableDictionary *newRecentlyClosedChat = [NSMutableDictionary dictionary];
6.27 +
6.28 + [newRecentlyClosedChat setObject:inChat.account.internalObjectID forKey:@"AccountID"];
6.29 +
6.30 + if (inChat.isGroupChat) {
6.31 + // -chatCreationDictionary may be nil, so put it last.
6.32 + [newRecentlyClosedChat addEntriesFromDictionary:[NSDictionary dictionaryWithObjectsAndKeys:
6.33 + [NSNumber numberWithBool:YES], @"IsGroupChat",
6.34 + inChat.name, @"Name",
6.35 + [inChat chatCreationDictionary], @"ChatCreationInfo",nil]];
6.36 + } else {
6.37 + [newRecentlyClosedChat addEntriesFromDictionary:[NSDictionary dictionaryWithObjectsAndKeys:
6.38 + inChat.listObject.UID, @"UID",
6.39 + inChat.account.service.serviceID, @"serviceID",
6.40 + inChat.account.internalObjectID, @"AccountID",nil]];
6.41 + }
6.42 +
6.43 + [recentlyClosedChats insertObject:newRecentlyClosedChat atIndex:0];
6.44 +
6.45 + // this sounds like a sensible limit: no-one will remember what chat they had in the closed tab beyond these
6.46 + while (recentlyClosedChats.count > 16) {
6.47 + [recentlyClosedChats removeLastObject];
6.48 + }
6.49 +
6.50 [interfacePlugin closeChat:inChat];
6.51 }
6.52 }
6.53 @@ -783,6 +812,50 @@
6.54 [_cachedOpenChats release]; _cachedOpenChats = nil;
6.55 }
6.56
6.57 +- (IBAction)reopenChat:(id)sender
6.58 +{
6.59 + if (recentlyClosedChats.count == 0) {
6.60 + AILogWithSignature(@"Can't open recently closed tab: no recently closed tabs!");
6.61 + return;
6.62 + }
6.63 +
6.64 + NSDictionary *chatDict = [[[recentlyClosedChats objectAtIndex:0] retain] autorelease];
6.65 + [recentlyClosedChats removeObjectAtIndex:0];
6.66 +
6.67 + AIChat *chat = nil;
6.68 + AIService *service = [adium.accountController firstServiceWithServiceID:[chatDict objectForKey:@"serviceID"]];
6.69 + AIAccount *account = [adium.accountController accountWithInternalObjectID:[chatDict objectForKey:@"AccountID"]];
6.70 +
6.71 + if ([[chatDict objectForKey:@"IsGroupChat"] boolValue]) {
6.72 + chat = [adium.chatController chatWithName:[chatDict objectForKey:@"Name"]
6.73 + identifier:nil
6.74 + onAccount:account
6.75 + chatCreationInfo:[chatDict objectForKey:@"ChatCreationInfo"]];
6.76 + } else {
6.77 + AIListContact *contact = [adium.contactController contactWithService:service
6.78 + account:account
6.79 + UID:[chatDict objectForKey:@"UID"]];
6.80 +
6.81 + if (contact) chat = [adium.chatController chatWithContact:contact];
6.82 + }
6.83 +
6.84 + if (!chat) {
6.85 + NSRunAlertPanel(AILocalizedString(@"Restoring chat failed", nil),
6.86 + AILocalizedString(@"Restoring the last closed tab failed. Perhaps the account not exist anymore?", nil),
6.87 + AILocalizedString(@"OK", nil),
6.88 + nil,
6.89 + nil);
6.90 + return;
6.91 + }
6.92 +
6.93 + // Tag the chat as restored.
6.94 + [chat setValue:[NSNumber numberWithBool:YES]
6.95 + forProperty:@"Restored Chat"
6.96 + notify:NotifyNow];
6.97 +
6.98 + [self openChat:chat inContainerWithID:nil atIndex:-1];
6.99 + [self setActiveChat:chat];
6.100 +}
6.101
6.102
6.103 //Interface plugin callbacks -------------------------------------------------------------------------------------------
6.104 @@ -1931,7 +2004,9 @@
6.105 AILocalizedString(@"Show Fonts",nil))];
6.106 return YES;
6.107 } else if (menuItem == menuItem_toggleUserlist || menuItem == menuItem_toggleUserlistSide) {
6.108 - return self.activeChat.isGroupChat;
6.109 + return self.activeChat.isGroupChat;
6.110 + } else if (menuItem == menuItem_reopenTab) {
6.111 + return recentlyClosedChats.count > 0;
6.112 } else {
6.113 return YES;
6.114 }