diff --git a/Framework/English.lproj/BuilderOptions.gorm/objects.gorm b/Framework/English.lproj/BuilderOptions.gorm/objects.gorm index a3acff6..5f41439 100644 Binary files a/Framework/English.lproj/BuilderOptions.gorm/objects.gorm and b/Framework/English.lproj/BuilderOptions.gorm/objects.gorm differ diff --git a/Framework/PCProjectBuilderOptions.m b/Framework/PCProjectBuilderOptions.m index 6e8eb95..642ce65 100644 --- a/Framework/PCProjectBuilderOptions.m +++ b/Framework/PCProjectBuilderOptions.m @@ -58,42 +58,36 @@ { project = aProject; delegate = aDelegate; + + [[NSNotificationCenter defaultCenter] + addObserver:self + selector:@selector(loadProjectProperties:) + name:PCProjectDictDidChangeNotification + object:nil]; } return self; } +- (void)dealloc +{ +#ifdef DEBUG + NSLog (@"PCProjectBuilderOptions: dealloc"); +#endif + + [[NSNotificationCenter defaultCenter] removeObserver:self]; + + [super dealloc]; +} + - (void)awakeFromNib { - NSArray *args; - - // Setup target popup - [targetPopup removeAllItems]; - [targetPopup addItemsWithTitles:[project buildTargets]]; - [targetPopup selectItemAtIndex:0]; - - // Setup build arguments field - args = [[project projectDict] objectForKey:PCBuilderArguments]; - [buildArgsField setStringValue:[args componentsJoinedByString:@" "]]; - - // Setup option buttons [verboseButton setRefusesFirstResponder:YES]; [debugButton setRefusesFirstResponder:YES]; [stripButton setRefusesFirstResponder:YES]; [sharedLibsButton setRefusesFirstResponder:YES]; - [self _setStateForButton:verboseButton - key:PCBuilderVerbose - defaultState:NSOffState]; - [self _setStateForButton:debugButton - key:PCBuilderDebug - defaultState:NSOnState]; - [self _setStateForButton:stripButton - key:PCBuilderStrip - defaultState:NSOffState]; - [self _setStateForButton:sharedLibsButton - key:PCBuilderSharedLibs - defaultState:NSOnState]; + [self loadProjectProperties:nil]; } - (void)show:(NSRect)builderRect @@ -171,4 +165,32 @@ [project setProjectDictObject:value forKey:key notify:YES]; } +- (void)loadProjectProperties:(NSNotification *)aNotif +{ + NSArray *args; + + // Setup target popup + [targetPopup removeAllItems]; + [targetPopup addItemsWithTitles:[project buildTargets]]; + [targetPopup selectItemAtIndex:0]; + + // Setup build arguments field + args = [[project projectDict] objectForKey:PCBuilderArguments]; + [buildArgsField setStringValue:[args componentsJoinedByString:@" "]]; + + // Setup option buttons + [self _setStateForButton:verboseButton + key:PCBuilderVerbose + defaultState:NSOffState]; + [self _setStateForButton:debugButton + key:PCBuilderDebug + defaultState:NSOnState]; + [self _setStateForButton:stripButton + key:PCBuilderStrip + defaultState:NSOffState]; + [self _setStateForButton:sharedLibsButton + key:PCBuilderSharedLibs + defaultState:NSOnState]; +} + @end diff --git a/Headers/ProjectCenter/PCProjectBuilderOptions.h b/Headers/ProjectCenter/PCProjectBuilderOptions.h index 237611a..1b346b1 100644 --- a/Headers/ProjectCenter/PCProjectBuilderOptions.h +++ b/Headers/ProjectCenter/PCProjectBuilderOptions.h @@ -45,6 +45,8 @@ - (void)show:(NSRect)builderRect; - (NSString *)buildTarget; +- (void)loadProjectProperties:(NSNotification *)aNotif; + @end @interface PCProjectBuilderOptions (Delegate)