]> granicus.if.org Git - transmission/commitdiff
#2436 on 10.6 let's try showing favicons in the info panel's tracker table
authorMitchell Livingston <livings124@transmissionbt.com>
Mon, 21 Sep 2009 03:44:24 +0000 (03:44 +0000)
committerMitchell Livingston <livings124@transmissionbt.com>
Mon, 21 Sep 2009 03:44:24 +0000 (03:44 +0000)
macosx/InfoWindowController.h
macosx/InfoWindowController.m
macosx/en.lproj/InfoWindow.xib

index 687a619150973aae97066dfd824c6fd43d879f78..5efa2415c490eb7a17fc77cd7ff0a4dbc2e374b2 100644 (file)
@@ -77,6 +77,9 @@
                         * fUploadLimitLabel, * fDownloadLimitLabel, * fPeersConnectLabel,
                         * fPeersConnectField;
     
+    NSCache * fTrackerIconCache;
+    NSMutableSet * fTrackerIconLoaded;
+    
     NSString * fInitialString;
     
     QLPreviewPanel * fPreviewPanel;
index a29ec967ff2d608ea93c3543bf2b9c3a6f20ffd1..43f67f510bdd293dd6fdff904b101c592d54591c 100644 (file)
@@ -192,6 +192,14 @@ typedef enum
     
     [self setWebSeedTableHidden: YES animate: NO];
     
+    if ([NSApp isOnSnowLeopardOrBetter])
+    {
+        fTrackerIconCache = [[NSCache alloc] init];
+        fTrackerIconLoaded = [[NSMutableSet alloc] init];
+    }
+    else
+        [fTrackerTable removeTableColumn: [fTrackerTable tableColumnWithIdentifier: @"Icon"]];
+    
     //set blank inspector
     [self setInfoForTorrents: [NSArray array]];
     
@@ -229,6 +237,9 @@ typedef enum
     
     [fWebSeedTableAnimation release];
     
+    [fTrackerIconCache release];
+    [fTrackerIconLoaded release];
+    
     [fPreviewPanel release];
     
     [super dealloc];
@@ -483,7 +494,7 @@ typedef enum
         
         [fTrackerAddRemoveControl setEnabled: YES forSegment: TRACKER_ADD_TAG];
         [fTrackerAddRemoveControl setEnabled: NO forSegment: TRACKER_REMOVE_TAG];
-        
+
         [fFileFilterField setEnabled: [torrent isFolder]];
     }
     
@@ -907,12 +918,66 @@ typedef enum
     }
     else if (tableView == fTrackerTable)
     {
+        NSString * ident = [column identifier];
         id item = [fTrackers objectAtIndex: row];
-        if ([item isKindOfClass: [NSNumber class]])
-            return [NSString stringWithFormat: NSLocalizedString(@"Tier %d", "Inspector -> tracker table"), [item integerValue]];
-        else
+        
+        if ([ident isEqualToString: @"Icon"])
+        {
+            NSAssert([item isKindOfClass: [NSString class]], @"Value passed to tracker table's icon row is not a string!");
+            
+            NSURL * address = [NSURL URLWithString: item];
+            NSArray * hostComponents = [[address host] componentsSeparatedByString: @"."];
+            
+            //let's try getting the favicon without using any subdomains
+            NSURL * favIconUrl;
+            if ([hostComponents count] > 1)
+                favIconUrl = [NSURL URLWithString: [NSString stringWithFormat: @"%@://%@.%@/favicon.ico", [address scheme],
+                                [hostComponents objectAtIndex: [hostComponents count] - 2], [hostComponents lastObject]]];
+            else
+                favIconUrl = [NSURL URLWithString: [NSString stringWithFormat: @"%@://%@/favicon.ico", [address scheme],
+                                [hostComponents lastObject]]];
+            
+            NSImage * icon = nil;
+            if ([fTrackerIconLoaded containsObject: favIconUrl])
+                icon = [fTrackerIconCache objectForKey: favIconUrl];
+            else
+                [NSThread detachNewThreadSelector: @selector(loadTrackerIcon:) toTarget: self withObject: favIconUrl];
+            
+            return icon;
+        }
+        if ([ident isEqualToString: @"Address"])
             return item;
+        else
+            return [NSString stringWithFormat: NSLocalizedString(@"Tier %d", "Inspector -> tracker table"), [item integerValue]];
+    }
+    return nil;
+}
+
+- (void) loadTrackerIcon: (NSURL *) favIconUrl
+{
+    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
+    
+    [fTrackerIconLoaded addObject: favIconUrl];
+    
+    NSImage * icon = [[NSImage alloc] initWithContentsOfURL: favIconUrl];
+    if (icon)
+    {
+        [fTrackerIconCache setObject: icon forKey: favIconUrl];
+        [icon release];
     }
+    
+    [pool drain];
+}
+
+- (NSCell *)tableView: (NSTableView *) tableView dataCellForTableColumn: (NSTableColumn *) tableColumn row: (NSInteger) row
+{
+    if (tableView == fTrackerTable)
+    {
+        //group row the full column width
+        if (!tableColumn && [[fTrackers objectAtIndex: row] isKindOfClass: [NSNumber class]])
+            return [[tableView tableColumnWithIdentifier: @"Address"] dataCell];
+    }
+    
     return nil;
 }
 
index 8c195b5615ba57cbd08fbb1a58a87165fe5dbebc..2640df840de2621e7ad74c36f610f5f6611713ae 100644 (file)
@@ -2,9 +2,9 @@
 <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
        <data>
                <int key="IBDocument.SystemTarget">1050</int>
-               <string key="IBDocument.SystemVersion">10A432</string>
+               <string key="IBDocument.SystemVersion">10B504</string>
                <string key="IBDocument.InterfaceBuilderVersion">732</string>
-               <string key="IBDocument.AppKitVersion">1038</string>
+               <string key="IBDocument.AppKitVersion">1038.2</string>
                <string key="IBDocument.HIToolboxVersion">437.00</string>
                <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
                        <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -12,8 +12,7 @@
                </object>
                <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
                        <bool key="EncodedWithXMLCoder">YES</bool>
-                       <integer value="1066"/>
-                       <integer value="965"/>
+                       <integer value="1823"/>
                </object>
                <object class="NSArray" key="IBDocument.PluginDependencies">
                        <bool key="EncodedWithXMLCoder">YES</bool>
@@ -423,7 +422,7 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes>
                                <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
                        </object>
                        <object class="NSCustomView" id="179482273">
-                               <reference key="NSNextResponder"/>
+                               <nil key="NSNextResponder"/>
                                <int key="NSvFlags">258</int>
                                <object class="NSMutableArray" key="NSSubviews">
                                        <bool key="EncodedWithXMLCoder">YES</bool>
@@ -914,7 +913,6 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes>
                                                                </object>
                                                                <string key="NSFrame">{{1, 1}, {245, 56}}</string>
                                                                <reference key="NSSuperview" ref="876850876"/>
-                                                               <reference key="NSNextKeyView" ref="927236344"/>
                                                                <reference key="NSDocView" ref="927236344"/>
                                                                <reference key="NSBGColor" ref="880039277"/>
                                                                <object class="NSCursor" key="NSCursor" id="954883728">
@@ -947,7 +945,6 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes>
                                                </object>
                                                <string key="NSFrame">{{82, 108}, {258, 58}}</string>
                                                <reference key="NSSuperview" ref="179482273"/>
-                                               <reference key="NSNextKeyView" ref="268896745"/>
                                                <int key="NSsFlags">18</int>
                                                <reference key="NSVScroller" ref="682089170"/>
                                                <reference key="NSHScroller" ref="349837992"/>
@@ -955,7 +952,6 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes>
                                        </object>
                                </object>
                                <string key="NSFrameSize">{350, 252}</string>
-                               <reference key="NSSuperview"/>
                                <object class="NSMutableString" key="NSClassName">
                                        <characters key="NS.bytes">NSView</characters>
                                </object>
@@ -1646,7 +1642,7 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes>
                                <string key="NSExtension">NSResponder</string>
                        </object>
                        <object class="NSCustomView" id="296911506">
-                               <nil key="NSNextResponder"/>
+                               <reference key="NSNextResponder"/>
                                <int key="NSvFlags">274</int>
                                <object class="NSMutableArray" key="NSSubviews">
                                        <bool key="EncodedWithXMLCoder">YES</bool>
@@ -2033,18 +2029,21 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes>
                                                                                </object>
                                                                                <object class="NSMutableArray" key="NSTableColumns">
                                                                                        <bool key="EncodedWithXMLCoder">YES</bool>
-                                                                                       <object class="NSTableColumn" id="874876446">
-                                                                                               <double key="NSWidth">357</double>
-                                                                                               <double key="NSMinWidth">40</double>
-                                                                                               <double key="NSMaxWidth">1000</double>
+                                                                                       <object class="NSTableColumn" id="78872301">
+                                                                                               <string key="NSIdentifier">Icon</string>
+                                                                                               <double key="NSWidth">14</double>
+                                                                                               <double key="NSMinWidth">14</double>
+                                                                                               <double key="NSMaxWidth">14</double>
                                                                                                <object class="NSTableHeaderCell" key="NSHeaderCell">
                                                                                                        <int key="NSCellFlags">75628096</int>
                                                                                                        <int key="NSCellFlags2">2048</int>
                                                                                                        <string key="NSContents"/>
                                                                                                        <reference key="NSSupport" ref="26"/>
-                                                                                                       <object class="NSColor" key="NSBackgroundColor">
-                                                                                                               <int key="NSColorSpace">3</int>
-                                                                                                               <bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes>
+                                                                                                       <object class="NSColor" key="NSBackgroundColor" id="665452585">
+                                                                                                               <int key="NSColorSpace">6</int>
+                                                                                                               <string key="NSCatalogName">System</string>
+                                                                                                               <string key="NSColorName">headerColor</string>
+                                                                                                               <reference key="NSColor" ref="880039277"/>
                                                                                                        </object>
                                                                                                        <object class="NSColor" key="NSTextColor" id="390741217">
                                                                                                                <int key="NSColorSpace">6</int>
@@ -2053,6 +2052,36 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes>
                                                                                                                <reference key="NSColor" ref="105940216"/>
                                                                                                        </object>
                                                                                                </object>
+                                                                                               <object class="NSImageCell" key="NSDataCell" id="477306431">
+                                                                                                       <int key="NSCellFlags">67239424</int>
+                                                                                                       <int key="NSCellFlags2">33554432</int>
+                                                                                                       <reference key="NSSupport" ref="737793924"/>
+                                                                                                       <int key="NSAlign">0</int>
+                                                                                                       <int key="NSScale">3</int>
+                                                                                                       <int key="NSStyle">0</int>
+                                                                                                       <bool key="NSAnimates">NO</bool>
+                                                                                               </object>
+                                                                                               <int key="NSResizingMask">3</int>
+                                                                                               <bool key="NSIsResizeable">YES</bool>
+                                                                                               <bool key="NSIsEditable">YES</bool>
+                                                                                               <reference key="NSTableView" ref="423972458"/>
+                                                                                       </object>
+                                                                                       <object class="NSTableColumn" id="874876446">
+                                                                                               <string key="NSIdentifier">Address</string>
+                                                                                               <double key="NSWidth">178</double>
+                                                                                               <double key="NSMinWidth">40</double>
+                                                                                               <double key="NSMaxWidth">1000</double>
+                                                                                               <object class="NSTableHeaderCell" key="NSHeaderCell">
+                                                                                                       <int key="NSCellFlags">75628096</int>
+                                                                                                       <int key="NSCellFlags2">2048</int>
+                                                                                                       <string key="NSContents"/>
+                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                       <object class="NSColor" key="NSBackgroundColor">
+                                                                                                               <int key="NSColorSpace">3</int>
+                                                                                                               <bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes>
+                                                                                                       </object>
+                                                                                                       <reference key="NSTextColor" ref="390741217"/>
+                                                                                               </object>
                                                                                                <object class="NSTextFieldCell" key="NSDataCell" id="871658973">
                                                                                                        <int key="NSCellFlags">337772096</int>
                                                                                                        <int key="NSCellFlags2">2048</int>
@@ -2090,7 +2119,7 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes>
                                                                                        </object>
                                                                                </object>
                                                                                <double key="NSRowHeight">14</double>
-                                                                               <int key="NSTvFlags">440401920</int>
+                                                                               <int key="NSTvFlags">306184192</int>
                                                                                <reference key="NSDelegate"/>
                                                                                <reference key="NSDataSource"/>
                                                                                <int key="NSColumnAutoresizingStyle">4</int>
@@ -2177,13 +2206,14 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes>
                                        </object>
                                </object>
                                <string key="NSFrameSize">{382, 352}</string>
+                               <reference key="NSSuperview"/>
                                <object class="NSMutableString" key="NSClassName">
                                        <characters key="NS.bytes">NSView</characters>
                                </object>
                                <string key="NSExtension">NSResponder</string>
                        </object>
                        <object class="NSCustomView" id="180459949">
-                               <nil key="NSNextResponder"/>
+                               <reference key="NSNextResponder"/>
                                <int key="NSvFlags">274</int>
                                <object class="NSMutableArray" key="NSSubviews">
                                        <bool key="EncodedWithXMLCoder">YES</bool>
@@ -2202,12 +2232,14 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes>
                                                                                <int key="NSvFlags">256</int>
                                                                                <string key="NSFrameSize">{338, 172}</string>
                                                                                <reference key="NSSuperview" ref="386870512"/>
+                                                                               <reference key="NSWindow"/>
                                                                                <bool key="NSEnabled">YES</bool>
                                                                                <object class="NSTableHeaderView" key="NSHeaderView" id="1053875789">
                                                                                        <reference key="NSNextResponder" ref="234782519"/>
                                                                                        <int key="NSvFlags">256</int>
                                                                                        <string key="NSFrameSize">{338, 17}</string>
                                                                                        <reference key="NSSuperview" ref="234782519"/>
+                                                                                       <reference key="NSWindow"/>
                                                                                        <reference key="NSTableView" ref="221969066"/>
                                                                                </object>
                                                                                <object class="_NSCornerView" key="NSCornerView" id="209659011">
@@ -2215,6 +2247,7 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes>
                                                                                        <int key="NSvFlags">-2147483392</int>
                                                                                        <string key="NSFrame">{{-22, 0}, {12, 17}}</string>
                                                                                        <reference key="NSSuperview" ref="1009918777"/>
+                                                                                       <reference key="NSWindow"/>
                                                                                </object>
                                                                                <object class="NSMutableArray" key="NSTableColumns">
                                                                                        <bool key="EncodedWithXMLCoder">YES</bool>
@@ -2228,12 +2261,7 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes>
                                                                                                        <int key="NSCellFlags2">2048</int>
                                                                                                        <string key="NSContents">IP Address</string>
                                                                                                        <reference key="NSSupport" ref="26"/>
-                                                                                                       <object class="NSColor" key="NSBackgroundColor" id="665452585">
-                                                                                                               <int key="NSColorSpace">6</int>
-                                                                                                               <string key="NSCatalogName">System</string>
-                                                                                                               <string key="NSColorName">headerColor</string>
-                                                                                                               <reference key="NSColor" ref="880039277"/>
-                                                                                                       </object>
+                                                                                                       <reference key="NSBackgroundColor" ref="665452585"/>
                                                                                                        <reference key="NSTextColor" ref="390741217"/>
                                                                                                </object>
                                                                                                <object class="NSTextFieldCell" key="NSDataCell" id="762453246">
@@ -2640,6 +2668,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                                </object>
                                                                <string key="NSFrame">{{1, 17}, {338, 172}}</string>
                                                                <reference key="NSSuperview" ref="1009918777"/>
+                                                               <reference key="NSWindow"/>
                                                                <reference key="NSNextKeyView" ref="221969066"/>
                                                                <reference key="NSDocView" ref="221969066"/>
                                                                <reference key="NSBGColor" ref="987864771"/>
@@ -2650,6 +2679,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                                <int key="NSvFlags">-2147483392</int>
                                                                <string key="NSFrame">{{328, 17}, {11, 117}}</string>
                                                                <reference key="NSSuperview" ref="1009918777"/>
+                                                               <reference key="NSWindow"/>
                                                                <int key="NSsFlags">256</int>
                                                                <reference key="NSTarget" ref="1009918777"/>
                                                                <string key="NSAction">_doScroller:</string>
@@ -2660,6 +2690,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                                <int key="NSvFlags">-2147483392</int>
                                                                <string key="NSFrame">{{1, 134}, {327, 11}}</string>
                                                                <reference key="NSSuperview" ref="1009918777"/>
+                                                               <reference key="NSWindow"/>
                                                                <int key="NSsFlags">257</int>
                                                                <reference key="NSTarget" ref="1009918777"/>
                                                                <string key="NSAction">_doScroller:</string>
@@ -2674,6 +2705,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                                </object>
                                                                <string key="NSFrame">{{1, 0}, {338, 17}}</string>
                                                                <reference key="NSSuperview" ref="1009918777"/>
+                                                               <reference key="NSWindow"/>
                                                                <reference key="NSNextKeyView" ref="1053875789"/>
                                                                <reference key="NSDocView" ref="1053875789"/>
                                                                <reference key="NSBGColor" ref="987864771"/>
@@ -2683,6 +2715,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                </object>
                                                <string key="NSFrame">{{10, 77}, {340, 190}}</string>
                                                <reference key="NSSuperview" ref="180459949"/>
+                                               <reference key="NSWindow"/>
                                                <reference key="NSNextKeyView" ref="386870512"/>
                                                <int key="NSsFlags">562</int>
                                                <reference key="NSVScroller" ref="70145897"/>
@@ -2707,12 +2740,14 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                                                <int key="NSvFlags">256</int>
                                                                                <string key="NSFrameSize">{338, 48}</string>
                                                                                <reference key="NSSuperview" ref="230403242"/>
+                                                                               <reference key="NSWindow"/>
                                                                                <bool key="NSEnabled">YES</bool>
                                                                                <object class="NSTableHeaderView" key="NSHeaderView" id="842629001">
                                                                                        <reference key="NSNextResponder" ref="238219887"/>
                                                                                        <int key="NSvFlags">256</int>
                                                                                        <string key="NSFrameSize">{338, 17}</string>
                                                                                        <reference key="NSSuperview" ref="238219887"/>
+                                                                                       <reference key="NSWindow"/>
                                                                                        <reference key="NSTableView" ref="705721384"/>
                                                                                </object>
                                                                                <object class="_NSCornerView" key="NSCornerView" id="336297981">
@@ -2720,6 +2755,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                                                        <int key="NSvFlags">-2147483392</int>
                                                                                        <string key="NSFrame">{{-22, 0}, {12, 17}}</string>
                                                                                        <reference key="NSSuperview" ref="252354812"/>
+                                                                                       <reference key="NSWindow"/>
                                                                                </object>
                                                                                <object class="NSMutableArray" key="NSTableColumns">
                                                                                        <bool key="EncodedWithXMLCoder">YES</bool>
@@ -2804,6 +2840,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                                </object>
                                                                <string key="NSFrame">{{1, 17}, {338, 48}}</string>
                                                                <reference key="NSSuperview" ref="252354812"/>
+                                                               <reference key="NSWindow"/>
                                                                <reference key="NSNextKeyView" ref="705721384"/>
                                                                <reference key="NSDocView" ref="705721384"/>
                                                                <reference key="NSBGColor" ref="987864771"/>
@@ -2814,6 +2851,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                                <int key="NSvFlags">-2147483392</int>
                                                                <string key="NSFrame">{{328, 17}, {11, 37}}</string>
                                                                <reference key="NSSuperview" ref="252354812"/>
+                                                               <reference key="NSWindow"/>
                                                                <int key="NSsFlags">256</int>
                                                                <reference key="NSTarget" ref="252354812"/>
                                                                <string key="NSAction">_doScroller:</string>
@@ -2824,6 +2862,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                                <int key="NSvFlags">-2147483392</int>
                                                                <string key="NSFrame">{{1, 54}, {327, 11}}</string>
                                                                <reference key="NSSuperview" ref="252354812"/>
+                                                               <reference key="NSWindow"/>
                                                                <int key="NSsFlags">257</int>
                                                                <reference key="NSTarget" ref="252354812"/>
                                                                <string key="NSAction">_doScroller:</string>
@@ -2838,6 +2877,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                                </object>
                                                                <string key="NSFrame">{{1, 0}, {338, 17}}</string>
                                                                <reference key="NSSuperview" ref="252354812"/>
+                                                               <reference key="NSWindow"/>
                                                                <reference key="NSNextKeyView" ref="842629001"/>
                                                                <reference key="NSDocView" ref="842629001"/>
                                                                <reference key="NSBGColor" ref="987864771"/>
@@ -2847,6 +2887,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                </object>
                                                <string key="NSFrame">{{10, 271}, {340, 66}}</string>
                                                <reference key="NSSuperview" ref="180459949"/>
+                                               <reference key="NSWindow"/>
                                                <reference key="NSNextKeyView" ref="230403242"/>
                                                <int key="NSsFlags">562</int>
                                                <reference key="NSVScroller" ref="58257122"/>
@@ -2861,6 +2902,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                <int key="NSvFlags">292</int>
                                                <string key="NSFrame">{{10, 26}, {53, 14}}</string>
                                                <reference key="NSSuperview" ref="180459949"/>
+                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="799693373">
                                                        <int key="NSCellFlags">67239424</int>
@@ -2877,6 +2919,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                <int key="NSvFlags">292</int>
                                                <string key="NSFrame">{{64, 26}, {65, 14}}</string>
                                                <reference key="NSSuperview" ref="180459949"/>
+                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="448876915">
                                                        <int key="NSCellFlags">67239424</int>
@@ -2894,6 +2937,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                <int key="NSvFlags">289</int>
                                                <string key="NSFrame">{{225, 26}, {85, 14}}</string>
                                                <reference key="NSSuperview" ref="180459949"/>
+                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="816557032">
                                                        <int key="NSCellFlags">67239424</int>
@@ -2910,6 +2954,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                <int key="NSvFlags">289</int>
                                                <string key="NSFrame">{{230, 42}, {80, 14}}</string>
                                                <reference key="NSSuperview" ref="180459949"/>
+                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="771127591">
                                                        <int key="NSCellFlags">67239424</int>
@@ -2926,6 +2971,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                <int key="NSvFlags">289</int>
                                                <string key="NSFrame">{{311, 26}, {55, 14}}</string>
                                                <reference key="NSSuperview" ref="180459949"/>
+                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="138240008">
                                                        <int key="NSCellFlags">69336577</int>
@@ -2943,6 +2989,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                <int key="NSvFlags">289</int>
                                                <string key="NSFrame">{{311, 42}, {55, 14}}</string>
                                                <reference key="NSSuperview" ref="180459949"/>
+                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="325107171">
                                                        <int key="NSCellFlags">69336577</int>
@@ -2960,6 +3007,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                <int key="NSvFlags">292</int>
                                                <string key="NSFrame">{{24, 42}, {39, 14}}</string>
                                                <reference key="NSSuperview" ref="180459949"/>
+                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="339289187">
                                                        <int key="NSCellFlags">67239424</int>
@@ -2976,6 +3024,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                <int key="NSvFlags">292</int>
                                                <string key="NSFrame">{{64, 42}, {65, 14}}</string>
                                                <reference key="NSSuperview" ref="180459949"/>
+                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="18400276">
                                                        <int key="NSCellFlags">67239424</int>
@@ -2993,6 +3042,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                <int key="NSvFlags">289</int>
                                                <string key="NSFrame">{{205, 10}, {105, 14}}</string>
                                                <reference key="NSSuperview" ref="180459949"/>
+                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="512704553">
                                                        <int key="NSCellFlags">67239424</int>
@@ -3009,6 +3059,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                <int key="NSvFlags">289</int>
                                                <string key="NSFrame">{{311, 10}, {55, 14}}</string>
                                                <reference key="NSSuperview" ref="180459949"/>
+                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="416180296">
                                                        <int key="NSCellFlags">69336577</int>
@@ -3026,6 +3077,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                <int key="NSvFlags">290</int>
                                                <string key="NSFrame">{{2, 58}, {356, 14}}</string>
                                                <reference key="NSSuperview" ref="180459949"/>
+                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="165778001">
                                                        <int key="NSCellFlags">67239488</int>
@@ -3043,6 +3095,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                <int key="NSvFlags">292</int>
                                                <string key="NSFrame">{{19, 10}, {44, 14}}</string>
                                                <reference key="NSSuperview" ref="180459949"/>
+                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="385608029">
                                                        <int key="NSCellFlags">67239424</int>
@@ -3059,6 +3112,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                <int key="NSvFlags">292</int>
                                                <string key="NSFrame">{{64, 10}, {65, 14}}</string>
                                                <reference key="NSSuperview" ref="180459949"/>
+                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="513899721">
                                                        <int key="NSCellFlags">67239424</int>
@@ -3073,6 +3127,8 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                        </object>
                                </object>
                                <string key="NSFrameSize">{360, 342}</string>
+                               <reference key="NSSuperview"/>
+                               <reference key="NSWindow"/>
                                <string key="NSClassName">NSView</string>
                                <string key="NSExtension">NSResponder</string>
                        </object>
@@ -3340,7 +3396,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                <string key="NSExtension">NSResponder</string>
                        </object>
                        <object class="NSCustomView" id="1005910882">
-                               <reference key="NSNextResponder"/>
+                               <nil key="NSNextResponder"/>
                                <int key="NSvFlags">258</int>
                                <object class="NSMutableArray" key="NSSubviews">
                                        <bool key="EncodedWithXMLCoder">YES</bool>
@@ -3996,7 +4052,6 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                        </object>
                                </object>
                                <string key="NSFrameSize">{351, 219}</string>
-                               <reference key="NSSuperview"/>
                                <object class="NSMutableString" key="NSClassName">
                                        <characters key="NS.bytes">NSView</characters>
                                </object>
@@ -6481,8 +6536,8 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                        <reference ref="755457391"/>
                                                        <reference ref="528006672"/>
                                                        <reference ref="618198612"/>
-                                                       <reference ref="754568592"/>
                                                        <reference ref="899994514"/>
+                                                       <reference ref="754568592"/>
                                                </object>
                                                <reference key="parent" ref="0"/>
                                                <string key="objectName">Tracker</string>
@@ -6810,6 +6865,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                <object class="NSMutableArray" key="children">
                                                        <bool key="EncodedWithXMLCoder">YES</bool>
                                                        <reference ref="874876446"/>
+                                                       <reference ref="78872301"/>
                                                </object>
                                                <reference key="parent" ref="754568592"/>
                                        </object>
@@ -7060,6 +7116,20 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                <reference key="object" ref="381060565"/>
                                                <reference key="parent" ref="93205077"/>
                                        </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1823</int>
+                                               <reference key="object" ref="78872301"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="477306431"/>
+                                               </object>
+                                               <reference key="parent" ref="423972458"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1825</int>
+                                               <reference key="object" ref="477306431"/>
+                                               <reference key="parent" ref="78872301"/>
+                                       </object>
                                </object>
                        </object>
                        <object class="NSMutableDictionary" key="flattenedProperties">
@@ -7477,6 +7547,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                        <string>1816.IBPluginDependency</string>
                                        <string>1817.IBPluginDependency</string>
                                        <string>1818.IBPluginDependency</string>
+                                       <string>1825.IBPluginDependency</string>
                                        <string>28.IBPluginDependency</string>
                                        <string>28.ImportedFromIB2</string>
                                        <string>29.IBPluginDependency</string>
@@ -7989,6 +8060,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <integer value="1"/>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <integer value="1"/>
@@ -8103,7 +8175,7 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                </object>
                        </object>
                        <nil key="sourceID"/>
-                       <int key="maxID">1822</int>
+                       <int key="maxID">1825</int>
                </object>
                <object class="IBClassDescriber" key="IBDocument.Classes">
                        <object class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -8931,6 +9003,69 @@ AAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAwOQA</bytes>
                                                <string key="minorKey">Growl.framework/Headers/GrowlApplicationBridge.h</string>
                                        </object>
                                </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">ImageKit.framework/Headers/IKImageBrowserView.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">ImageKit.framework/Headers/IKSaveOptions.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">ImageKit.framework/Headers/ImageKitDeprecated.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">PDFKit.framework/Headers/PDFDocument.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">PDFKit.framework/Headers/PDFView.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">QuartzComposer.framework/Headers/QCCompositionParameterView.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">QuartzComposer.framework/Headers/QCCompositionPickerView.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">QuartzFilters.framework/Headers/QuartzFilterManager.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">QuickLookUI.framework/Headers/QLPreviewPanel.h</string>
+                                       </object>
+                               </object>
                                <object class="IBPartialClassDescription">
                                        <string key="className">NSObject</string>
                                        <object class="IBClassDescriptionSource" key="sourceIdentifier">