projects
/
enjoyable.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Split view management out of NJDeviceController. Right now this probably just makes...
[enjoyable.git]
/
Classes
/
NJMappingsController.m
diff --git
a/Classes/NJMappingsController.m
b/Classes/NJMappingsController.m
index
772b14a
..
c3209ac
100644
(file)
--- a/
Classes/NJMappingsController.m
+++ b/
Classes/NJMappingsController.m
@@
-46,8
+46,7
@@
return idx < _mappings.count ? _mappings[idx] : nil;
}
return idx < _mappings.count ? _mappings[idx] : nil;
}
-- (void)mappingsChanged {
- [self save];
+- (void)mappingsSet {
[tableView reloadData];
[self updateInterfaceForCurrentMapping];
[NSNotificationCenter.defaultCenter
[tableView reloadData];
[self updateInterfaceForCurrentMapping];
[NSNotificationCenter.defaultCenter
@@
-57,6
+56,11
@@
NJMappingKey: _currentMapping }];
}
NJMappingKey: _currentMapping }];
}
+- (void)mappingsChanged {
+ [self save];
+ [self mappingsSet];
+}
+
- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state
objects:(__unsafe_unretained id [])buffer
count:(NSUInteger)len {
- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state
objects:(__unsafe_unretained id [])buffer
count:(NSUInteger)len {
@@
-168,11
+172,7
@@
- (void)load {
NSUInteger selected = [NSUserDefaults.standardUserDefaults integerForKey:@"selected"];
- (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
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]];
if (selected >= newMappings.count)
selected = 0;
[self activateMapping:_mappings[selected]];
- [self mappings
Changed
];
+ [self mappings
Set
];
}
}
}
}
@@
-231,7
+231,7
@@
mappings:_mappings
error:&error];
mappings:_mappings
error:&error];
- if (mapping
&& !error
) {
+ if (mapping) {
NJMapping *mergeInto = self[mapping.name];
if ([mergeInto hasConflictWith:mapping]) {
NSAlert *conflictAlert = [[NSAlert alloc] init];
NJMapping *mergeInto = self[mapping.name];
if ([mergeInto hasConflictWith:mapping]) {
NSAlert *conflictAlert = [[NSAlert alloc] init];
@@
-247,14
+247,16
@@
didEndSelector:@selector(mappingConflictDidResolve:returnCode:contextInfo:)
contextInfo:(void *)CFBridgingRetain(@{ @"old mapping": mergeInto,
@"new mapping": mapping })];
didEndSelector:@selector(mappingConflictDidResolve:returnCode:contextInfo:)
contextInfo:(void *)CFBridgingRetain(@{ @"old mapping": mergeInto,
@"new mapping": mapping })];
+ } else if (mergeInto) {
+ [mergeInto mergeEntriesFrom:mapping];
+ [self activateMapping:mergeInto];
+ [self mappingsChanged];
} else {
[_mappings addObject:mapping];
[self activateMapping:mapping];
[self mappingsChanged];
}
} else {
[_mappings addObject:mapping];
[self activateMapping:mapping];
[self mappingsChanged];
}
- }
-
- if (error) {
+ } else {
[window presentError:error
modalForWindow:window
delegate:nil
[window presentError:error
modalForWindow:window
delegate:nil