From 6b30c88fba5288cacd56283d7f4c89c66d4d440f Mon Sep 17 00:00:00 2001 From: hsoft Date: Fri, 30 Oct 2009 12:56:05 +0000 Subject: [PATCH] dgse cocoa: extracted the pref pane from MainMenu.xib into Preferences.xib, Removed column menu items, which are now generated in the code. other little things. --HG-- extra : convert_revision : svn%3Ac306627e-7827-47d3-bdf0-9a457c9553a1/trunk%40230 --- base/cocoa/ResultWindow.h | 9 + base/cocoa/ResultWindow.m | 97 ++ images/folder32.png | Bin 2427 -> 2189 bytes se/cocoa/ResultWindow.h | 10 - se/cocoa/ResultWindow.m | 69 - se/cocoa/dupeguru.xcodeproj/project.pbxproj | 8 +- se/cocoa/py/gen.py | 1 + se/cocoa/xib/MainMenu.xib | 1675 +------------------ se/cocoa/xib/Preferences.xib | 1597 ++++++++++++++++++ 9 files changed, 1736 insertions(+), 1730 deletions(-) create mode 100644 se/cocoa/xib/Preferences.xib diff --git a/base/cocoa/ResultWindow.h b/base/cocoa/ResultWindow.h index 5b062a52..ffd28230 100644 --- a/base/cocoa/ResultWindow.h +++ b/base/cocoa/ResultWindow.h @@ -24,18 +24,25 @@ http://www.hardcoded.net/licenses/hs_license IBOutlet MatchesView *matches; IBOutlet NSSegmentedControl *pmSwitch; IBOutlet NSTextField *stats; + IBOutlet NSMenu *columnsMenu; BOOL _powerMode; BOOL _displayDelta; + NSMutableArray *_resultColumns; + NSWindowController *preferencesPanel; } /* Helpers */ +- (void)fillColumnsMenu; +- (NSTableColumn *)getColumnForIdentifier:(int)aIdentifier title:(NSString *)aTitle width:(int)aWidth refCol:(NSTableColumn *)aColumn; - (NSArray *)getColumnsOrder; - (NSDictionary *)getColumnsWidth; - (NSArray *)getSelected:(BOOL)aDupesOnly; - (NSArray *)getSelectedPaths:(BOOL)aDupesOnly; +- (void)initResultColumns; - (void)updatePySelection; - (void)performPySelection:(NSArray *)aIndexPaths; - (void)refreshStats; +- (void)restoreColumnsPosition:(NSArray *)aColumnsOrder widths:(NSDictionary *)aColumnsWidth; /* Actions */ - (IBAction)changeDelta:(id)sender; @@ -45,7 +52,9 @@ http://www.hardcoded.net/licenses/hs_license - (IBAction)expandAll:(id)sender; - (IBAction)exportToXHTML:(id)sender; - (IBAction)moveMarked:(id)sender; +- (IBAction)showPreferencesPanel:(id)sender; - (IBAction)switchSelected:(id)sender; +- (IBAction)toggleColumn:(id)sender; - (IBAction)togglePowerMarker:(id)sender; /* Notifications */ diff --git a/base/cocoa/ResultWindow.m b/base/cocoa/ResultWindow.m index 42be291a..e55c9976 100644 --- a/base/cocoa/ResultWindow.m +++ b/base/cocoa/ResultWindow.m @@ -51,6 +51,9 @@ http://www.hardcoded.net/licenses/hs_license - (void)awakeFromNib { [self window]; + preferencesPanel = [[NSWindowController alloc] initWithWindowNibName:@"Preferences"]; + [self initResultColumns]; + [self fillColumnsMenu]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(registrationRequired:) name:RegistrationRequired object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(jobCompleted:) name:JobCompletedNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(jobStarted:) name:JobStarted object:nil]; @@ -59,7 +62,42 @@ http://www.hardcoded.net/licenses/hs_license [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resultsUpdated:) name:ResultsUpdatedNotification object:nil]; } +- (void)dealloc +{ + [preferencesPanel release]; + [super dealloc]; +} + /* Helpers */ +- (void)fillColumnsMenu +{ + // The columns menu is supposed to be empty and initResultColumns must have been called + for (NSTableColumn *col in _resultColumns) + { + NSMenuItem *mi = [columnsMenu addItemWithTitle:[[col headerCell] stringValue] action:@selector(toggleColumn:) keyEquivalent:@""]; + [mi setTag:[[col identifier] integerValue]]; + [mi setTarget:self]; + if ([[matches tableColumns] containsObject:col]) + [mi setState:NSOnState]; + } + [columnsMenu addItem:[NSMenuItem separatorItem]]; + NSMenuItem *mi = [columnsMenu addItemWithTitle:@"Reset to Default" action:@selector(resetColumnsToDefault:) keyEquivalent:@""]; + [mi setTarget:self]; +} + +- (NSTableColumn *)getColumnForIdentifier:(int)aIdentifier title:(NSString *)aTitle width:(int)aWidth refCol:(NSTableColumn *)aColumn +{ + NSNumber *n = [NSNumber numberWithInt:aIdentifier]; + NSTableColumn *col = [[NSTableColumn alloc] initWithIdentifier:[n stringValue]]; + [col setWidth:aWidth]; + [col setEditable:NO]; + [[col dataCell] setFont:[[aColumn dataCell] font]]; + [[col headerCell] setStringValue:aTitle]; + [col setResizingMask:NSTableColumnUserResizingMask]; + [col setSortDescriptorPrototype:[[NSSortDescriptor alloc] initWithKey:[n stringValue] ascending:YES]]; + return col; +} + //Returns an array of identifiers, in order. - (NSArray *)getColumnsOrder { @@ -120,6 +158,40 @@ http://www.hardcoded.net/licenses/hs_license return r; } +- (void)initResultColumns +{ + // Virtual +} + +- (void)restoreColumnsPosition:(NSArray *)aColumnsOrder widths:(NSDictionary *)aColumnsWidth +{ + NSTableColumn *col; + NSString *colId; + NSNumber *width; + NSMenuItem *mi; + //Remove all columns + NSEnumerator *e = [[columnsMenu itemArray] objectEnumerator]; + while (mi = [e nextObject]) + { + if ([mi state] == NSOnState) + [self toggleColumn:mi]; + } + //Add columns and set widths + e = [aColumnsOrder objectEnumerator]; + while (colId = [e nextObject]) + { + if (![colId isEqual:@"mark"]) + { + col = [_resultColumns objectAtIndex:[colId intValue]]; + width = [aColumnsWidth objectForKey:[col identifier]]; + mi = [columnsMenu itemWithTag:[colId intValue]]; + if (width) + [col setWidth:[width floatValue]]; + [self toggleColumn:mi]; + } + } +} + - (void)updatePySelection { NSArray *selection; @@ -227,6 +299,11 @@ http://www.hardcoded.net/licenses/hs_license } } +- (IBAction)showPreferencesPanel:(id)sender +{ + [preferencesPanel showWindow:sender]; +} + - (IBAction)switchSelected:(id)sender { // It might look like a complicated way to get the length of the current dupe list on the py side @@ -244,6 +321,26 @@ http://www.hardcoded.net/licenses/hs_license [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; } +- (IBAction)toggleColumn:(id)sender +{ + NSMenuItem *mi = sender; + NSString *colId = [NSString stringWithFormat:@"%d",[mi tag]]; + NSTableColumn *col = [matches tableColumnWithIdentifier:colId]; + if (col == nil) + { + //Add Column + col = [_resultColumns objectAtIndex:[mi tag]]; + [matches addTableColumn:col]; + [mi setState:NSOnState]; + } + else + { + //Remove column + [matches removeTableColumn:col]; + [mi setState:NSOffState]; + } +} + - (IBAction)togglePowerMarker:(id)sender { if ([pmSwitch selectedSegment] == 1) diff --git a/images/folder32.png b/images/folder32.png index 85070da7a8a18b27d0c1b9e20daf2c55f4360102..d10341f9010091db419361f2cc48d75f774aa1cd 100755 GIT binary patch delta 2177 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 0) @@ -198,26 +191,6 @@ http://www.hardcoded.net/licenses/hs_license } -- (IBAction)toggleColumn:(id)sender -{ - NSMenuItem *mi = sender; - NSString *colId = [NSString stringWithFormat:@"%d",[mi tag]]; - NSTableColumn *col = [matches tableColumnWithIdentifier:colId]; - if (col == nil) - { - //Add Column - col = [_resultColumns objectAtIndex:[mi tag]]; - [matches addTableColumn:col]; - [mi setState:NSOnState]; - } - else - { - //Remove column - [matches removeTableColumn:col]; - [mi setState:NSOffState]; - } -} - - (IBAction)toggleDelta:(id)sender { if ([deltaSwitch selectedSegment] == 1) @@ -238,19 +211,6 @@ http://www.hardcoded.net/licenses/hs_license } /* Public */ -- (NSTableColumn *)getColumnForIdentifier:(int)aIdentifier title:(NSString *)aTitle width:(int)aWidth refCol:(NSTableColumn *)aColumn -{ - NSNumber *n = [NSNumber numberWithInt:aIdentifier]; - NSTableColumn *col = [[NSTableColumn alloc] initWithIdentifier:[n stringValue]]; - [col setWidth:aWidth]; - [col setEditable:NO]; - [[col dataCell] setFont:[[aColumn dataCell] font]]; - [[col headerCell] setStringValue:aTitle]; - [col setResizingMask:NSTableColumnUserResizingMask]; - [col setSortDescriptorPrototype:[[NSSortDescriptor alloc] initWithKey:[n stringValue] ascending:YES]]; - return col; -} - - (void)initResultColumns { NSTableColumn *refCol = [matches tableColumnWithIdentifier:@"0"]; @@ -266,35 +226,6 @@ http://www.hardcoded.net/licenses/hs_license [_resultColumns addObject:[self getColumnForIdentifier:8 title:@"Dupe Count" width:80 refCol:refCol]]; } -- (void)restoreColumnsPosition:(NSArray *)aColumnsOrder widths:(NSDictionary *)aColumnsWidth -{ - NSTableColumn *col; - NSString *colId; - NSNumber *width; - NSMenuItem *mi; - //Remove all columns - NSEnumerator *e = [[columnsMenu itemArray] objectEnumerator]; - while (mi = [e nextObject]) - { - if ([mi state] == NSOnState) - [self toggleColumn:mi]; - } - //Add columns and set widths - e = [aColumnsOrder objectEnumerator]; - while (colId = [e nextObject]) - { - if (![colId isEqual:@"mark"]) - { - col = [_resultColumns objectAtIndex:[colId intValue]]; - width = [aColumnsWidth objectForKey:[col identifier]]; - mi = [columnsMenu itemWithTag:[colId intValue]]; - if (width) - [col setWidth:[width floatValue]]; - [self toggleColumn:mi]; - } - } -} - /* Delegate */ - (void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item { diff --git a/se/cocoa/dupeguru.xcodeproj/project.pbxproj b/se/cocoa/dupeguru.xcodeproj/project.pbxproj index 650e1593..a30c8184 100644 --- a/se/cocoa/dupeguru.xcodeproj/project.pbxproj +++ b/se/cocoa/dupeguru.xcodeproj/project.pbxproj @@ -18,6 +18,7 @@ CE68EE6809ABC48000971085 /* DirectoryPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE68EE6609ABC48000971085 /* DirectoryPanel.m */; }; CE6E0DFE1054E9EF008D9390 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = CE6E0DFD1054E9EF008D9390 /* dsa_pub.pem */; }; CE848A1909DD85810004CB44 /* Consts.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE848A1809DD85810004CB44 /* Consts.h */; }; + CEAC6811109B0B7E00B43C85 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEAC6810109B0B7E00B43C85 /* Preferences.xib */; }; CECA899C09DB132E00A3D774 /* DetailsPanel.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CECA899A09DB132E00A3D774 /* DetailsPanel.h */; }; CECA899D09DB132E00A3D774 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CECA899B09DB132E00A3D774 /* DetailsPanel.m */; }; CEDD92DA0FDD01640031C7B7 /* BRSingleLineFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDD92D70FDD01640031C7B7 /* BRSingleLineFormatter.m */; }; @@ -30,7 +31,6 @@ CEFC294609C89E3D00D9F998 /* folder32.png in Resources */ = {isa = PBXBuildFile; fileRef = CEFC294509C89E3D00D9F998 /* folder32.png */; }; CEFC295509C89FF200D9F998 /* details32.png in Resources */ = {isa = PBXBuildFile; fileRef = CEFC295309C89FF200D9F998 /* details32.png */; }; CEFC295609C89FF200D9F998 /* preferences32.png in Resources */ = {isa = PBXBuildFile; fileRef = CEFC295409C89FF200D9F998 /* preferences32.png */; }; - CEFC295E09C8A0B000D9F998 /* dgse_logo_32.png in Resources */ = {isa = PBXBuildFile; fileRef = CEFC295D09C8A0B000D9F998 /* dgse_logo_32.png */; }; CEFC7F9E0FC9517500CD5728 /* Dialogs.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F8B0FC9517500CD5728 /* Dialogs.m */; }; CEFC7F9F0FC9517500CD5728 /* HSErrorReportWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F8D0FC9517500CD5728 /* HSErrorReportWindow.m */; }; CEFC7FA00FC9517500CD5728 /* Outline.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F8F0FC9517500CD5728 /* Outline.m */; }; @@ -82,6 +82,7 @@ CE68EE6609ABC48000971085 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = DirectoryPanel.m; sourceTree = SOURCE_ROOT; }; CE6E0DFD1054E9EF008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = dgbase/dsa_pub.pem; sourceTree = ""; }; CE848A1809DD85810004CB44 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Consts.h; sourceTree = ""; }; + CEAC6810109B0B7E00B43C85 /* Preferences.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Preferences.xib; path = xib/Preferences.xib; sourceTree = ""; }; CECA899A09DB132E00A3D774 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = DetailsPanel.h; sourceTree = ""; }; CECA899B09DB132E00A3D774 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = DetailsPanel.m; sourceTree = ""; }; CEDD92D60FDD01640031C7B7 /* BRSingleLineFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BRSingleLineFormatter.h; path = cocoalib/brsinglelineformatter/BRSingleLineFormatter.h; sourceTree = SOURCE_ROOT; }; @@ -97,7 +98,6 @@ CEFC294509C89E3D00D9F998 /* folder32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = folder32.png; path = images/folder32.png; sourceTree = SOURCE_ROOT; }; CEFC295309C89FF200D9F998 /* details32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = details32.png; path = images/details32.png; sourceTree = SOURCE_ROOT; }; CEFC295409C89FF200D9F998 /* preferences32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = preferences32.png; path = images/preferences32.png; sourceTree = SOURCE_ROOT; }; - CEFC295D09C8A0B000D9F998 /* dgse_logo_32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = dgse_logo_32.png; path = images/dgse_logo_32.png; sourceTree = ""; }; CEFC7F8A0FC9517500CD5728 /* Dialogs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Dialogs.h; path = cocoalib/Dialogs.h; sourceTree = SOURCE_ROOT; }; CEFC7F8B0FC9517500CD5728 /* Dialogs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Dialogs.m; path = cocoalib/Dialogs.m; sourceTree = SOURCE_ROOT; }; CEFC7F8C0FC9517500CD5728 /* HSErrorReportWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSErrorReportWindow.h; path = cocoalib/HSErrorReportWindow.h; sourceTree = SOURCE_ROOT; }; @@ -241,6 +241,7 @@ CEEFC0CA10943849001F3A39 /* xib */ = { isa = PBXGroup; children = ( + CEAC6810109B0B7E00B43C85 /* Preferences.xib */, CEEFC0EE10944EDD001F3A39 /* MainMenu.xib */, CEEFC0F710945D9F001F3A39 /* DirectoryPanel.xib */, CEEFC0FA10945E37001F3A39 /* DetailsPanel.xib */, @@ -251,7 +252,6 @@ CEFC294309C89E0000D9F998 /* images */ = { isa = PBXGroup; children = ( - CEFC295D09C8A0B000D9F998 /* dgse_logo_32.png */, CEFC295309C89FF200D9F998 /* details32.png */, CEFC295409C89FF200D9F998 /* preferences32.png */, CEFC294509C89E3D00D9F998 /* folder32.png */, @@ -360,7 +360,6 @@ CEFC294609C89E3D00D9F998 /* folder32.png in Resources */, CEFC295509C89FF200D9F998 /* details32.png in Resources */, CEFC295609C89FF200D9F998 /* preferences32.png in Resources */, - CEFC295E09C8A0B000D9F998 /* dgse_logo_32.png in Resources */, CEFC7FAD0FC9518A00CD5728 /* ErrorReportWindow.xib in Resources */, CEFC7FAE0FC9518A00CD5728 /* progress.nib in Resources */, CEFC7FAF0FC9518A00CD5728 /* registration.nib in Resources */, @@ -368,6 +367,7 @@ CEEFC0EF10944EDD001F3A39 /* MainMenu.xib in Resources */, CEEFC0F810945D9F001F3A39 /* DirectoryPanel.xib in Resources */, CEEFC0FB10945E37001F3A39 /* DetailsPanel.xib in Resources */, + CEAC6811109B0B7E00B43C85 /* Preferences.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/se/cocoa/py/gen.py b/se/cocoa/py/gen.py index d4991df3..f8bc07c4 100644 --- a/se/cocoa/py/gen.py +++ b/se/cocoa/py/gen.py @@ -16,4 +16,5 @@ if op.exists('build'): if op.exists('dist'): shutil.rmtree('dist') +os.environ['MACOSX_DEPLOYMENT_TARGET'] = '10.5' print_and_do('python -u setup.py py2app') \ No newline at end of file diff --git a/se/cocoa/xib/MainMenu.xib b/se/cocoa/xib/MainMenu.xib index 55abdcc3..0a6b2538 100644 --- a/se/cocoa/xib/MainMenu.xib +++ b/se/cocoa/xib/MainMenu.xib @@ -11,9 +11,8 @@ 740 - - + com.apple.InterfaceBuilder.CocoaPlugin @@ -56,11 +55,9 @@ Power Marker - + 256 {{7, 14}, {67, 24}} - - YES 67239424 @@ -108,7 +105,7 @@ NSImage - dgse_logo_32 + NSApplicationIcon @@ -150,11 +147,9 @@ Filter - + 258 {{0, 14}, {81, 22}} - - YES 343014976 @@ -169,7 +164,7 @@ YES 1 - + 6 System textBackgroundColor @@ -286,11 +281,9 @@ Action - + 256 {{0, 14}, {58, 26}} - - YES -2076049856 @@ -492,11 +485,9 @@ Delta Values - + 256 {{4, 14}, {67, 24}} - - YES 67239424 @@ -705,7 +696,7 @@ 1211912703 2 - + NSSwitch @@ -935,7 +926,7 @@ Marked: 0 files, 0 B. Total: 0 files, 0 B. - + 6 System controlColor @@ -1342,123 +1333,7 @@ submenuAction: Columns - - - - File Name - - 1048576 - 2147483647 - 1 - - - - - - Directory - - 1048576 - 2147483647 - 1 - - - 1 - - - - Size - - 1048576 - 2147483647 - 1 - - - 2 - - - - Kind - - 1048576 - 2147483647 - - - 3 - - - - Creation - - 1048576 - 2147483647 - - - 4 - - - - Modification - - 1048576 - 2147483647 - - - 5 - - - - Match % - - 1048576 - 2147483647 - 1 - - - 6 - - - - Words Used - - 1048576 - 2147483647 - - - 7 - - - - Dupe Count - - 1048576 - 2147483647 - - - 8 - - - - YES - YES - IA - - 1048576 - 2147483647 - - - -1 - - - - Reset to Default - - 1048576 - 2147483647 - - - -1 - - + @@ -1627,580 +1502,9 @@ ResultWindow - - YES - RecentDirectories - - 3 - 2 - {{92, 276}, {352, 326}} - 1886912512 - dupeGuru Preferences - - NSWindow - - - View - - {1.79769e+308, 1.79769e+308} - {213, 107} - - - 256 - - - - 292 - {{120, 247}, {181, 21}} - - YES - - 67239424 - 0 - - - - - Helvetica - 12 - 16 - - - 100 - 1 - 80 - 0.0 - 0 - 1 - NO - NO - - - - - 292 - {{122, 230}, {80, 13}} - - YES - - 67239424 - 272629760 - More results - - LucidaGrande - 10 - 2843 - - - - - - - - - 289 - {{219, 230}, {80, 13}} - - YES - - 67239424 - 71303168 - Less results - - - - - - - - - 292 - {{17, 252}, {100, 14}} - - YES - - 67239424 - 272629760 - Filter hardness: - - - - - - - - - 292 - {{20, 293}, {85, 13}} - - YES - - 67239424 - 272629760 - Scan type: - - - - - - - - - 292 - {{119, 282}, {216, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - Filename - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - Content - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{18, 206}, {214, 18}} - - YES - - 67239424 - 0 - Word weighting - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{18, 166}, {214, 18}} - - YES - - 67239424 - 0 - Can mix file kind - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{304, 252}, {31, 14}} - - YES - - 67239424 - -1874853888 - - - - - - - 0 - - - . - - , - -0 - 0 - - - 0 - -0 - - - - - - - - NaN - - - - 0 - 0 - YES - NO - 1 - AAAAAAAAAAAAAAAAAAAAAA - - - - . - , - NO - YES - YES - - - - - - - - - 256 - {{190, 12}, {148, 32}} - - YES - - 67239424 - 134217728 - Reset to Defaults - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{18, 186}, {214, 18}} - - YES - - 67239424 - 0 - Match similar words - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 292 - {{20, 67}, {85, 13}} - - YES - - 67239424 - 272629760 - Copy and Move: - - - - - - - - - 292 - {{110, 56}, {216, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - Right in destination - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - Recreate relative path - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Recreate absolute path - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{18, 86}, {283, 18}} - - YES - - 67239424 - 0 - Check for update on startup - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{18, 146}, {228, 18}} - - YES - - 67239424 - 0 - Use regular expressions when filtering - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{18, 126}, {242, 18}} - - YES - - 67239424 - 0 - Remove empty folders on delete or move - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{18, 106}, {152, 18}} - - YES - - 67239424 - 0 - Ignore files smaller than - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 268 - {{176, 104}, {59, 22}} - - YES - - -1804468671 - -1874852864 - - - - - - - - - - - - #0 - - - - #0 - #0 - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - NO - - - YES - - - 6 - System - textColor - - - - - - - 292 - {{243, 106}, {23, 17}} - - YES - - 67239424 - 272629760 - KB - - - - - - - - {352, 326} - - - {{0, 0}, {1440, 878}} - {213, 129} - {1.79769e+308, 1.79769e+308} - PyDupeGuru @@ -2449,66 +1753,6 @@ 503 - - - makeKeyAndOrderFront: - - - - 543 - - - - value: values.minMatchPercentage - - - - - - value: values.minMatchPercentage - value - values.minMatchPercentage - 2 - - - 549 - - - - selectedIndex: values.scanType - - - - - - selectedIndex: values.scanType - selectedIndex - values.scanType - 2 - - - 551 - - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsNotContent - - 2 - - - 554 - toggleDetailsPanel: @@ -2581,122 +1825,6 @@ 616 - - - toggleColumn: - - - - 627 - - - - toggleColumn: - - - - 628 - - - - toggleColumn: - - - - 629 - - - - toggleColumn: - - - - 630 - - - - toggleColumn: - - - - 631 - - - - toggleColumn: - - - - 632 - - - - toggleColumn: - - - - 633 - - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsNotContent - - 2 - - - 640 - - - - value: values.wordWeighting - - - - - - value: values.wordWeighting - value - values.wordWeighting - 2 - - - 642 - - - - toggleColumn: - - - - 647 - - - - value: values.mixFileKind - - - - - - value: values.mixFileKind - value - values.mixFileKind - 2 - - - 656 - openSelected: @@ -2721,14 +1849,6 @@ 663 - - - toggleColumn: - - - - 706 - openSelected: @@ -2745,22 +1865,6 @@ 711 - - - value: values.minMatchPercentage - - - - - - value: values.minMatchPercentage - value - values.minMatchPercentage - 2 - - - 713 - switchSelected: @@ -2769,14 +1873,6 @@ 716 - - - preferencesPanel - - - - 718 - deleteMarked: @@ -2881,42 +1977,6 @@ 764 - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsNotContent - - 2 - - - 774 - - - - value: values.matchSimilarWords - - - - - - value: values.matchSimilarWords - value - values.matchSimilarWords - 2 - - - 775 - removeSelected: @@ -2941,22 +2001,6 @@ 883 - - - selectedIndex: values.recreatePathType - - - - - - selectedIndex: values.recreatePathType - selectedIndex - values.recreatePathType - 2 - - - 914 - ignoreSelected: @@ -2997,14 +2041,6 @@ 930 - - - revertToInitialValues: - - - - 932 - renameSelected: @@ -3037,14 +2073,6 @@ 941 - - - resetColumnsToDefault: - - - - 945 - columnsMenu @@ -3069,22 +2097,6 @@ 951 - - - value: values.SUCheckAtStartup - - - - - - value: values.SUCheckAtStartup - value - values.SUCheckAtStartup - 2 - - - 953 - changePowerMarker: @@ -3181,22 +2193,6 @@ 1024 - - - value: values.useRegexpFilter - - - - - - value: values.useRegexpFilter - value - values.useRegexpFilter - 2 - - - 1026 - filterField @@ -3213,62 +2209,6 @@ 1031 - - - nextKeyView - - - - 1062 - - - - value: values.removeEmptyFolders - - - - - - value: values.removeEmptyFolders - value - values.removeEmptyFolders - 2 - - - 1072 - - - - value: values.ignoreSmallFiles - - - - - - value: values.ignoreSmallFiles - value - values.ignoreSmallFiles - 2 - - - 1111 - - - - value: values.smallFileThreshold - - - - - - value: values.smallFileThreshold - value - values.smallFileThreshold - 2 - - - 1113 - toggleDirectories: @@ -3301,6 +2241,14 @@ 1169 + + + showPreferencesPanel: + + + + 1174 + @@ -3731,76 +2679,9 @@ 619 - - - - - - - - - - - - - + - - 620 - - - - - 621 - - - - - 622 - - - - - 623 - - - - - 624 - - - - - 625 - - - - - 626 - - - - - 646 - - - - - 705 - - - - - 943 - - - - - 944 - - - 959 @@ -3903,205 +2784,12 @@ ResultWindow - - 468 - - - Shared Defaults - 497 RecentDirectoriesController - - 523 - - - - - - preferences - - - 524 - - - - - - - - - - - - - - - - - - - - - - - - - - 531 - - - - - - - - 532 - - - - - - - - 533 - - - - - - - - 534 - - - - - - - - 535 - - - - - - - - 536 - - - - - - - - 635 - - - - - - - - 649 - - - - - - - - 712 - - - - - - - - 750 - - - - - - - - 772 - - - - - - - - 904 - - - - - - - - 905 - - - - - - - - 952 - - - - - - - - 1025 - - - - - - - - 1068 - - - - - - - - 1104 - - - - - - - - 1106 - - - - - - - - 1109 - - - - - - 613 @@ -4169,113 +2857,6 @@ - - 1117 - - - - - 1118 - - - - - 1119 - - - - - 1120 - - - - - 1121 - - - - - 1122 - - - - - - - - 1123 - - - - - 1124 - - - - - 1125 - - - - - - - - 1126 - - - - - 1127 - - - - - 1128 - - - - - 1129 - - - - - - - - 1130 - - - - - 1131 - - - - - 1132 - - - - - 1133 - - - - - 1134 - - - - - - - - 1135 - - - 1140 @@ -4296,60 +2877,6 @@ - - 714 - - - - - 1108 - - - - - 537 - - - - - - - - - 539 - - - - - 538 - - - - - 906 - - - - - - - - - - 913 - - - - - 909 - - - - - 908 - - - 1144 @@ -4607,47 +3134,15 @@ com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -4739,43 +3234,16 @@ com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{88, 519}, {352, 326}} - com.apple.InterfaceBuilder.CocoaPlugin - {{88, 519}, {352, 326}} - - - {213, 107} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{152, 575}, {221, 193}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -4804,28 +3272,9 @@ com.apple.InterfaceBuilder.CocoaPlugin + {{355, 762}, {64, 6}} com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - {{182, 609}, {331, 133}} com.apple.InterfaceBuilder.CocoaPlugin @@ -4833,18 +3282,12 @@ com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -4874,28 +3317,12 @@ com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -4922,17 +3349,11 @@ com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -4958,7 +3379,7 @@ - 1173 + 1174 @@ -5155,17 +3576,15 @@ id id id - id id id id id - - NSMenu - NSSearchField - NSWindow - + + filterField + NSSearchField + IBProjectSource ResultWindow.h @@ -5214,11 +3633,13 @@ id id id + id id id id + NSMenu NSSegmentedControl MatchesView NSSegmentedControl @@ -5320,14 +3741,6 @@ AppKit.framework/Headers/NSControl.h - - NSController - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSController.h - - NSFormatter NSObject @@ -5368,14 +3781,6 @@ AppKit.framework/Headers/NSMovieView.h - - NSNumberFormatter - NSFormatter - - IBFrameworkSource - Foundation.framework/Headers/NSNumberFormatter.h - - NSObject @@ -5718,22 +4123,6 @@ AppKit.framework/Headers/NSSegmentedControl.h - - NSSlider - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSSlider.h - - - - NSSliderCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSSliderCell.h - - NSTableColumn NSObject @@ -5792,14 +4181,6 @@ NSObject - - NSUserDefaultsController - NSController - - IBFrameworkSource - AppKit.framework/Headers/NSUserDefaultsController.h - - NSView diff --git a/se/cocoa/xib/Preferences.xib b/se/cocoa/xib/Preferences.xib new file mode 100644 index 00000000..4418101a --- /dev/null +++ b/se/cocoa/xib/Preferences.xib @@ -0,0 +1,1597 @@ + + + + 1060 + 10B504 + 740 + 1038.2 + 437.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 740 + + + YES + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + NSWindowController + + + FirstResponder + + + NSApplication + + + YES + + + 3 + 2 + {{92, 276}, {352, 326}} + 1886912512 + dupeGuru Preferences + + NSWindow + + + View + + {1.79769e+308, 1.79769e+308} + {213, 107} + + + 256 + + YES + + + 292 + {{120, 247}, {181, 21}} + + YES + + 67239424 + 0 + + + + + Helvetica + 12 + 16 + + + 100 + 1 + 80 + 0.0 + 0 + 1 + NO + NO + + + + + 292 + {{122, 230}, {80, 13}} + + YES + + 67239424 + 272629760 + More results + + LucidaGrande + 10 + 2843 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 289 + {{219, 230}, {80, 13}} + + YES + + 67239424 + 71303168 + Less results + + + + + + + + + 292 + {{17, 252}, {100, 14}} + + YES + + 67239424 + 272629760 + Filter hardness: + + LucidaGrande + 11 + 3100 + + + + + + + + + 292 + {{20, 293}, {85, 13}} + + YES + + 67239424 + 272629760 + Scan type: + + + + + + + + + 292 + {{119, 282}, {216, 26}} + + YES + + -2076049856 + 2048 + + LucidaGrande + 13 + 1044 + + + 109199615 + 1 + + + + + + 400 + 75 + + + Filename + + 1048576 + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + + OtherViews + + + YES + + + + Content + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + 3 + YES + YES + 1 + + + + + 256 + {{18, 206}, {214, 18}} + + YES + + 67239424 + 0 + Word weighting + + + 1211912703 + 2 + + NSSwitch + + + + 200 + 25 + + + + + 256 + {{18, 166}, {214, 18}} + + YES + + 67239424 + 0 + Can mix file kind + + + 1211912703 + 2 + + + + 200 + 25 + + + + + 256 + {{304, 252}, {31, 14}} + + YES + + 67239424 + -1874853888 + + + + + YES + + YES + allowsFloats + attributedStringForZero + decimalSeparator + formatterBehavior + groupingSeparator + negativeFormat + positiveFormat + usesGroupingSeparator + + + YES + + + 0 + + YES + + + YES + + + + . + + , + -0 + 0 + + + + 0 + -0 + + + + + + + + NaN + + + + 0 + 0 + YES + NO + 1 + AAAAAAAAAAAAAAAAAAAAAA + + + + . + , + NO + YES + YES + + + + + + + + + 256 + {{190, 12}, {148, 32}} + + YES + + 67239424 + 134217728 + Reset to Defaults + + + -2038284033 + 1 + + + + + + 200 + 25 + + + + + 256 + {{18, 186}, {214, 18}} + + YES + + 67239424 + 0 + Match similar words + + + 1211912703 + 2 + + + + 200 + 25 + + + + + 292 + {{20, 67}, {85, 13}} + + YES + + 67239424 + 272629760 + Copy and Move: + + + + + + + + + 292 + {{110, 56}, {216, 26}} + + YES + + -2076049856 + 2048 + + + 109199615 + 1 + + + + + + 400 + 75 + + + Right in destination + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + + OtherViews + + + YES + + + + Recreate relative path + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Recreate absolute path + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + 3 + YES + YES + 1 + + + + + 256 + {{18, 86}, {283, 18}} + + YES + + 67239424 + 0 + Check for update on startup + + + 1211912703 + 2 + + + + 200 + 25 + + + + + 256 + {{18, 146}, {228, 18}} + + YES + + 67239424 + 0 + Use regular expressions when filtering + + + 1211912703 + 2 + + + + 200 + 25 + + + + + 256 + {{18, 126}, {242, 18}} + + YES + + 67239424 + 0 + Remove empty folders on delete or move + + + 1211912703 + 2 + + + + 200 + 25 + + + + + 256 + {{18, 106}, {152, 18}} + + YES + + 67239424 + 0 + Ignore files smaller than + + + 1211912703 + 2 + + + + 200 + 25 + + + + + 268 + {{176, 104}, {59, 22}} + + YES + + -1804468671 + -1874852864 + + + + + YES + + YES + allowsFloats + formatterBehavior + locale + maximumFractionDigits + numberStyle + positiveFormat + roundingIncrement + usesGroupingSeparator + + + YES + + + + + + + + #0 + + + + + #0 + #0 + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + NO + + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + + + + + + 292 + {{243, 106}, {23, 17}} + + YES + + 67239424 + 272629760 + KB + + + + + + + + {352, 326} + + + {{0, 0}, {1440, 878}} + {213, 129} + {1.79769e+308, 1.79769e+308} + + + + + YES + + + revertToInitialValues: + + + + 101 + + + + value: values.matchSimilarWords + + + + + + value: values.matchSimilarWords + value + values.matchSimilarWords + 2 + + + 102 + + + + value: values.minMatchPercentage + + + + + + value: values.minMatchPercentage + value + values.minMatchPercentage + 2 + + + 103 + + + + enabled: values.scanType + + + + + + enabled: values.scanType + enabled + values.scanType + + NSValueTransformerName + vtScanTypeIsNotContent + + 2 + + + 104 + + + + enabled: values.scanType + + + + + + enabled: values.scanType + enabled + values.scanType + + NSValueTransformerName + vtScanTypeIsNotContent + + 2 + + + 105 + + + + nextKeyView + + + + 106 + + + + value: values.minMatchPercentage + + + + + + value: values.minMatchPercentage + value + values.minMatchPercentage + 2 + + + 107 + + + + value: values.wordWeighting + + + + + + value: values.wordWeighting + value + values.wordWeighting + 2 + + + 108 + + + + value: values.mixFileKind + + + + + + value: values.mixFileKind + value + values.mixFileKind + 2 + + + 109 + + + + value: values.ignoreSmallFiles + + + + + + value: values.ignoreSmallFiles + value + values.ignoreSmallFiles + 2 + + + 110 + + + + value: values.SUCheckAtStartup + + + + + + value: values.SUCheckAtStartup + value + values.SUCheckAtStartup + 2 + + + 111 + + + + value: values.smallFileThreshold + + + + + + value: values.smallFileThreshold + value + values.smallFileThreshold + 2 + + + 112 + + + + value: values.removeEmptyFolders + + + + + + value: values.removeEmptyFolders + value + values.removeEmptyFolders + 2 + + + 113 + + + + value: values.useRegexpFilter + + + + + + value: values.useRegexpFilter + value + values.useRegexpFilter + 2 + + + 114 + + + + selectedIndex: values.scanType + + + + + + selectedIndex: values.scanType + selectedIndex + values.scanType + 2 + + + 115 + + + + selectedIndex: values.recreatePathType + + + + + + selectedIndex: values.recreatePathType + selectedIndex + values.recreatePathType + 2 + + + 116 + + + + enabled: values.scanType + + + + + + enabled: values.scanType + enabled + values.scanType + + NSValueTransformerName + vtScanTypeIsNotContent + + 2 + + + 117 + + + + window + + + + 118 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 51 + + + Shared Defaults + + + 52 + + + YES + + + + preferences + + + 53 + + + YES + + + + + + + + + + + + + + + + + + + + + + + + 54 + + + YES + + + + + + 55 + + + YES + + + + + + 56 + + + YES + + + + + + 57 + + + YES + + + + + + 58 + + + YES + + + + + + 59 + + + YES + + + + + + 60 + + + YES + + + + + + 61 + + + YES + + + + + + 62 + + + YES + + + + + + 63 + + + YES + + + + + + 64 + + + YES + + + + + + 65 + + + YES + + + + + + 66 + + + YES + + + + + + 67 + + + YES + + + + + + 68 + + + YES + + + + + + 69 + + + YES + + + + + + 70 + + + YES + + + + + + 71 + + + YES + + + + + + 72 + + + YES + + + + + + 73 + + + + + 74 + + + + + 75 + + + + + 76 + + + + + 77 + + + + + 78 + + + YES + + + + + + 79 + + + YES + + + + + + + 80 + + + + + 81 + + + + + 82 + + + + + 83 + + + + + 84 + + + YES + + + + + + 85 + + + + + 86 + + + + + 87 + + + + + 88 + + + + + 89 + + + YES + + + + + + 90 + + + YES + + + + + + + + 91 + + + + + 92 + + + + + 93 + + + + + 94 + + + + + 95 + + + + + 96 + + + + + 97 + + + + + 98 + + + YES + + + + + + 99 + + + + + 100 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 100.IBPluginDependency + 51.IBPluginDependency + 51.ImportedFromIB2 + 52.IBEditorWindowLastContentRect + 52.IBPluginDependency + 52.IBWindowTemplateEditedContentRect + 52.ImportedFromIB2 + 52.windowTemplate.hasMinSize + 52.windowTemplate.minSize + 53.IBPluginDependency + 53.ImportedFromIB2 + 54.IBPluginDependency + 54.ImportedFromIB2 + 55.IBPluginDependency + 55.ImportedFromIB2 + 56.IBPluginDependency + 56.ImportedFromIB2 + 57.IBPluginDependency + 57.ImportedFromIB2 + 58.IBPluginDependency + 58.ImportedFromIB2 + 59.IBPluginDependency + 59.ImportedFromIB2 + 60.IBPluginDependency + 60.ImportedFromIB2 + 61.IBPluginDependency + 61.ImportedFromIB2 + 62.IBPluginDependency + 62.ImportedFromIB2 + 63.IBPluginDependency + 63.ImportedFromIB2 + 64.IBPluginDependency + 64.ImportedFromIB2 + 65.IBPluginDependency + 65.ImportedFromIB2 + 66.IBPluginDependency + 66.ImportedFromIB2 + 67.IBPluginDependency + 67.ImportedFromIB2 + 68.IBPluginDependency + 68.ImportedFromIB2 + 69.IBPluginDependency + 69.ImportedFromIB2 + 70.IBPluginDependency + 70.ImportedFromIB2 + 71.IBPluginDependency + 71.ImportedFromIB2 + 72.IBPluginDependency + 72.ImportedFromIB2 + 73.IBPluginDependency + 74.IBPluginDependency + 75.IBPluginDependency + 76.IBPluginDependency + 77.IBPluginDependency + 78.IBPluginDependency + 79.IBPluginDependency + 79.ImportedFromIB2 + 80.IBPluginDependency + 80.ImportedFromIB2 + 81.IBPluginDependency + 81.ImportedFromIB2 + 82.IBPluginDependency + 83.IBPluginDependency + 84.IBPluginDependency + 85.IBPluginDependency + 85.ImportedFromIB2 + 86.IBPluginDependency + 87.IBPluginDependency + 88.IBPluginDependency + 89.IBPluginDependency + 90.IBPluginDependency + 90.ImportedFromIB2 + 91.IBPluginDependency + 91.ImportedFromIB2 + 92.IBPluginDependency + 92.ImportedFromIB2 + 93.IBPluginDependency + 93.ImportedFromIB2 + 94.IBPluginDependency + 95.IBPluginDependency + 96.IBPluginDependency + 97.IBPluginDependency + 98.IBPluginDependency + 99.IBNumberFormatterLocalizesFormatMetadataKey + 99.IBPluginDependency + 99.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + {{88, 519}, {352, 326}} + com.apple.InterfaceBuilder.CocoaPlugin + {{88, 519}, {352, 326}} + + + {213, 107} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + + YES + + + + + YES + + + YES + + + + 118 + + + 0 + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + + 3 + +