Commits

Virgil Dupras committed 745b839

xibless-ified IgnoreListDialog.

  • Participants
  • Parent commits 57f2106
  • Branches xibless

Comments (0)

Files changed (8)

         xibless.generate('cocoa/pe/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable')
     else:
         xibless.generate('cocoa/base/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable')
+    xibless.generate('cocoa/base/ui/ignore_list_dialog.py', 'cocoa/autogen/IgnoreListDialog_UI', localizationTable='Localizable')
 
 def build_cocoa(edition, dev):
     build_xibless(edition)

File cocoa/base/IgnoreListDialog.h

 
 @interface IgnoreListDialog : NSWindowController
 {
-    IBOutlet NSTableView *ignoreListTableView;
-    
     PyIgnoreListDialog *model;
     HSTable *ignoreListTable;
+    NSTableView *ignoreListTableView;
 }
+
+@property (readwrite, retain) PyIgnoreListDialog *model;
+@property (readwrite, retain) NSTableView *ignoreListTableView;
+
 - (id)initWithPyRef:(PyObject *)aPyRef;
-
 - (void)initializeColumns;
-- (IBAction)removeSelected:(id)sender;
-- (IBAction)clear:(id)sender;
 @end

File cocoa/base/IgnoreListDialog.m

 */
 
 #import "IgnoreListDialog.h"
+#import "IgnoreListDialog_UI.h"
 #import "HSPyUtil.h"
 
 @implementation IgnoreListDialog
+
+@synthesize model;
+@synthesize ignoreListTableView;
+
 - (id)initWithPyRef:(PyObject *)aPyRef
 {
-    self = [super initWithWindowNibName:@"IgnoreListDialog"];
-    [self window]; //So the detailsTable is initialized.
-    model = [[PyIgnoreListDialog alloc] initWithModel:aPyRef];
-    [model bindCallback:createCallback(@"IgnoreListDialogView", self)];
+    self = [super initWithWindow:nil];
+    self.model = [[[PyIgnoreListDialog alloc] initWithModel:aPyRef] autorelease];
+    [self.model bindCallback:createCallback(@"IgnoreListDialogView", self)];
+    [self setWindow:createIgnoreListDialog_UI(self)];
     ignoreListTable = [[HSTable alloc] initWithPyRef:[model ignoreListTable] tableView:ignoreListTableView];
     [self initializeColumns];
     return self;
 - (void)dealloc
 {
     [ignoreListTable release];
-    [model release];
     [super dealloc];
 }
 
     [[ignoreListTable columns] setColumnsAsReadOnly];
 }
 
-- (IBAction)removeSelected:(id)sender
-{
-    [model removeSelected];
-}
-
-- (IBAction)clear:(id)sender
-{
-    [model clear];
-}
-
 /* model --> view */
 - (void)show
 {

File cocoa/base/en.lproj/IgnoreListDialog.strings

-
-/* Class = "NSWindow"; title = "Ignore List"; ObjectID = "1"; */
-"1.title" = "Ignore List";
-
-/* Class = "NSButtonCell"; title = "Close"; ObjectID = "19"; */
-"19.title" = "Close";
-
-/* Class = "NSButtonCell"; title = "Remove Selected"; ObjectID = "21"; */
-"21.title" = "Remove Selected";
-
-/* Class = "NSButtonCell"; title = "Clear"; ObjectID = "28"; */
-"28.title" = "Clear";

File cocoa/base/en.lproj/IgnoreListDialog.xib

-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
-	<data>
-		<int key="IBDocument.SystemTarget">1060</int>
-		<string key="IBDocument.SystemVersion">11D50</string>
-		<string key="IBDocument.InterfaceBuilderVersion">2177</string>
-		<string key="IBDocument.AppKitVersion">1138.32</string>
-		<string key="IBDocument.HIToolboxVersion">568.00</string>
-		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
-			<string key="NS.object.0">2177</string>
-		</object>
-		<array key="IBDocument.IntegratedClassDependencies">
-			<string>NSView</string>
-			<string>NSTableView</string>
-			<string>NSScrollView</string>
-			<string>NSWindowTemplate</string>
-			<string>NSTableHeaderView</string>
-			<string>NSButtonCell</string>
-			<string>NSButton</string>
-			<string>NSScroller</string>
-			<string>NSCustomObject</string>
-		</array>
-		<array key="IBDocument.PluginDependencies">
-			<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-		</array>
-		<object class="NSMutableDictionary" key="IBDocument.Metadata">
-			<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
-			<integer value="1" key="NS.object.0"/>
-		</object>
-		<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
-			<object class="NSCustomObject" id="1001">
-				<string key="NSClassName">IgnoreListDialog</string>
-			</object>
-			<object class="NSCustomObject" id="1003">
-				<string key="NSClassName">FirstResponder</string>
-			</object>
-			<object class="NSCustomObject" id="1004">
-				<string key="NSClassName">NSApplication</string>
-			</object>
-			<object class="NSWindowTemplate" id="359561441">
-				<int key="NSWindowStyleMask">11</int>
-				<int key="NSWindowBacking">2</int>
-				<string key="NSWindowRect">{{477, 306}, {574, 347}}</string>
-				<int key="NSWTFlags">1685585920</int>
-				<string key="NSWindowTitle">Ignore List</string>
-				<string key="NSWindowClass">NSWindow</string>
-				<nil key="NSViewClass"/>
-				<nil key="NSUserInterfaceItemIdentifier"/>
-				<object class="NSView" key="NSWindowView" id="976198330">
-					<reference key="NSNextResponder"/>
-					<int key="NSvFlags">256</int>
-					<array class="NSMutableArray" key="NSSubviews">
-						<object class="NSScrollView" id="458371270">
-							<reference key="NSNextResponder" ref="976198330"/>
-							<int key="NSvFlags">274</int>
-							<array class="NSMutableArray" key="NSSubviews">
-								<object class="NSClipView" id="831830981">
-									<reference key="NSNextResponder" ref="458371270"/>
-									<int key="NSvFlags">2304</int>
-									<array class="NSMutableArray" key="NSSubviews">
-										<object class="NSTableView" id="252791348">
-											<reference key="NSNextResponder" ref="831830981"/>
-											<int key="NSvFlags">256</int>
-											<string key="NSFrameSize">{532, 211}</string>
-											<reference key="NSSuperview" ref="831830981"/>
-											<reference key="NSWindow"/>
-											<reference key="NSNextKeyView" ref="777677330"/>
-											<bool key="NSEnabled">YES</bool>
-											<object class="NSTableHeaderView" key="NSHeaderView" id="903452051">
-												<reference key="NSNextResponder" ref="777677330"/>
-												<int key="NSvFlags">256</int>
-												<string key="NSFrameSize">{532, 17}</string>
-												<reference key="NSSuperview" ref="777677330"/>
-												<reference key="NSWindow"/>
-												<reference key="NSNextKeyView" ref="564034022"/>
-												<reference key="NSTableView" ref="252791348"/>
-											</object>
-											<object class="_NSCornerView" key="NSCornerView" id="564034022">
-												<reference key="NSNextResponder" ref="458371270"/>
-												<int key="NSvFlags">-2147483392</int>
-												<string key="NSFrame">{{224, 0}, {16, 17}}</string>
-												<reference key="NSSuperview" ref="458371270"/>
-												<reference key="NSWindow"/>
-												<reference key="NSNextKeyView" ref="831830981"/>
-											</object>
-											<array class="NSMutableArray" key="NSTableColumns"/>
-											<double key="NSIntercellSpacingWidth">3</double>
-											<double key="NSIntercellSpacingHeight">2</double>
-											<object class="NSColor" key="NSBackgroundColor">
-												<int key="NSColorSpace">3</int>
-												<bytes key="NSWhite">MQA</bytes>
-											</object>
-											<object class="NSColor" key="NSGridColor">
-												<int key="NSColorSpace">6</int>
-												<string key="NSCatalogName">System</string>
-												<string key="NSColorName">gridColor</string>
-												<object class="NSColor" key="NSColor">
-													<int key="NSColorSpace">3</int>
-													<bytes key="NSWhite">MC41AA</bytes>
-												</object>
-											</object>
-											<double key="NSRowHeight">17</double>
-											<int key="NSTvFlags">1512046592</int>
-											<reference key="NSDelegate"/>
-											<reference key="NSDataSource"/>
-											<int key="NSColumnAutoresizingStyle">4</int>
-											<int key="NSDraggingSourceMaskForLocal">15</int>
-											<int key="NSDraggingSourceMaskForNonLocal">0</int>
-											<bool key="NSAllowsTypeSelect">NO</bool>
-											<int key="NSTableViewDraggingDestinationStyle">0</int>
-											<int key="NSTableViewGroupRowStyle">1</int>
-										</object>
-									</array>
-									<string key="NSFrame">{{1, 17}, {532, 249}}</string>
-									<reference key="NSSuperview" ref="458371270"/>
-									<reference key="NSWindow"/>
-									<reference key="NSNextKeyView" ref="252791348"/>
-									<reference key="NSDocView" ref="252791348"/>
-									<object class="NSColor" key="NSBGColor" id="765209443">
-										<int key="NSColorSpace">6</int>
-										<string key="NSCatalogName">System</string>
-										<string key="NSColorName">controlBackgroundColor</string>
-										<object class="NSColor" key="NSColor">
-											<int key="NSColorSpace">3</int>
-											<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
-										</object>
-									</object>
-									<int key="NScvFlags">4</int>
-								</object>
-								<object class="NSScroller" id="99096694">
-									<reference key="NSNextResponder" ref="458371270"/>
-									<int key="NSvFlags">-2147483392</int>
-									<string key="NSFrame">{{224, 17}, {15, 102}}</string>
-									<reference key="NSSuperview" ref="458371270"/>
-									<reference key="NSWindow"/>
-									<reference key="NSNextKeyView" ref="47224920"/>
-									<reference key="NSTarget" ref="458371270"/>
-									<string key="NSAction">_doScroller:</string>
-									<double key="NSPercent">0.99052132701421802</double>
-								</object>
-								<object class="NSScroller" id="47224920">
-									<reference key="NSNextResponder" ref="458371270"/>
-									<int key="NSvFlags">-2147483392</int>
-									<string key="NSFrame">{{1, 154}, {438, 15}}</string>
-									<reference key="NSSuperview" ref="458371270"/>
-									<reference key="NSWindow"/>
-									<reference key="NSNextKeyView" ref="253286088"/>
-									<int key="NSsFlags">1</int>
-									<reference key="NSTarget" ref="458371270"/>
-									<string key="NSAction">_doScroller:</string>
-									<double key="NSCurValue">1</double>
-									<double key="NSPercent">0.98871331828442433</double>
-								</object>
-								<object class="NSClipView" id="777677330">
-									<reference key="NSNextResponder" ref="458371270"/>
-									<int key="NSvFlags">2304</int>
-									<array class="NSMutableArray" key="NSSubviews">
-										<reference ref="903452051"/>
-									</array>
-									<string key="NSFrame">{{1, 0}, {532, 17}}</string>
-									<reference key="NSSuperview" ref="458371270"/>
-									<reference key="NSWindow"/>
-									<reference key="NSNextKeyView" ref="903452051"/>
-									<reference key="NSDocView" ref="903452051"/>
-									<reference key="NSBGColor" ref="765209443"/>
-									<int key="NScvFlags">4</int>
-								</object>
-								<reference ref="564034022"/>
-							</array>
-							<string key="NSFrame">{{20, 60}, {534, 267}}</string>
-							<reference key="NSSuperview" ref="976198330"/>
-							<reference key="NSWindow"/>
-							<reference key="NSNextKeyView" ref="831830981"/>
-							<int key="NSsFlags">133682</int>
-							<reference key="NSVScroller" ref="99096694"/>
-							<reference key="NSHScroller" ref="47224920"/>
-							<reference key="NSContentView" ref="831830981"/>
-							<reference key="NSHeaderClipView" ref="777677330"/>
-							<reference key="NSCornerView" ref="564034022"/>
-							<bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes>
-						</object>
-						<object class="NSButton" id="4380169">
-							<reference key="NSNextResponder" ref="976198330"/>
-							<int key="NSvFlags">289</int>
-							<string key="NSFrame">{{464, 12}, {96, 32}}</string>
-							<reference key="NSSuperview" ref="976198330"/>
-							<reference key="NSWindow"/>
-							<bool key="NSEnabled">YES</bool>
-							<object class="NSButtonCell" key="NSCell" id="373771329">
-								<int key="NSCellFlags">67239424</int>
-								<int key="NSCellFlags2">134217728</int>
-								<string key="NSContents">Close</string>
-								<object class="NSFont" key="NSSupport" id="680801460">
-									<string key="NSName">LucidaGrande</string>
-									<double key="NSSize">13</double>
-									<int key="NSfFlags">1044</int>
-								</object>
-								<reference key="NSControlView" ref="4380169"/>
-								<int key="NSButtonFlags">-2038284033</int>
-								<int key="NSButtonFlags2">129</int>
-								<string key="NSAlternateContents"/>
-								<string type="base64-UTF8" key="NSKeyEquivalent">DQ</string>
-								<int key="NSPeriodicDelay">200</int>
-								<int key="NSPeriodicInterval">25</int>
-							</object>
-						</object>
-						<object class="NSButton" id="253286088">
-							<reference key="NSNextResponder" ref="976198330"/>
-							<int key="NSvFlags">292</int>
-							<string key="NSFrame">{{14, 12}, {154, 32}}</string>
-							<reference key="NSSuperview" ref="976198330"/>
-							<reference key="NSWindow"/>
-							<reference key="NSNextKeyView" ref="983148229"/>
-							<bool key="NSEnabled">YES</bool>
-							<object class="NSButtonCell" key="NSCell" id="671547957">
-								<int key="NSCellFlags">67239424</int>
-								<int key="NSCellFlags2">134217728</int>
-								<string key="NSContents">Remove Selected</string>
-								<reference key="NSSupport" ref="680801460"/>
-								<reference key="NSControlView" ref="253286088"/>
-								<int key="NSButtonFlags">-2038284033</int>
-								<int key="NSButtonFlags2">129</int>
-								<string key="NSAlternateContents"/>
-								<string key="NSKeyEquivalent"/>
-								<int key="NSPeriodicDelay">200</int>
-								<int key="NSPeriodicInterval">25</int>
-							</object>
-						</object>
-						<object class="NSButton" id="983148229">
-							<reference key="NSNextResponder" ref="976198330"/>
-							<int key="NSvFlags">292</int>
-							<string key="NSFrame">{{162, 12}, {154, 32}}</string>
-							<reference key="NSSuperview" ref="976198330"/>
-							<reference key="NSWindow"/>
-							<reference key="NSNextKeyView" ref="4380169"/>
-							<bool key="NSEnabled">YES</bool>
-							<object class="NSButtonCell" key="NSCell" id="409951495">
-								<int key="NSCellFlags">67239424</int>
-								<int key="NSCellFlags2">134217728</int>
-								<string key="NSContents">Clear</string>
-								<reference key="NSSupport" ref="680801460"/>
-								<reference key="NSControlView" ref="983148229"/>
-								<int key="NSButtonFlags">-2038284033</int>
-								<int key="NSButtonFlags2">129</int>
-								<string key="NSAlternateContents"/>
-								<string key="NSKeyEquivalent"/>
-								<int key="NSPeriodicDelay">200</int>
-								<int key="NSPeriodicInterval">25</int>
-							</object>
-						</object>
-					</array>
-					<string key="NSFrameSize">{574, 347}</string>
-					<reference key="NSSuperview"/>
-					<reference key="NSWindow"/>
-					<reference key="NSNextKeyView" ref="458371270"/>
-				</object>
-				<string key="NSScreenRect">{{0, 0}, {1920, 1058}}</string>
-				<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
-				<bool key="NSWindowIsRestorable">YES</bool>
-			</object>
-		</array>
-		<object class="IBObjectContainer" key="IBDocument.Objects">
-			<array class="NSMutableArray" key="connectionRecords">
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">window</string>
-						<reference key="source" ref="1001"/>
-						<reference key="destination" ref="359561441"/>
-					</object>
-					<int key="connectionID">22</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">ignoreListTableView</string>
-						<reference key="source" ref="1001"/>
-						<reference key="destination" ref="252791348"/>
-					</object>
-					<int key="connectionID">30</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">removeSelected:</string>
-						<reference key="source" ref="1001"/>
-						<reference key="destination" ref="253286088"/>
-					</object>
-					<int key="connectionID">31</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">clear:</string>
-						<reference key="source" ref="1001"/>
-						<reference key="destination" ref="983148229"/>
-					</object>
-					<int key="connectionID">32</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">performClose:</string>
-						<reference key="source" ref="359561441"/>
-						<reference key="destination" ref="4380169"/>
-					</object>
-					<int key="connectionID">25</int>
-				</object>
-			</array>
-			<object class="IBMutableOrderedSet" key="objectRecords">
-				<array key="orderedObjects">
-					<object class="IBObjectRecord">
-						<int key="objectID">0</int>
-						<array key="object" id="0"/>
-						<reference key="children" ref="1000"/>
-						<nil key="parent"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-2</int>
-						<reference key="object" ref="1001"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">File's Owner</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-1</int>
-						<reference key="object" ref="1003"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">First Responder</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-3</int>
-						<reference key="object" ref="1004"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">Application</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">1</int>
-						<reference key="object" ref="359561441"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="976198330"/>
-						</array>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">2</int>
-						<reference key="object" ref="976198330"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="458371270"/>
-							<reference ref="4380169"/>
-							<reference ref="253286088"/>
-							<reference ref="983148229"/>
-						</array>
-						<reference key="parent" ref="359561441"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">5</int>
-						<reference key="object" ref="458371270"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="99096694"/>
-							<reference ref="47224920"/>
-							<reference ref="252791348"/>
-							<reference ref="903452051"/>
-						</array>
-						<reference key="parent" ref="976198330"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">6</int>
-						<reference key="object" ref="99096694"/>
-						<reference key="parent" ref="458371270"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">7</int>
-						<reference key="object" ref="47224920"/>
-						<reference key="parent" ref="458371270"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">8</int>
-						<reference key="object" ref="252791348"/>
-						<array class="NSMutableArray" key="children"/>
-						<reference key="parent" ref="458371270"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">9</int>
-						<reference key="object" ref="903452051"/>
-						<reference key="parent" ref="458371270"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">18</int>
-						<reference key="object" ref="4380169"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="373771329"/>
-						</array>
-						<reference key="parent" ref="976198330"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">19</int>
-						<reference key="object" ref="373771329"/>
-						<reference key="parent" ref="4380169"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">20</int>
-						<reference key="object" ref="253286088"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="671547957"/>
-						</array>
-						<reference key="parent" ref="976198330"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">21</int>
-						<reference key="object" ref="671547957"/>
-						<reference key="parent" ref="253286088"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">27</int>
-						<reference key="object" ref="983148229"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="409951495"/>
-						</array>
-						<reference key="parent" ref="976198330"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">28</int>
-						<reference key="object" ref="409951495"/>
-						<reference key="parent" ref="983148229"/>
-					</object>
-				</array>
-			</object>
-			<dictionary class="NSMutableDictionary" key="flattenedProperties">
-				<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-				<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-				<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-				<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-				<string key="1.IBWindowTemplateEditedContentRect">{{477, 306}, {480, 309}}</string>
-				<boolean value="NO" key="1.NSWindowTemplate.visibleAtLaunch"/>
-				<string key="18.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-				<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-				<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-				<string key="20.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-				<string key="21.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-				<string key="27.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-				<string key="28.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-				<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-				<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-				<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-				<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-				<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-			</dictionary>
-			<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
-			<nil key="activeLocalization"/>
-			<dictionary class="NSMutableDictionary" key="localizations"/>
-			<nil key="sourceID"/>
-			<int key="maxID">32</int>
-		</object>
-		<object class="IBClassDescriber" key="IBDocument.Classes">
-			<array class="NSMutableArray" key="referencedPartialClassDescriptions">
-				<object class="IBPartialClassDescription">
-					<string key="className">IgnoreListDialog</string>
-					<string key="superclassName">NSWindowController</string>
-					<dictionary class="NSMutableDictionary" key="actions">
-						<string key="clear:">id</string>
-						<string key="removeSelected:">id</string>
-					</dictionary>
-					<dictionary class="NSMutableDictionary" key="actionInfosByName">
-						<object class="IBActionInfo" key="clear:">
-							<string key="name">clear:</string>
-							<string key="candidateClassName">id</string>
-						</object>
-						<object class="IBActionInfo" key="removeSelected:">
-							<string key="name">removeSelected:</string>
-							<string key="candidateClassName">id</string>
-						</object>
-					</dictionary>
-					<object class="NSMutableDictionary" key="outlets">
-						<string key="NS.key.0">ignoreListTableView</string>
-						<string key="NS.object.0">NSTableView</string>
-					</object>
-					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
-						<string key="NS.key.0">ignoreListTableView</string>
-						<object class="IBToOneOutletInfo" key="NS.object.0">
-							<string key="name">ignoreListTableView</string>
-							<string key="candidateClassName">NSTableView</string>
-						</object>
-					</object>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/IgnoreListDialog.h</string>
-					</object>
-				</object>
-			</array>
-		</object>
-		<int key="IBDocument.localizationMode">0</int>
-		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
-		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
-			<real value="1060" key="NS.object.0"/>
-		</object>
-		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
-			<real value="1060" key="NS.object.0"/>
-		</object>
-		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
-			<real value="4100" key="NS.object.0"/>
-		</object>
-		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
-		<int key="IBDocument.defaultPropertyAccessControl">3</int>
-	</data>
-</archive>

File cocoa/base/en.lproj/Localizable.strings

 "No" = "No";
 "OK" = "OK";
 
+/* Details Panel */
 "Details of Selected File" = "Details of Selected File";
 "Selected" = "Selected";
 "Reference" = "Reference";
 "Attribute" = "Attribute";
+
+/* Ignore List Dialog */
+"Ignore List" = "Ignore List";
+"Close" = "Close";
+"Remove Selected" = "Remove Selected";
+"Clear" = "Clear";

File cocoa/base/ui/ignore_list_dialog.py

+ownerclass = 'IgnoreListDialog'
+ownerimport = 'IgnoreListDialog.h'
+
+result = Window(550, 350, "Ignore List")
+table = TableView(result)
+removeSelectedButton = Button(result, "Remove Selected")
+clearButton = Button(result, "Clear")
+closeButton = Button(result, "Close")
+
+owner.ignoreListTableView = table
+
+result.canMinimize = False
+removeSelectedButton.action = Action(owner.model, 'removeSelected')
+clearButton.action = Action(owner.model, 'clear')
+closeButton.action = Action(result, 'performClose:')
+closeButton.keyEquivalent = '\\r'
+table.allowsColumnReordering = False
+table.allowsColumnSelection = False
+table.allowsMultipleSelection = True
+
+removeSelectedButton.width = 142
+clearButton.width = 142
+closeButton.width = 84
+buttonLayout = HLayout(left=[removeSelectedButton, clearButton], right=[closeButton])
+buttonLayout.packToCorner(Pack.LowerLeft)
+buttonLayout.fill(Pack.Right)
+buttonLayout.setAnchor(Pack.Below)
+table.packRelativeTo(buttonLayout, Pack.Above)
+table.fill(Pack.UpperRight)
+table.setAnchor(Pack.UpperLeft, growX=True, growY=True)

File cocoa/se/dupeguru.xcodeproj/project.pbxproj

 		CE3A298B15BAEA600008BDB9 /* DetailsPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE3A298A15BAEA600008BDB9 /* DetailsPanel_UI.m */; };
 		CE3A3B4914BF19B8007898AB /* PyDetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */; };
 		CE412C0D1510ECAA00484122 /* PyIgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE412C0C1510ECAA00484122 /* PyIgnoreListDialog.m */; };
-		CE412C111510ECCA00484122 /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE412C0F1510ECCA00484122 /* IgnoreListDialog.xib */; };
 		CE412C141510ED2E00484122 /* IgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE412C131510ED2E00484122 /* IgnoreListDialog.m */; };
 		CE45579B0AE3BC2B005A9546 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45579A0AE3BC2B005A9546 /* Sparkle.framework */; };
 		CE4557B40AE3BC50005A9546 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE45579A0AE3BC2B005A9546 /* Sparkle.framework */; };
 		CEE49F4415B9F4E1002BD78B /* HSFairwareReminder_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3D15B9F4E1002BD78B /* HSFairwareReminder_UI.m */; };
 		CEE49F4515B9F4E1002BD78B /* ProgressController_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3F15B9F4E1002BD78B /* ProgressController_UI.m */; };
 		CEE7EA130FE675C80004E467 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE7EA120FE675C80004E467 /* DetailsPanel.m */; };
+		CEEACCF615BC63E200960A6A /* IgnoreListDialog_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEACCF515BC63E200960A6A /* IgnoreListDialog_UI.m */; };
 		CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; };
 		CEEF2A1814C0A5A60082545A /* PyDupeGuru.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */; };
 		CEEF2A1D14C0A8480082545A /* PyDupeGuruBase.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A1A14C0A8480082545A /* PyDupeGuruBase.m */; };
 		CE0564BF14169DDC00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = zh_CN.lproj/Preferences.xib; sourceTree = "<group>"; };
 		CE066CEE15B9D15B007084A6 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../base/pt_BR.lproj/Localizable.strings; sourceTree = "<group>"; };
 		CE073F5409CAE1A3005C1D2F /* help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = help; path = ../../build/help; sourceTree = "<group>"; };
-		CE148034151100EC00CD5DAD /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
-		CE148037151100FB00CD5DAD /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
-		CE1480391511010500CD5DAD /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
-		CE14803B1511011000CD5DAD /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
 		CE18004C14BDD837001B6329 /* Python */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Python; path = ../../build/Python; sourceTree = "<group>"; };
 		CE18005014BDD87B001B6329 /* py */ = {isa = PBXFileReference; lastKnownFileType = folder; name = py; path = ../../build/py; sourceTree = "<group>"; };
 		CE1D091414BE0C6400CA6B8C /* ObjP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjP.h; sourceTree = "<group>"; };
 		CE275C5914BF71DF00265960 /* PyColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyColumns.m; sourceTree = "<group>"; };
 		CE27D3C212CCA43800859E67 /* HSAboutBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox.h; path = ../../cocoalib/HSAboutBox.h; sourceTree = SOURCE_ROOT; };
 		CE27D3C312CCA43800859E67 /* HSAboutBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox.m; path = ../../cocoalib/HSAboutBox.m; sourceTree = SOURCE_ROOT; };
-		CE3491E2151100A40030B64C /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
-		CE3491E5151100AD0030B64C /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
-		CE3491E7151100BB0030B64C /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
-		CE3491E8151100BB0030B64C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
 		CE381C9409914ACE003581CE /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = SOURCE_ROOT; };
 		CE381C9509914ACE003581CE /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = SOURCE_ROOT; };
 		CE381C9A09914ADF003581CE /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = ResultWindow.m; sourceTree = SOURCE_ROOT; };
 		CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDetailsPanel.m; sourceTree = "<group>"; };
 		CE412C0B1510ECAA00484122 /* PyIgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyIgnoreListDialog.h; sourceTree = "<group>"; };
 		CE412C0C1510ECAA00484122 /* PyIgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyIgnoreListDialog.m; sourceTree = "<group>"; };
-		CE412C101510ECCA00484122 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
 		CE412C121510ED2E00484122 /* IgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IgnoreListDialog.h; path = ../base/IgnoreListDialog.h; sourceTree = "<group>"; };
 		CE412C131510ED2E00484122 /* IgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = IgnoreListDialog.m; path = ../base/IgnoreListDialog.m; sourceTree = "<group>"; };
 		CE45579A0AE3BC2B005A9546 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = ../../cocoalib/Sparkle.framework; sourceTree = SOURCE_ROOT; };
 		CE587E9D14C0801F004CA031 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = "<group>"; };
 		CE5A5CA015A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
 		CE5A5CA215A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
-		CE5A5CA315A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
 		CE5A5CA415A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/MainMenu.xib; sourceTree = "<group>"; };
 		CE5A5CA515A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
 		CE5A5CA615A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
 		CEE49F3F15B9F4E1002BD78B /* ProgressController_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController_UI.m; path = ../../cocoalib/autogen/ProgressController_UI.m; sourceTree = "<group>"; };
 		CEE7EA110FE675C80004E467 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = ../base/DetailsPanel.h; sourceTree = SOURCE_ROOT; };
 		CEE7EA120FE675C80004E467 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; };
+		CEEACCF415BC63E200960A6A /* IgnoreListDialog_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IgnoreListDialog_UI.h; sourceTree = "<group>"; };
+		CEEACCF515BC63E200960A6A /* IgnoreListDialog_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IgnoreListDialog_UI.m; sourceTree = "<group>"; };
 		CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = "<group>"; };
 		CEECCD0D14C636F100A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = "<group>"; };
 		CEECCD1014C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
 			children = (
 				CE3A298915BAEA600008BDB9 /* DetailsPanel_UI.h */,
 				CE3A298A15BAEA600008BDB9 /* DetailsPanel_UI.m */,
+				CEEACCF415BC63E200960A6A /* IgnoreListDialog_UI.h */,
+				CEEACCF515BC63E200960A6A /* IgnoreListDialog_UI.m */,
 				CE9FC22B14C080CF005C31FD /* PyGUIObject.h */,
 				CE9FC22C14C080CF005C31FD /* PyGUIObject.m */,
 				CE275C5814BF71DF00265960 /* PyColumns.h */,
 				CE81134412E5CE4D00A36C80 /* DirectoryPanel.xib */,
 				CE81134612E5CE4D00A36C80 /* MainMenu.xib */,
 				CE81134812E5CE4D00A36C80 /* ProblemDialog.xib */,
-				CE412C0F1510ECCA00484122 /* IgnoreListDialog.xib */,
 				CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */,
 				CE81135612E5CE6D00A36C80 /* Preferences.xib */,
 				CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */,
 				CEA175CA1461E8E600776591 /* locale in Resources */,
 				CE18005114BDD87B001B6329 /* py in Resources */,
 				CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */,
-				CE412C111510ECCA00484122 /* IgnoreListDialog.xib in Resources */,
 				CEC3F8F815765F9F00B26F0C /* DeletionOptions.xib in Resources */,
 				CE8C25CD15B9FCC100D44175 /* cocoalib.strings in Resources */,
 			);
 				CEE49F4415B9F4E1002BD78B /* HSFairwareReminder_UI.m in Sources */,
 				CEE49F4515B9F4E1002BD78B /* ProgressController_UI.m in Sources */,
 				CE3A298B15BAEA600008BDB9 /* DetailsPanel_UI.m in Sources */,
+				CEEACCF615BC63E200960A6A /* IgnoreListDialog_UI.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 			path = /Users/hsoft/src/dupeguru/cocoalib/xib;
 			sourceTree = "<absolute>";
 		};
-		CE412C0F1510ECCA00484122 /* IgnoreListDialog.xib */ = {
-			isa = PBXVariantGroup;
-			children = (
-				CE412C101510ECCA00484122 /* en */,
-				CE3491E2151100A40030B64C /* cs */,
-				CE3491E5151100AD0030B64C /* de */,
-				CE3491E7151100BB0030B64C /* fr */,
-				CE3491E8151100BB0030B64C /* hy */,
-				CE148034151100EC00CD5DAD /* it */,
-				CE148037151100FB00CD5DAD /* ru */,
-				CE1480391511010500CD5DAD /* uk */,
-				CE14803B1511011000CD5DAD /* zh_CN */,
-				CE5A5CA315A283C200C4E461 /* pt_BR */,
-			);
-			name = IgnoreListDialog.xib;
-			sourceTree = "<group>";
-		};
 		CE79638412536C94008D405B /* FairwareReminder.xib */ = {
 			isa = PBXVariantGroup;
 			children = (