Reset target settings in UI when switching target types.
[enjoyable.git] / ConfigsController.m
index 50861cf..67033d3 100644 (file)
@@ -5,6 +5,14 @@
 //  Created by Sam McCall on 4/05/09.
 //
 
+#import "ConfigsController.h"
+
+#import "ApplicationController.h"
+#import "Config.h"
+#import "ConfigsController.h"
+#import "Target.h"
+#import "TargetController.h"
+
 @implementation ConfigsController {
     NSMutableArray *configs;
        Config *manualConfig;
     if (toRemove == manualConfig)
         manualConfig = configs[0];
        
-       // remove all "switch to configuration" actions
-    for (Config *config in configs) {
-               NSMutableDictionary *entries = config.entries;
-               for (id key in entries) {
-                       Target *target = entries[key];
-                       if ([target isKindOfClass:[TargetConfig class]]
-                && [(TargetConfig *)target config] == toRemove)
-                               [entries removeObjectForKey: key];
-               }
-       }
        [(ApplicationController *)[[NSApplication sharedApplication] delegate] configsChanged]; 
        [tableView reloadData];
 }
        return [configs[index] name];
 }
 
-- (void)tableView:(NSTableView *)view setObjectValue:obj forTableColumn:(NSTableColumn *)col row:(int)index {
-       /* ugly hack so stringification doesn't fail */
-       NSString* newName = [(NSString*)obj stringByReplacingOccurrencesOfString: @"~" withString: @""];
-       [(Config *)configs[index] setName:newName];
+- (void)tableView:(NSTableView *)view setObjectValue:(NSString *)obj forTableColumn:(NSTableColumn *)col row:(int)index {
+       [(Config *)configs[index] setName:obj];
        [targetController refreshConfigsPreservingSelection:YES];
        [tableView reloadData];
        [(ApplicationController *)[[NSApplication sharedApplication] delegate] configsChanged];
                cfgInfo[@"name"] = [config name];
                NSMutableDictionary* cfgEntries = [[NSMutableDictionary alloc] init];
                for(id key in [config entries]) {
-                       cfgEntries[key] = [[config entries][key]stringify];
+                       cfgEntries[key] = [[config entries][key] serialize];
                }
                cfgInfo[@"entries"] = cfgEntries;
                [ary addObject: cfgInfo];
        for(int i=0; i<[ary count]; i++) {
                NSDictionary* dict = ary[i][@"entries"];
                for(id key in dict) {
-                       [newConfigs[i] entries][key] = [Target unstringify: dict[key] withConfigList: newConfigs];
+                       [newConfigs[i] entries][key] = [Target targetDeserialize:dict[key] withConfigs:newConfigs];
                }
        }