2009-08-05 08:59:46 +00:00
|
|
|
/*
|
2015-01-03 21:30:57 +00:00
|
|
|
Copyright 2015 Hardcoded Software (http://www.hardcoded.net)
|
2009-08-05 08:59:46 +00:00
|
|
|
|
2015-01-03 21:33:16 +00:00
|
|
|
This software is licensed under the "GPLv3" License as described in the "LICENSE" file,
|
2009-08-05 08:59:46 +00:00
|
|
|
which should be included with this package. The terms are also available at
|
2015-01-03 21:33:16 +00:00
|
|
|
http://www.gnu.org/licenses/gpl-3.0.html
|
2009-08-05 08:59:46 +00:00
|
|
|
*/
|
|
|
|
|
2009-06-01 09:55:11 +00:00
|
|
|
#import "AppDelegate.h"
|
2011-09-23 13:14:16 +00:00
|
|
|
#import "ProgressController.h"
|
|
|
|
#import "Utils.h"
|
|
|
|
#import "ValueTransformers.h"
|
2009-11-02 15:16:34 +00:00
|
|
|
#import "DetailsPanel.h"
|
2010-02-05 15:51:00 +00:00
|
|
|
#import "DirectoryPanel.h"
|
2011-01-14 12:56:50 +00:00
|
|
|
#import "ResultWindow.h"
|
2009-06-01 09:55:11 +00:00
|
|
|
#import "Consts.h"
|
|
|
|
|
|
|
|
@implementation AppDelegate
|
2012-07-31 14:27:36 +00:00
|
|
|
+ (NSDictionary *)defaultPreferences
|
2009-06-01 09:55:11 +00:00
|
|
|
{
|
2012-07-31 14:27:36 +00:00
|
|
|
NSMutableDictionary *d = [NSMutableDictionary dictionaryWithDictionary:[super defaultPreferences]];
|
2009-06-01 09:55:11 +00:00
|
|
|
[d setObject:i2n(1) forKey:@"scanType"];
|
|
|
|
[d setObject:i2n(80) forKey:@"minMatchPercentage"];
|
|
|
|
[d setObject:i2n(30) forKey:@"smallFileThreshold"];
|
|
|
|
[d setObject:b2n(YES) forKey:@"wordWeighting"];
|
|
|
|
[d setObject:b2n(NO) forKey:@"matchSimilarWords"];
|
|
|
|
[d setObject:b2n(YES) forKey:@"ignoreSmallFiles"];
|
2012-07-31 14:27:36 +00:00
|
|
|
return d;
|
2009-06-01 09:55:11 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
- (id)init
|
|
|
|
{
|
|
|
|
self = [super init];
|
2011-04-12 11:22:29 +00:00
|
|
|
NSMutableIndexSet *contentsIndexes = [NSMutableIndexSet indexSet];
|
|
|
|
[contentsIndexes addIndex:1];
|
|
|
|
[contentsIndexes addIndex:2];
|
|
|
|
VTIsIntIn *vt = [[[VTIsIntIn alloc] initWithValues:contentsIndexes reverse:YES] autorelease];
|
2009-06-01 09:55:11 +00:00
|
|
|
[NSValueTransformer setValueTransformer:vt forName:@"vtScanTypeIsNotContent"];
|
|
|
|
_directoryPanel = nil;
|
|
|
|
return self;
|
|
|
|
}
|
|
|
|
|
2011-01-13 15:20:03 +00:00
|
|
|
- (NSString *)homepageURL
|
2009-06-01 09:55:11 +00:00
|
|
|
{
|
2011-01-13 15:20:03 +00:00
|
|
|
return @"http://www.hardcoded.net/dupeguru/";
|
2009-06-01 09:55:11 +00:00
|
|
|
}
|
|
|
|
|
2016-06-05 01:18:14 +00:00
|
|
|
- (void)setScanOptions
|
2011-01-14 12:56:50 +00:00
|
|
|
{
|
2016-06-05 01:18:14 +00:00
|
|
|
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
|
|
|
[model setScanType:n2i([ud objectForKey:@"scanType"])];
|
|
|
|
[model setMinMatchPercentage:n2i([ud objectForKey:@"minMatchPercentage"])];
|
|
|
|
[model setWordWeighting:n2b([ud objectForKey:@"wordWeighting"])];
|
|
|
|
[model setMixFileKind:n2b([ud objectForKey:@"mixFileKind"])];
|
|
|
|
[model setIgnoreHardlinkMatches:n2b([ud objectForKey:@"ignoreHardlinkMatches"])];
|
|
|
|
[model setMatchSimilarWords:n2b([ud objectForKey:@"matchSimilarWords"])];
|
|
|
|
int smallFileThreshold = [ud integerForKey:@"smallFileThreshold"]; // In KB
|
|
|
|
int sizeThreshold = [ud boolForKey:@"ignoreSmallFiles"] ? smallFileThreshold * 1024 : 0; // The py side wants bytes
|
|
|
|
[model setSizeThreshold:sizeThreshold];
|
2011-01-14 12:56:50 +00:00
|
|
|
}
|
2016-06-05 01:18:14 +00:00
|
|
|
|
|
|
|
- (void)initResultColumns:(ResultTable *)aTable
|
|
|
|
{
|
|
|
|
HSColumnDef defs[] = {
|
|
|
|
{@"marked", 26, 26, 26, YES, [NSButtonCell class]},
|
|
|
|
{@"name", 195, 16, 0, YES, nil},
|
|
|
|
{@"folder_path", 183, 16, 0, YES, nil},
|
|
|
|
{@"size", 63, 16, 0, YES, nil},
|
|
|
|
{@"extension", 40, 16, 0, YES, nil},
|
|
|
|
{@"mtime", 120, 16, 0, YES, nil},
|
|
|
|
{@"percentage", 60, 16, 0, YES, nil},
|
|
|
|
{@"words", 120, 16, 0, YES, nil},
|
|
|
|
{@"dupe_count", 80, 16, 0, YES, nil},
|
|
|
|
nil
|
|
|
|
};
|
|
|
|
[[aTable columns] initializeColumns:defs];
|
|
|
|
NSTableColumn *c = [[aTable view] tableColumnWithIdentifier:@"marked"];
|
|
|
|
[[c dataCell] setButtonType:NSSwitchButton];
|
|
|
|
[[c dataCell] setControlSize:NSSmallControlSize];
|
|
|
|
c = [[aTable view] tableColumnWithIdentifier:@"size"];
|
|
|
|
[[c dataCell] setAlignment:NSRightTextAlignment];
|
|
|
|
[[aTable columns] restoreColumns];
|
|
|
|
}
|
|
|
|
|
2009-06-01 09:55:11 +00:00
|
|
|
@end
|