X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=Classes%2FEnjoyableApplicationDelegate.m;fp=Classes%2FEnjoyableApplicationDelegate.m;h=9fef7c378357aebc223570ee477bbb9c24da66c0;hp=26ea09cdf3321660eaceef0cc96dce8e03d155e5;hb=30f40c368cf11684956e992cb13a8f70b5c5e0ce;hpb=99bb6bddccccd77d17ef7cc691b370cb727aa1a4 diff --git a/Classes/EnjoyableApplicationDelegate.m b/Classes/EnjoyableApplicationDelegate.m index 26ea09c..9fef7c3 100644 --- a/Classes/EnjoyableApplicationDelegate.m +++ b/Classes/EnjoyableApplicationDelegate.m @@ -139,17 +139,20 @@ NSURL *URL = [NSURL fileURLWithPath:filename]; NJMapping *mapping = [NJMapping mappingWithContentsOfURL:URL error:&error]; - if (mapping) { - [self.mappingsController addOrMergeMapping:mapping]; - return YES; + if ([self.mappingsController[mapping.name] hasConflictWith:mapping]) { + [self.mappingsController promptForMapping:mapping atIndex:self.mappingsController.count]; + } else if (self.mappingsController[mapping.name]) { + [self.mappingsController[mapping.name] mergeEntriesFrom:mapping]; + } else if (mapping) { + [self.mappingsController addMapping:mapping]; } else { [window presentError:error modalForWindow:window delegate:nil didPresentSelector:nil contextInfo:nil]; - return NO; } + return !!mapping; } - (void)mappingWasChosen:(NJMapping *)mapping { @@ -213,8 +216,12 @@ NSError *error; NJMapping *mapping = [NJMapping mappingWithContentsOfURL:panel.URL error:&error]; - if (mapping) { - [self.mappingsController addOrMergeMapping:mapping]; + if ([self.mappingsController[mapping.name] hasConflictWith:mapping]) { + [self.mappingsController promptForMapping:mapping atIndex:self.mappingsController.count]; + } else if (self.mappingsController[mapping.name]) { + [self.mappingsController[mapping.name] mergeEntriesFrom:mapping]; + } else if (mapping) { + [self.mappingsController addMapping:mapping]; } else { [window presentError:error modalForWindow:window