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"
|
|
|
|
#import "ProgressController.h"
|
|
|
|
#import "Utils.h"
|
2016-06-05 01:18:14 +00:00
|
|
|
#import "Dialogs.h"
|
2009-06-01 09:55:11 +00:00
|
|
|
#import "ValueTransformers.h"
|
|
|
|
#import "Consts.h"
|
2012-07-29 15:57:46 +00:00
|
|
|
#import "DetailsPanel.h"
|
2011-01-14 12:56:50 +00:00
|
|
|
#import "ResultWindow.h"
|
2009-06-01 09:55:11 +00:00
|
|
|
|
|
|
|
@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]];
|
2011-04-21 15:17:19 +00:00
|
|
|
[d setObject:i2n(0) forKey:@"scanType"];
|
|
|
|
[d setObject:i2n(95) forKey:@"minMatchPercentage"];
|
|
|
|
[d setObject:b2n(NO) forKey:@"matchScaled"];
|
2012-07-31 14:27:36 +00:00
|
|
|
return d;
|
2009-06-01 09:55:11 +00:00
|
|
|
}
|
|
|
|
|
2011-04-21 15:17:19 +00:00
|
|
|
- (id)init
|
|
|
|
{
|
|
|
|
self = [super init];
|
|
|
|
NSMutableIndexSet *i = [NSMutableIndexSet indexSetWithIndex:0];
|
|
|
|
VTIsIntIn *vtScanTypeIsFuzzy = [[[VTIsIntIn alloc] initWithValues:i reverse:NO] autorelease];
|
|
|
|
[NSValueTransformer setValueTransformer:vtScanTypeIsFuzzy forName:@"vtScanTypeIsFuzzy"];
|
|
|
|
return self;
|
|
|
|
}
|
|
|
|
|
2011-01-14 12:56:50 +00:00
|
|
|
- (NSString *)homepageURL
|
2009-06-01 09:55:11 +00:00
|
|
|
{
|
2016-06-02 02:34:16 +00:00
|
|
|
return @"https://www.hardcoded.net/dupeguru_pe/";
|
2009-06-01 09:55:11 +00:00
|
|
|
}
|
|
|
|
|
2016-06-05 01:18:14 +00:00
|
|
|
- (DetailsPanel *)createDetailsPanel
|
2009-06-01 09:55:11 +00:00
|
|
|
{
|
2016-06-05 01:18:14 +00:00
|
|
|
return [[DetailsPanel alloc] initWithApp:model];
|
2009-06-01 09:55:11 +00:00
|
|
|
}
|
|
|
|
|
2016-06-05 01:18:14 +00:00
|
|
|
- (void)setScanOptions
|
2009-06-01 09:55:11 +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 setMixFileKind:n2b([ud objectForKey:@"mixFileKind"])];
|
|
|
|
[model setIgnoreHardlinkMatches:n2b([ud objectForKey:@"ignoreHardlinkMatches"])];
|
|
|
|
[model setMatchScaled:n2b([ud objectForKey:@"matchScaled"])];
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void)initResultColumns:(ResultTable *)aTable
|
|
|
|
{
|
|
|
|
HSColumnDef defs[] = {
|
|
|
|
{@"marked", 26, 26, 26, YES, [NSButtonCell class]},
|
|
|
|
{@"name", 162, 16, 0, YES, nil},
|
|
|
|
{@"folder_path", 142, 16, 0, YES, nil},
|
|
|
|
{@"size", 63, 16, 0, YES, nil},
|
|
|
|
{@"extension", 40, 16, 0, YES, nil},
|
|
|
|
{@"dimensions", 73, 16, 0, YES, nil},
|
|
|
|
{@"exif_timestamp", 120, 16, 0, YES, nil},
|
|
|
|
{@"mtime", 120, 16, 0, YES, nil},
|
|
|
|
{@"percentage", 58, 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
|
|
|
}
|
2011-01-14 12:56:50 +00:00
|
|
|
|
2012-07-29 15:28:39 +00:00
|
|
|
- (void)clearPictureCache
|
2009-06-01 09:55:11 +00:00
|
|
|
{
|
2016-06-05 01:18:14 +00:00
|
|
|
NSString *msg = NSLocalizedString(@"Do you really want to remove all your cached picture analysis?", @"");
|
|
|
|
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO
|
|
|
|
return;
|
|
|
|
[model clearPictureCache];
|
2009-06-01 09:55:11 +00:00
|
|
|
}
|
|
|
|
@end
|