From bb9f62c760cfca491ede1bea0d35150c538bbbf5 Mon Sep 17 00:00:00 2001 From: Sergii Stoian Date: Fri, 4 Jul 2003 07:43:33 +0000 Subject: [PATCH] *** empty log message *** git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/trunk@17094 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 22 +++++ PCAppController.m | 13 +-- PCAppProj/PCAppProj.m | 13 +-- PCAppProj/PCAppProject.m | 29 ++++--- PCInfoController.m | 16 ++-- PCLib/PCButton.h | 2 +- PCLib/PCButton.m | 15 ++++ PCLib/PCHistoryController.m | 6 +- PCLib/PCProject+UInterface.m | 152 +++++++++++++++++++---------------- PCLib/PCProject.h | 17 ++-- PCLib/PCProject.m | 31 ++++--- PCPrefController.m | 76 +++++++++--------- 12 files changed, 233 insertions(+), 159 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5edcf8c..45b08ef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,25 @@ +2003-07-04 Serg Stoyan + + * PCAppController.m: Change REL_LIB_PC and ABS_LIB_PC to ApplicationSupport dir. + * PCInfoController.m: + (init): Load Info-gnustep.plist instead of Info-project.plist. + (showInfoWindow:): Set title of info window to "Info". + * PCPrefController.m: + (_initUI): Move releasing of controls here from -dealloc. + (popupChnaged:): Don't retain views. + + * PCAppProj/PCAppProject.m: + (updateValuesFromProjectDict): Change size of appicon frame to 48x48. + Check PCAppIcon field value is not equal to @"". + + * PCLib/PCButton.m + (PCButton dealloc): Release tooltip window. + (PCButtonCell dealloc): Added. + + * PCLib/PCProject+UInterface.m: + (_initUI): Cleanup. fileIcon now NSImageView. + (setFileIcon:): Check for source of notification. Cleanup. + 2003-07-02 Serg Stoyan * PCAppProj/PCAppProj.m: diff --git a/PCAppController.m b/PCAppController.m index 0776bf9..6634e93 100644 --- a/PCAppController.m +++ b/PCAppController.m @@ -29,8 +29,8 @@ #include -#define REL_LIB_PC @"Library/ProjectCenter" -#define ABS_LIB_PC @"/usr/GNUstep/Local/Library/ProjectCenter" +#define REL_LIB_PC @"Library/ApplicationSupport/ProjectCenter" +#define ABS_LIB_PC @"/usr/GNUstep/System/Library/ApplicationSupport/ProjectCenter" @implementation PCAppController @@ -40,10 +40,10 @@ + (void)initialize { - NSMutableDictionary *defaults = [NSMutableDictionary dictionary]; - NSDictionary *env = [[NSProcessInfo processInfo] environment]; - NSString *prefix = [env objectForKey:@"GNUSTEP_SYSTEM_ROOT"]; - NSString *_bundlePath; + NSMutableDictionary *defaults = [NSMutableDictionary dictionary]; + NSDictionary *env = [[NSProcessInfo processInfo] environment]; + NSString *prefix = [env objectForKey:@"GNUSTEP_SYSTEM_ROOT"]; + NSString *_bundlePath; if (prefix && ![prefix isEqualToString:@""]) { @@ -102,6 +102,7 @@ [menuController setFileManager:fileManager]; [menuController setProjectManager:projectManager]; } + return self; } diff --git a/PCAppProj/PCAppProj.m b/PCAppProj/PCAppProj.m index ff470ee..2d73191 100644 --- a/PCAppProj/PCAppProj.m +++ b/PCAppProj/PCAppProj.m @@ -178,16 +178,17 @@ static PCAppProj *_creator = nil; - (PCProject *)openProjectAt:(NSString *)path { - NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path]; - id obj; + NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path]; + id obj; - NSLog(@"<%@ %x>: opening project at %@",[self class],self,path); + NSLog(@"<%@ %x>: opening project at %@",[self class],self,path); - obj = [dict objectForKey:PCProjectBuilderClass]; - if ([obj isEqualToString:@"PCAppProj"]) { + obj = [dict objectForKey:PCProjectBuilderClass]; + if ([obj isEqualToString:@"PCAppProj"]) + { return [[[PCAppProject alloc] initWithProjectDictionary:dict path:[path stringByDeletingLastPathComponent]] autorelease]; } - return nil; + return nil; } @end diff --git a/PCAppProj/PCAppProject.m b/PCAppProj/PCAppProject.m index 8ca300d..0a1e58c 100644 --- a/PCAppProj/PCAppProject.m +++ b/PCAppProj/PCAppProject.m @@ -261,27 +261,30 @@ - (void)updateValuesFromProjectDict { - NSRect frame = {{0,0}, {64, 64}}; - NSImage *image; + NSRect frame = {{0,0}, {48,48}}; + NSImage *image = nil; NSString *path = nil; - NSString *_icon; + NSString *_icon = nil; [super updateValuesFromProjectDict]; [appClassField setStringValue:[projectDict objectForKey:PCAppClass]]; [appImageField setStringValue:[projectDict objectForKey:PCAppIcon]]; - if ((_icon = [projectDict objectForKey:PCAppIcon])) { - path = [projectPath stringByAppendingPathComponent:_icon]; - } + _icon = [projectDict objectForKey:PCAppIcon]; + if (_icon && ![_icon isEqualToString:@""]) + { + path = [projectPath stringByAppendingPathComponent:_icon]; + } - if (path && (image = [[NSImage alloc] initWithContentsOfFile:path])) { - frame.size = [image size]; - [appIconView setFrame:frame]; - [appIconView setImage:image]; - [appIconView display]; - RELEASE(image); - } + if (path && (image = [[NSImage alloc] initWithContentsOfFile:path])) + { + frame.size = [image size]; + [appIconView setFrame:frame]; + [appIconView setImage:image]; + [appIconView display]; + RELEASE(image); + } } - (void)clearAppIcon:(id)sender diff --git a/PCInfoController.m b/PCInfoController.m index cec1d96..907b6bf 100644 --- a/PCInfoController.m +++ b/PCInfoController.m @@ -38,7 +38,9 @@ if ((self = [super init])) { NSString *file; - file = [[NSBundle mainBundle] pathForResource:@"Info-project" ofType:@"plist"]; + file = [[NSBundle mainBundle] + pathForResource:@"Info-gnustep" + ofType:@"plist"]; infoDict = [NSDictionary dictionaryWithContentsOfFile:file]; [infoDict retain]; } @@ -59,14 +61,18 @@ - (void)showInfoWindow:(id)sender { #if defined(GNUSTEP) - if (!infoWindow) { - infoWindow = [[GSInfoPanel alloc] initWithDictionary:infoDict]; - } + if (!infoWindow) + { + infoWindow = [[GSInfoPanel alloc] initWithDictionary:infoDict]; + } + [infoWindow setTitle:@"Info"]; [infoWindow center]; [infoWindow makeKeyAndOrderFront:self]; #else - NSRunAlertPanel(@"Info",@"OPENSTEP has no support for GSInfoPanel",@"OK",nil,nil,nil); + NSRunAlertPanel(@"Info", + @"OPENSTEP has no support for GSInfoPanel", + @"OK",nil,nil,nil); #endif } diff --git a/PCLib/PCButton.h b/PCLib/PCButton.h index 8ae099b..64616a0 100644 --- a/PCLib/PCButton.h +++ b/PCLib/PCButton.h @@ -8,7 +8,7 @@ /* * Button */ -@interface PCButton : NSButton +@interface PCButton : NSButton { NSTrackingRectTag tRectTag; NSTimer *ttTimer; diff --git a/PCLib/PCButton.m b/PCLib/PCButton.m index 82d55a2..2c4fb19 100644 --- a/PCLib/PCButton.m +++ b/PCLib/PCButton.m @@ -24,7 +24,15 @@ [[self superview] removeTrackingRect:tRectTag]; [ttTimer invalidate]; ttTimer = nil; + RELEASE(ttTimer); } + + if (ttWindow != nil) + { + RELEASE(ttWindow); + } + + [super dealloc]; } - (void)setFrame:(NSRect)frameRect @@ -177,6 +185,13 @@ return self; } +- (void)dealloc +{ + RELEASE(tile); + + [super dealloc]; +} + - (void) drawInteriorWithFrame: (NSRect)cellFrame inView: (NSView*)controlView { [super drawInteriorWithFrame: cellFrame inView: controlView]; diff --git a/PCLib/PCHistoryController.m b/PCLib/PCHistoryController.m index cb0ea90..ecc2975 100644 --- a/PCLib/PCHistoryController.m +++ b/PCLib/PCHistoryController.m @@ -65,7 +65,11 @@ [browser setMaxVisibleColumns:1]; [browser setAllowsMultipleSelection:NO]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(historyDidChange:) name:@"FileBecomesEditedNotification" object:nil]; + [[NSNotificationCenter defaultCenter] + addObserver:self + selector:@selector(historyDidChange:) + name:@"FileBecomesEditedNotification" + object:nil]; } - (void)historyDidChange:(NSNotification *)notif diff --git a/PCLib/PCProject+UInterface.m b/PCLib/PCProject+UInterface.m index 333d434..f6d27c1 100644 --- a/PCLib/PCProject+UInterface.m +++ b/PCLib/PCProject+UInterface.m @@ -44,17 +44,19 @@ | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask; - NSBrowser *browser; - NSRect rect; - PCButton *buildButton; - PCButton *launchButton; - PCButton *editorButton; - PCButton *loadedFilesButton; - PCButton *findButton; - PCButton *inspectorButton; - id textField; - NSBox *hLine; - PCSplitView *split; + + PCButton *buildButton; + PCButton *launchButton; + PCButton *editorButton; + PCButton *loadedFilesButton; + PCButton *findButton; + PCButton *inspectorButton; + + NSBrowser *browser; + NSRect rect; + id textField; + NSBox *hLine; + PCSplitView *split; #ifdef ENABLE_HISTORY PCSplitView *v_split; @@ -80,7 +82,6 @@ */ buildButton = [[PCButton alloc] initWithFrame: NSMakeRect(8,390,50,50)]; [buildButton setTitle: @"Build"]; -// [buildButton setImage: IMAGE(@"Build")]; [buildButton setImage: IMAGE(@"ProjectCenter_make")]; [buildButton setTarget: self]; [buildButton setAction: @selector(showBuildView:)]; @@ -92,7 +93,6 @@ launchButton = [[PCButton alloc] initWithFrame: NSMakeRect(58,390,50,50)]; [launchButton setTitle: @"Launch"]; -// [launchButton setImage: IMAGE(@"Run")]; [launchButton setImage: IMAGE(@"ProjectCenter_run")]; [launchButton setTarget: self]; [launchButton setAction: @selector(showRunView:)]; @@ -104,7 +104,6 @@ editorButton = [[PCButton alloc] initWithFrame: NSMakeRect(108,390,50,50)]; [editorButton setTitle: @"Editor"]; -// [editorButton setImage: IMAGE(@"Editor")]; [editorButton setImage: IMAGE(@"ProjectCenter_files")]; [editorButton setTarget: self]; [editorButton setAction: @selector(showEditorView:)]; @@ -116,34 +115,29 @@ loadedFilesButton = [[PCButton alloc] initWithFrame: NSMakeRect(158,390,50,50)]; [loadedFilesButton setTitle: @"Loaded Files"]; -// [loadedFilesButton setImage: IMAGE(@"Files")]; [loadedFilesButton setImage: IMAGE(@"ProjectCenter_files")]; [loadedFilesButton setTarget: self]; [loadedFilesButton setAction: @selector(showLoadedFilesView:)]; [loadedFilesButton setAutoresizingMask: (NSViewMaxXMargin | NSViewMinYMargin)]; [loadedFilesButton setButtonType: NSMomentaryPushButton]; -// [loadedFilesButton setEnabled:NO]; [_c_view addSubview: loadedFilesButton]; [loadedFilesButton setShowTooltip:YES]; RELEASE (loadedFilesButton); findButton = [[PCButton alloc] initWithFrame: NSMakeRect(208,390,50,50)]; [findButton setTitle: @"Project Find"]; -// [findButton setImage: IMAGE(@"Find")]; [findButton setImage: IMAGE(@"ProjectCenter_find")]; [findButton setTarget: self]; [findButton setAction: @selector(showFindView:)]; [findButton setAutoresizingMask: (NSViewMaxXMargin | NSViewMinYMargin)]; [findButton setButtonType: NSMomentaryPushButton]; -// [findButton setEnabled:NO]; [_c_view addSubview: findButton]; [findButton setShowTooltip:YES]; RELEASE (findButton); inspectorButton = [[PCButton alloc] initWithFrame: NSMakeRect(258,390,50,50)]; [inspectorButton setTitle: @"Inspector"]; -// [inspectorButton setImage: IMAGE(@"Inspector")]; [inspectorButton setImage: IMAGE(@"ProjectCenter_settings")]; [inspectorButton setTarget: self]; [inspectorButton setAction: @selector(showInspector:)]; @@ -157,12 +151,10 @@ /* * File icon and title */ - fileIcon = [[NSButton alloc] initWithFrame: NSMakeRect (504,391,48,48)]; - [fileIcon setBordered:NO]; - [fileIcon setEnabled:NO]; + fileIcon = [[NSImageView alloc] initWithFrame: NSMakeRect (504,391,48,48)]; [fileIcon setAutoresizingMask: (NSViewMinXMargin | NSViewMinYMargin)]; - [fileIcon setImagePosition: NSImageOnly]; - [fileIcon setImage: IMAGE (@"projectSuitcase")]; +// [fileIcon setImage: IMAGE (@"projectSuitcase")]; + [fileIcon setImage: IMAGE (@"ProjectCenter")]; [_c_view addSubview: fileIcon]; RELEASE (fileIcon); @@ -546,91 +538,111 @@ - (void)setFileIcon:(NSNotification *)notification { id object = [notification object]; - NSString *path = [object pathOfSelectedFile]; - NSArray *pathComps = [path pathComponents]; - NSString *lastComp = [path lastPathComponent]; - NSString *extension = [[lastComp componentsSeparatedByString:@"."] lastObject]; - + NSString *path = nil; + NSArray *pathComponents = nil; + NSString *lastComponent = nil; + NSString *fileExtension = nil; + NSString *iconName = nil; + NSImage *icon = nil; + + // Notification from other project + if (object != [self browserController]) + { + return; + } + + path = [object pathOfSelectedFile]; + pathComponents = [path pathComponents]; + lastComponent = [path lastPathComponent]; + fileExtension = [[lastComponent componentsSeparatedByString:@"."] lastObject]; + // Should be provided by PC*Proj bundles - if ([[object selectedFiles] count] > 1 - && [pathComps count] > 2) + if ([[object selectedFiles] count] > 1 && [pathComponents count] > 2) { - [fileIcon setImage: IMAGE (@"MultipleSelection")]; + iconName = [[NSString alloc] initWithString:@"MultipleSelection"]; } - else if ([lastComp isEqualToString: @"/"]) + else if ([lastComponent isEqualToString: @"/"]) { - [fileIcon setImage: IMAGE (@"projectSuitcase")]; + iconName = [[NSString alloc] initWithString:@"projectSuitcase"]; } - else if ([lastComp isEqualToString: @"Classes"]) + else if ([lastComponent isEqualToString: @"Classes"]) { - [fileIcon setImage: IMAGE (@"classSuitcase")]; + iconName = [[NSString alloc] initWithString:@"classSuitcase"]; } - else if ([lastComp isEqualToString: @"Headers"]) + else if ([lastComponent isEqualToString: @"Headers"]) { - [fileIcon setImage: IMAGE (@"headerSuitcase")]; + iconName = [[NSString alloc] initWithString:@"headerSuitcase"]; } - else if ([lastComp isEqualToString: @"Other Sources"]) + else if ([lastComponent isEqualToString: @"Other Sources"]) { - [fileIcon setImage: IMAGE (@"genericSuitcase")]; + iconName = [[NSString alloc] initWithString:@"genericSuitcase"]; } - else if ([lastComp isEqualToString: @"Interfaces"]) + else if ([lastComponent isEqualToString: @"Interfaces"]) { - [fileIcon setImage: IMAGE (@"nibSuitcase")]; + iconName = [[NSString alloc] initWithString:@"nibSuitcase"]; } - else if ([lastComp isEqualToString: @"Images"]) + else if ([lastComponent isEqualToString: @"Images"]) { - [fileIcon setImage: IMAGE (@"iconSuitcase")]; + iconName = [[NSString alloc] initWithString:@"iconSuitcase"]; } - else if ([lastComp isEqualToString: @"Other Resources"]) + else if ([lastComponent isEqualToString: @"Other Resources"]) { - [fileIcon setImage: IMAGE (@"otherSuitcase")]; + iconName = [[NSString alloc] initWithString:@"otherSuitcase"]; } - else if ([lastComp isEqualToString: @"Subprojects"]) + else if ([lastComponent isEqualToString: @"Subprojects"]) { - [fileIcon setImage: IMAGE (@"subprojectSuitcase")]; + iconName = [[NSString alloc] initWithString:@"subprojectSuitcase"]; } - else if ([lastComp isEqualToString: @"Documentation"]) + else if ([lastComponent isEqualToString: @"Documentation"]) { - [fileIcon setImage: IMAGE (@"helpSuitcase")]; + iconName = [[NSString alloc] initWithString:@"helpSuitcase"]; } - else if ([lastComp isEqualToString: @"Supporting Files"]) + else if ([lastComponent isEqualToString: @"Supporting Files"]) { - [fileIcon setImage: IMAGE (@"genericSuitcase")]; + iconName = [[NSString alloc] initWithString:@"genericSuitcase"]; } - else if ([lastComp isEqualToString: @"Libraries"]) + else if ([lastComponent isEqualToString: @"Libraries"]) { - [fileIcon setImage: IMAGE (@"librarySuitcase")]; + iconName = [[NSString alloc] initWithString:@"librarySuitcase"]; } - else if ([lastComp isEqualToString: @"Non Project Files"]) + else if ([lastComponent isEqualToString: @"Non Project Files"]) { - [fileIcon setImage: IMAGE (@"projectSuitcase")]; + iconName = [[NSString alloc] initWithString:@"projectSuitcase"]; + } + + if (iconName != nil) + { + icon = IMAGE(iconName); + RELEASE(iconName); + } + else if (fileExtension != nil && ![fileExtension isEqualToString:@""]) + { + icon = [[NSWorkspace sharedWorkspace] iconForFile:lastComponent]; + } + + // Set icon to Project Window and Project Inspector + if (icon != nil) + { + [fileIcon setImage:icon]; + // Set icon in Inspector "File Attributes". Should not be here! + [fileIconView setImage:icon]; } else { - [fileIcon - setImage: [[NSWorkspace sharedWorkspace] iconForFileType:extension]]; } - - if ([fileIcon image] == nil) - { - [fileIcon - setImage: [[NSWorkspace sharedWorkspace] iconForFileType:extension]]; - } - - // Set icon in Inspector "File Attributes". Should not be here! - [fileIconView setImage:[fileIcon image]]; // Set title - if ([[object selectedFiles] count] > 1 - && [pathComps count] > 2) + if ([[object selectedFiles] count] > 1 && [pathComponents count] > 2) { [fileIconTitle setStringValue: [NSString stringWithFormat: @"%i files", [[object selectedFiles] count]]]; + [fileNameField setStringValue:@"Multiple files selected"]; } else { - [fileIconTitle setStringValue:lastComp]; + [fileIconTitle setStringValue:lastComponent]; + [fileNameField setStringValue:lastComponent]; } } diff --git a/PCLib/PCProject.h b/PCLib/PCProject.h index cb135e7..4d09d48 100644 --- a/PCLib/PCProject.h +++ b/PCLib/PCProject.h @@ -119,6 +119,7 @@ static NSString * const PCBuildTool = @"BUILDTOOL"; @class PCProjectDebugger; @class PCProjectEditor; @class PCEditorController; +@class PCButton; #ifndef GNUSTEP_BASE_VERSION @protocol ProjectBuilder; @@ -140,16 +141,16 @@ static NSString * const PCBuildTool = @"BUILDTOOL"; PCEditorController *editorController; NSBox *box; - NSButton *fileIcon; + NSImageView *fileIcon; NSTextField *fileIconTitle; - id projectAttributeInspectorView; - NSTextField *ccOptField; - NSTextField *ldOptField; - NSTextField *installPathField; - NSTextField *toolField; - NSTextField *headersField; - NSTextField *libsField; + id projectAttributeInspectorView; + NSTextField *ccOptField; + NSTextField *ldOptField; + NSTextField *installPathField; + NSTextField *toolField; + NSTextField *headersField; + NSTextField *libsField; id projectProjectInspectorView; NSTextField *projectTypeField; diff --git a/PCLib/PCProject.m b/PCLib/PCProject.m index feb06a0..9e113ce 100644 --- a/PCLib/PCProject.m +++ b/PCLib/PCProject.m @@ -63,18 +63,21 @@ if ((self = [self init])) { - if ([[path lastPathComponent] isEqualToString:@"PC.project"]) { - projectPath = [[path stringByDeletingLastPathComponent] copy]; - } - else { - projectPath = [path copy]; - } + if ([[path lastPathComponent] isEqualToString:@"PC.project"]) + { + projectPath = [[path stringByDeletingLastPathComponent] copy]; + } + else + { + projectPath = [path copy]; + } - if(![self assignProjectDict:dict]) { - NSLog(@"<%@ %x>: could not load the project...",[self class],self); - [self autorelease]; - return nil; - } + if(![self assignProjectDict:dict]) + { + NSLog(@"<%@ %x>: could not load the project...",[self class],self); + [self autorelease]; + return nil; + } } return self; } @@ -101,6 +104,8 @@ RELEASE(projectProjectInspectorView); RELEASE(projectFileInspectorView); + [[NSNotificationCenter defaultCenter] removeObserver:self]; + [super dealloc]; } @@ -492,7 +497,9 @@ // Update the interface [self updateValuesFromProjectDict]; - [[NSNotificationCenter defaultCenter] postNotificationName:@"ProjectDictDidChangeNotification" object:self]; + [[NSNotificationCenter defaultCenter] + postNotificationName:@"ProjectDictDidChangeNotification" + object:self]; return YES; } diff --git a/PCPrefController.m b/PCPrefController.m index c41b47f..96da23a 100644 --- a/PCPrefController.m +++ b/PCPrefController.m @@ -74,6 +74,7 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; [prefPopup setTarget: self]; [prefPopup setAction: @selector (popupChanged:)]; [_c_view addSubview: prefPopup]; + RELEASE(prefPopup); line = [[NSBox alloc] init]; [line setTitlePosition: NSNoTitle]; @@ -86,6 +87,7 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; [prefEmptyView setFrameFromContentFrame: NSMakeRect(0,0,270,312)]; [prefEmptyView setBorderType: NSNoBorder]; [_c_view addSubview: prefEmptyView]; + RELEASE(prefEmptyView); /* * Building view @@ -119,6 +121,7 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; [successField setTarget: self]; [successField setAction: @selector (setSuccessSound:)]; [v addSubview: successField]; + RELEASE(successField); textField = [[NSTextField alloc] initWithFrame: NSMakeRect(0,16,54,21)]; [textField setAlignment: NSRightTextAlignment]; @@ -139,8 +142,9 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; [failureField setTarget: self]; [failureField setAction: @selector (setFailureSound:)]; [v addSubview: failureField]; + RELEASE(failureField); - promptOnClean = [[NSButton alloc] initWithFrame: NSMakeRect(72,176,108,15)]; + promptOnClean = [[NSButton alloc] initWithFrame: NSMakeRect(72,170,108,21)]; [promptOnClean setTitle: @"Prompt on clean"]; [promptOnClean setButtonType: NSSwitchButton]; [promptOnClean setBordered: NO]; @@ -150,6 +154,7 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; [promptOnClean setContinuous: NO]; [prefBuildingView addSubview: promptOnClean]; [promptOnClean sizeToFit]; + RELEASE(promptOnClean); /* * Saving view @@ -172,6 +177,7 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; [saveOnQuit setContinuous: NO]; [v addSubview: saveOnQuit]; [saveOnQuit sizeToFit]; + RELEASE(saveOnQuit); saveAutomatically=[[NSButton alloc] initWithFrame: NSMakeRect (24,32,124,15)]; [saveAutomatically setTitle: @"Save Project Automatically"]; @@ -182,6 +188,7 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; [saveAutomatically setContinuous: NO]; [v addSubview: saveAutomatically]; [saveAutomatically sizeToFit]; + RELEASE(saveAutomatically); keepBackup = [[NSButton alloc] initWithFrame: NSMakeRect (24,12,124,15)]; [keepBackup setTitle: @"Keep Project Backup"]; @@ -192,6 +199,7 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; [keepBackup setContinuous: NO]; [v addSubview: keepBackup]; [keepBackup sizeToFit]; + RELEASE(keepBackup); v = [[NSBox alloc] initWithFrame: NSMakeRect(5,149,254,49)]; [v setTitle: @"Auto-Save"]; @@ -217,6 +225,7 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; [autoSaveField setTarget:self]; [autoSaveField setAction:@selector(setSavePeriod:)]; [v addSubview:autoSaveField]; + RELEASE(autoSaveField); /* * Editing view @@ -302,6 +311,7 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; [editorField setTarget:self]; [editorField setAction:@selector(setEditor:)]; [v addSubview:editorField]; + RELEASE(editorField); // Compiler textField = [[NSTextField alloc] initWithFrame:NSMakeRect(12,40,60,21)]; @@ -323,6 +333,7 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; [compilerField setTarget:self]; [compilerField setAction:@selector(setCompiler:)]; [v addSubview:compilerField]; + RELEASE(compilerField); // Debugger textField = [[NSTextField alloc] initWithFrame:NSMakeRect(12,64,60,21)]; @@ -344,6 +355,7 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; [debuggerField setTarget:self]; [debuggerField setAction:@selector(setDebugger:)]; [v addSubview:debuggerField]; + RELEASE(debuggerField); // Bundles Box v = [[NSBox alloc] initWithFrame: NSMakeRect(5,131,254,48)]; @@ -361,6 +373,7 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; [bundlePathField setTarget:self]; [bundlePathField setAction:@selector(setBundlePath:)]; [v addSubview:bundlePathField]; + RELEASE(bundlePathField); /* * Interface view @@ -384,6 +397,7 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; [separateBuilder setAction: @selector (setDisplayPanels:)]; [separateBuilder setContinuous: NO]; [v addSubview: separateBuilder]; + RELEASE(separateBuilder); separateLauncher = [[NSButton alloc] initWithFrame: NSMakeRect(48,27,124,21)]; [separateLauncher setTitle: @"Project Launcher"]; @@ -394,6 +408,7 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; [separateLauncher setAction: @selector (setDisplayPanels:)]; [separateLauncher setContinuous: NO]; [v addSubview: separateLauncher]; + RELEASE(separateLauncher); separateEditor = [[NSButton alloc] initWithFrame: NSMakeRect(48,6,124,21)]; [separateEditor setTitle: @"Project Editor"]; @@ -404,6 +419,7 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; [separateEditor setAction: @selector (setDisplayPanels:)]; [separateEditor setContinuous: NO]; [v addSubview: separateEditor]; + RELEASE(separateEditor); // Some buttons v = [[NSBox alloc] initWithFrame: NSMakeRect(5,121,254,77)]; @@ -421,6 +437,7 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; [promptWhenQuit setContinuous: NO]; [v addSubview: promptWhenQuit]; [promptWhenQuit sizeToFit]; + RELEASE(promptWhenQuit); useExternalEditor = [[NSButton alloc] initWithFrame:NSMakeRect(48,28,204,21)]; [useExternalEditor setTitle: @"Use external Editor"]; @@ -432,6 +449,7 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; [useExternalEditor setContinuous: NO]; [v addSubview: useExternalEditor]; [useExternalEditor sizeToFit]; + RELEASE(useExternalEditor); } @end @@ -455,28 +473,12 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; RELEASE(preferencesDict); RELEASE(prefWindow); - RELEASE(prefPopup); - - RELEASE(prefEmptyView); + RELEASE(prefBuildingView); RELEASE(prefMiscView); RELEASE(prefEditingView); RELEASE(prefSavingView); - RELEASE(useExternalEditor); - RELEASE(promptWhenQuit); - RELEASE(promptOnClean); - RELEASE(saveOnQuit); - RELEASE(saveAutomatically); - RELEASE(keepBackup); - - RELEASE(editorField); - RELEASE(debuggerField); - RELEASE(compilerField); - RELEASE(bundlePathField); - - RELEASE(autoSaveField); - [[NSUserDefaults standardUserDefaults] synchronize]; [super dealloc]; @@ -595,25 +597,25 @@ NSString *SavePeriodDidChangeNotification = @"SavePeriodDidChangeNotification"; - (void)popupChanged:(id)sender { NSView *view = nil; - - switch([sender indexOfSelectedItem]) - { - case 0: - view = [prefBuildingView retain]; - break; - case 1: - view = [prefSavingView retain]; - break; - case 2: - view = [prefEditingView retain]; - break; - case 3: - view = [prefMiscView retain]; - break; - case 4: - view = [prefInterfaceView retain]; - break; - } + + switch ([sender indexOfSelectedItem]) + { + case 0: + view = prefBuildingView; + break; + case 1: + view = prefSavingView; + break; + case 2: + view = prefEditingView; + break; + case 3: + view = prefMiscView; + break; + case 4: + view = prefInterfaceView; + break; + } [(NSBox *)prefEmptyView setContentView:view]; [prefEmptyView display];