mirror of
https://github.com/arsenetar/dupeguru.git
synced 2024-11-05 07:49:02 +00:00
107 lines
4.3 KiB
Objective-C
107 lines
4.3 KiB
Objective-C
/*
|
|
Copyright 2016 Hardcoded Software (http://www.hardcoded.net)
|
|
|
|
This software is licensed under the "GPLv3" License as described in the "LICENSE" file,
|
|
which should be included with this package. The terms are also available at
|
|
http://www.gnu.org/licenses/gpl-3.0.html
|
|
*/
|
|
|
|
#import "AppDelegate.h"
|
|
#import "ProgressController.h"
|
|
#import "Utils.h"
|
|
#import "ValueTransformers.h"
|
|
#import "Dialogs.h"
|
|
#import "DetailsPanel.h"
|
|
#import "ResultWindow.h"
|
|
#import "Consts.h"
|
|
|
|
@implementation AppDelegate
|
|
+ (NSDictionary *)defaultPreferences
|
|
{
|
|
NSMutableDictionary *d = [NSMutableDictionary dictionaryWithDictionary:[super defaultPreferences]];
|
|
[d setObject:i2n(3) forKey:@"scanType"];
|
|
[d setObject:i2n(80) forKey:@"minMatchPercentage"];
|
|
[d setObject:b2n(NO) forKey:@"wordWeighting"];
|
|
[d setObject:b2n(NO) forKey:@"matchSimilarWords"];
|
|
[d setObject:b2n(NO) forKey:@"scanTagTrack"];
|
|
[d setObject:b2n(YES) forKey:@"scanTagArtist"];
|
|
[d setObject:b2n(YES) forKey:@"scanTagAlbum"];
|
|
[d setObject:b2n(YES) forKey:@"scanTagTitle"];
|
|
[d setObject:b2n(NO) forKey:@"scanTagGenre"];
|
|
[d setObject:b2n(NO) forKey:@"scanTagYear"];
|
|
return d;
|
|
}
|
|
|
|
- (id)init
|
|
{
|
|
self = [super init];
|
|
NSMutableIndexSet *i = [NSMutableIndexSet indexSetWithIndex:4];
|
|
[i addIndex:5];
|
|
VTIsIntIn *vtScanTypeIsNotContent = [[[VTIsIntIn alloc] initWithValues:i reverse:YES] autorelease];
|
|
[NSValueTransformer setValueTransformer:vtScanTypeIsNotContent forName:@"vtScanTypeIsNotContent"];
|
|
VTIsIntIn *vtScanTypeIsTag = [[[VTIsIntIn alloc] initWithValues:[NSIndexSet indexSetWithIndex:3] reverse:NO] autorelease];
|
|
[NSValueTransformer setValueTransformer:vtScanTypeIsTag forName:@"vtScanTypeIsTag"];
|
|
_directoryPanel = nil;
|
|
return self;
|
|
}
|
|
|
|
- (NSString *)homepageURL
|
|
{
|
|
return @"https://www.hardcoded.net/dupeguru_me/";
|
|
}
|
|
|
|
- (void)setScanOptions
|
|
{
|
|
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
|
[model setScanType:n2i([ud objectForKey:@"scanType"])];
|
|
[model enable:n2b([ud objectForKey:@"scanTagTrack"]) scanForTag:@"track"];
|
|
[model enable:n2b([ud objectForKey:@"scanTagArtist"]) scanForTag:@"artist"];
|
|
[model enable:n2b([ud objectForKey:@"scanTagAlbum"]) scanForTag:@"album"];
|
|
[model enable:n2b([ud objectForKey:@"scanTagTitle"]) scanForTag:@"title"];
|
|
[model enable:n2b([ud objectForKey:@"scanTagGenre"]) scanForTag:@"genre"];
|
|
[model enable:n2b([ud objectForKey:@"scanTagYear"]) scanForTag:@"year"];
|
|
[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"])];
|
|
}
|
|
|
|
- (void)initResultColumns:(ResultTable *)aTable
|
|
{
|
|
HSColumnDef defs[] = {
|
|
{@"marked", 26, 26, 26, YES, [NSButtonCell class]},
|
|
{@"name", 235, 16, 0, YES, nil},
|
|
{@"folder_path", 120, 16, 0, YES, nil},
|
|
{@"size", 63, 16, 0, YES, nil},
|
|
{@"duration", 50, 16, 0, YES, nil},
|
|
{@"bitrate", 50, 16, 0, YES, nil},
|
|
{@"samplerate", 60, 16, 0, YES, nil},
|
|
{@"extension", 40, 16, 0, YES, nil},
|
|
{@"mtime", 120, 16, 0, YES, nil},
|
|
{@"title", 120, 16, 0, YES, nil},
|
|
{@"artist", 120, 16, 0, YES, nil},
|
|
{@"album", 120, 16, 0, YES, nil},
|
|
{@"genre", 80, 16, 0, YES, nil},
|
|
{@"year", 40, 16, 0, YES, nil},
|
|
{@"track", 40, 16, 0, YES, nil},
|
|
{@"comment", 120, 16, 0, YES, nil},
|
|
{@"percentage", 57, 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];
|
|
c = [[aTable view] tableColumnWithIdentifier:@"duration"];
|
|
[[c dataCell] setAlignment:NSRightTextAlignment];
|
|
c = [[aTable view] tableColumnWithIdentifier:@"bitrate"];
|
|
[[c dataCell] setAlignment:NSRightTextAlignment];
|
|
[[aTable columns] restoreColumns];
|
|
}
|
|
@end
|