X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=NJMappingsController.m;h=e2ac93c49a54310bcc8f0ff2cdd7b7552d5f9743;hp=f1e068ee23ef35fdaf6f2b1de59f7b10ac8d2336;hb=1315dd378437c84891c795c9927ff40d42d74cb3;hpb=e23012ee44e26e9fd2bd43340a3fd806b084fa47 diff --git a/NJMappingsController.m b/NJMappingsController.m index f1e068e..e2ac93c 100644 --- a/NJMappingsController.m +++ b/NJMappingsController.m @@ -7,7 +7,6 @@ #import "NJMappingsController.h" -#import "EnjoyableApplicationDelegate.h" #import "NJMapping.h" #import "NJMappingsController.h" #import "NJOutput.h" @@ -40,6 +39,14 @@ return idx < _mappings.count ? _mappings[idx] : nil; } +- (void)mappingsChanged { + [self save]; + [tableView reloadData]; + [NSNotificationCenter.defaultCenter + postNotificationName:NJEventMappingListChanged + object:_mappings]; +} + - (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(__unsafe_unretained id [])buffer count:(NSUInteger)len { @@ -76,11 +83,9 @@ - (IBAction)addPressed:(id)sender { NJMapping *newMapping = [[NJMapping alloc] initWithName:@"Untitled"]; [_mappings addObject:newMapping]; - [(EnjoyableApplicationDelegate *)NSApplication.sharedApplication.delegate mappingsChanged]; - [tableView reloadData]; - [tableView selectRowIndexes:[NSIndexSet indexSetWithIndex:_mappings.count - 1] byExtendingSelection:NO]; - [tableView editColumn:0 row:_mappings.count - 1 withEvent:nil select:YES]; + [self mappingsChanged]; [self activateMapping:newMapping]; + [tableView editColumn:0 row:_mappings.count - 1 withEvent:nil select:YES]; } - (IBAction)removePressed:(id)sender { @@ -88,15 +93,12 @@ return; [_mappings removeObjectAtIndex:tableView.selectedRow]; - [tableView reloadData]; - [(EnjoyableApplicationDelegate *)NSApplication.sharedApplication.delegate mappingsChanged]; + [self mappingsChanged]; [self activateMapping:_mappings[0]]; - [self save]; } -(void)tableViewSelectionDidChange:(NSNotification *)notify { - if (tableView.selectedRow >= 0) - [self activateMapping:_mappings[tableView.selectedRow]]; + [self activateMapping:self[tableView.selectedRow]]; } - (id)tableView:(NSTableView *)view objectValueForTableColumn:(NSTableColumn *)column row:(NSInteger)index { @@ -108,9 +110,7 @@ forTableColumn:(NSTableColumn *)col row:(NSInteger)index { self[index].name = obj; - [self save]; - [tableView reloadData]; - [(EnjoyableApplicationDelegate *)NSApplication.sharedApplication.delegate mappingsChanged]; + [self mappingsChanged]; } - (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView { @@ -164,8 +164,7 @@ if (current >= newMappings.count) current = 0; _mappings = newMappings; - [tableView reloadData]; - [(EnjoyableApplicationDelegate *)NSApplication.sharedApplication.delegate mappingsChanged]; + [self mappingsChanged]; [self activateMapping:_mappings[current]]; } } @@ -248,11 +247,9 @@ mapping = mergeInto; } else { [_mappings addObject:mapping]; - [tableView reloadData]; } - [self save]; - [(EnjoyableApplicationDelegate *)NSApplication.sharedApplication.delegate mappingsChanged]; + [self mappingsChanged]; [self activateMapping:mapping]; [outputController loadCurrent];