X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=Classes%2FNJMappingsController.m;h=c3209ac931a20b365002b88fc96d9494e390c25a;hp=4a9c3fffaba6ccc82c42fde5cf827bbd10a65b00;hb=58ce8f7f50f382f18e7b416eca737803af284868;hpb=47a530c22a3f277d11e7ddb4b0147c8f93f6f9cd diff --git a/Classes/NJMappingsController.m b/Classes/NJMappingsController.m index 4a9c3ff..c3209ac 100644 --- a/Classes/NJMappingsController.m +++ b/Classes/NJMappingsController.m @@ -46,8 +46,7 @@ return idx < _mappings.count ? _mappings[idx] : nil; } -- (void)mappingsChanged { - [self save]; +- (void)mappingsSet { [tableView reloadData]; [self updateInterfaceForCurrentMapping]; [NSNotificationCenter.defaultCenter @@ -57,6 +56,11 @@ NJMappingKey: _currentMapping }]; } +- (void)mappingsChanged { + [self save]; + [self mappingsSet]; +} + - (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(__unsafe_unretained id [])buffer count:(NSUInteger)len { @@ -168,11 +172,7 @@ - (void)load { NSUInteger selected = [NSUserDefaults.standardUserDefaults integerForKey:@"selected"]; - NSArray *mappings = [NSUserDefaults.standardUserDefaults arrayForKey:@"mappings"]; - [self loadAllFrom:mappings andActivate:selected]; -} - -- (void)loadAllFrom:(NSArray *)storedMappings andActivate:(NSUInteger)selected { + NSArray *storedMappings = [NSUserDefaults.standardUserDefaults arrayForKey:@"mappings"]; NSMutableArray* newMappings = [[NSMutableArray alloc] initWithCapacity:storedMappings.count]; // Requires two passes to deal with inter-mapping references. First make @@ -195,7 +195,7 @@ if (selected >= newMappings.count) selected = 0; [self activateMapping:_mappings[selected]]; - [self mappingsChanged]; + [self mappingsSet]; } } @@ -231,7 +231,7 @@ mappings:_mappings error:&error]; - if (mapping && !error) { + if (mapping) { NJMapping *mergeInto = self[mapping.name]; if ([mergeInto hasConflictWith:mapping]) { NSAlert *conflictAlert = [[NSAlert alloc] init]; @@ -256,9 +256,7 @@ [self activateMapping:mapping]; [self mappingsChanged]; } - } - - if (error) { + } else { [window presentError:error modalForWindow:window delegate:nil