mirror of
https://github.com/gnustep/apps-projectcenter.git
synced 2025-03-17 08:01:24 +00:00
Basic preferences handling
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/trunk@7533 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
c4b41a26b9
commit
299c0b49e7
5 changed files with 235 additions and 167 deletions
|
@ -32,7 +32,6 @@
|
|||
#define IMAGE(X) [[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForImageResource:(X)]] autorelease]
|
||||
#endif
|
||||
|
||||
#define BUILD_KEY @"BuildKey"
|
||||
#define BUILD_ARGS_KEY @"BuildArgsKey"
|
||||
#define BUILD_HOST_KEY @"BuildHostKey"
|
||||
|
||||
|
@ -60,13 +59,6 @@
|
|||
|
||||
typedef int PCProjInfoBits;
|
||||
|
||||
typedef enum {
|
||||
defaultTarget = 0,
|
||||
debug,
|
||||
profile,
|
||||
install
|
||||
} btarget;
|
||||
|
||||
//===========================================================================================
|
||||
// ==== Project keys
|
||||
//===========================================================================================
|
||||
|
@ -108,7 +100,6 @@ static NSString * const PCLibraryVar = @"LIBRARY_VAR";
|
|||
id buildTargetPanel;
|
||||
id buildTargetHostField;
|
||||
id buildTargetArgsField;
|
||||
id buildTargetPopup;
|
||||
|
||||
id buildStatusField;
|
||||
id targetField;
|
||||
|
@ -122,7 +113,6 @@ static NSString * const PCLibraryVar = @"LIBRARY_VAR";
|
|||
|
||||
@private
|
||||
BOOL _needsReleasing;
|
||||
btarget _target;
|
||||
}
|
||||
|
||||
//===========================================================================================
|
||||
|
@ -224,7 +214,6 @@ static NSString * const PCLibraryVar = @"LIBRARY_VAR";
|
|||
- (id)updatedFilesView;
|
||||
|
||||
- (void)showBuildTargetPanel:(id)sender;
|
||||
- (void)setTarget:(id)sender;
|
||||
- (void)setHost:(id)sender;
|
||||
- (void)setArguments:(id)sender;
|
||||
|
||||
|
|
|
@ -171,7 +171,10 @@
|
|||
[button setImage:IMAGE(@"ProjectCentre_find.tiff")];
|
||||
[button setButtonType:NSMomentaryPushButton];
|
||||
|
||||
// Status
|
||||
/*
|
||||
* Status
|
||||
*/
|
||||
|
||||
textField = [[NSTextField alloc] initWithFrame:NSMakeRect(152,296,48,15)];
|
||||
[textField setAlignment: NSRightTextAlignment];
|
||||
[textField setBordered: NO];
|
||||
|
@ -183,7 +186,10 @@
|
|||
NSViewMinYMargin)];
|
||||
[_c_view addSubview:[textField autorelease]];
|
||||
|
||||
// Status message
|
||||
/*
|
||||
* Status message
|
||||
*/
|
||||
|
||||
buildStatusField = [[NSTextField alloc] initWithFrame:NSMakeRect(204,296,104,15)];
|
||||
[buildStatusField setAlignment: NSLeftTextAlignment];
|
||||
[buildStatusField setBordered: NO];
|
||||
|
@ -196,7 +202,10 @@
|
|||
NSViewMinYMargin)];
|
||||
[_c_view addSubview:[buildStatusField autorelease]];
|
||||
|
||||
// Target
|
||||
/*
|
||||
* Target
|
||||
*/
|
||||
|
||||
textField = [[NSTextField alloc] initWithFrame:NSMakeRect(152,272,48,15)];
|
||||
[textField setAlignment: NSRightTextAlignment];
|
||||
[textField setBordered: NO];
|
||||
|
@ -208,7 +217,10 @@
|
|||
NSViewMinYMargin)];
|
||||
[_c_view addSubview:[textField autorelease]];
|
||||
|
||||
// Target message
|
||||
/*
|
||||
* Target message
|
||||
*/
|
||||
|
||||
targetField = [[NSTextField alloc] initWithFrame:NSMakeRect(204,272,104,15)];
|
||||
[targetField setAlignment: NSLeftTextAlignment];
|
||||
[targetField setBordered: NO];
|
||||
|
@ -222,39 +234,19 @@
|
|||
[_c_view addSubview:[targetField autorelease]];
|
||||
|
||||
/*
|
||||
* Build Panel
|
||||
* Build Options Panel
|
||||
*
|
||||
*/
|
||||
|
||||
_w_frame = NSMakeRect(100,100,272,104);
|
||||
_w_frame = NSMakeRect(100,100,272,80);
|
||||
buildTargetPanel = [[NSWindow alloc] initWithContentRect:_w_frame styleMask:style backing:NSBackingStoreBuffered defer:NO];
|
||||
[buildTargetPanel setDelegate:self];
|
||||
[buildTargetPanel setReleasedWhenClosed:NO];
|
||||
[buildTargetPanel setTitle:@"Build Options"];
|
||||
_c_view = [buildTargetPanel contentView];
|
||||
|
||||
buildTargetPopup = [[NSPopUpButton alloc] initWithFrame:NSMakeRect(72,24,184,20)];
|
||||
[buildTargetPopup addItemWithTitle:@"Default"];
|
||||
[buildTargetPopup addItemWithTitle:@"Debug"];
|
||||
[buildTargetPopup addItemWithTitle:@"Profile"];
|
||||
[buildTargetPopup addItemWithTitle:@"Install"];
|
||||
[buildTargetPopup autorelease];
|
||||
[buildTargetPopup setTarget:self];
|
||||
[buildTargetPopup setAction:@selector(setTarget:)];
|
||||
[_c_view addSubview:buildTargetPopup];
|
||||
|
||||
// Target (popup)
|
||||
textField = [[NSTextField alloc] initWithFrame:NSMakeRect(16,24,56,21)];
|
||||
[textField setAlignment: NSRightTextAlignment];
|
||||
[textField setBordered: NO];
|
||||
[textField setEditable: NO];
|
||||
[textField setBezeled: NO];
|
||||
[textField setDrawsBackground: NO];
|
||||
[textField setStringValue:@"Target:"];
|
||||
[_c_view addSubview:[textField autorelease]];
|
||||
|
||||
// Host
|
||||
textField = [[NSTextField alloc] initWithFrame:NSMakeRect(16,48,56,21)];
|
||||
textField = [[NSTextField alloc] initWithFrame:NSMakeRect(16,24,56,21)];
|
||||
[textField setAlignment: NSRightTextAlignment];
|
||||
[textField setBordered: NO];
|
||||
[textField setEditable: NO];
|
||||
|
@ -264,7 +256,7 @@
|
|||
[_c_view addSubview:[textField autorelease]];
|
||||
|
||||
// Host message
|
||||
buildTargetHostField = [[NSTextField alloc] initWithFrame:NSMakeRect(72,48,184,21)];
|
||||
buildTargetHostField = [[NSTextField alloc] initWithFrame:NSMakeRect(72,24,184,21)];
|
||||
[buildTargetHostField setAlignment: NSLeftTextAlignment];
|
||||
[buildTargetHostField setBordered: NO];
|
||||
[buildTargetHostField setEditable: YES];
|
||||
|
@ -277,7 +269,7 @@
|
|||
[_c_view addSubview:[buildTargetHostField autorelease]];
|
||||
|
||||
// Args
|
||||
textField = [[NSTextField alloc] initWithFrame:NSMakeRect(12,68,60,21)];
|
||||
textField = [[NSTextField alloc] initWithFrame:NSMakeRect(12,44,60,21)];
|
||||
[textField setAlignment: NSRightTextAlignment];
|
||||
[textField setBordered: NO];
|
||||
[textField setEditable: NO];
|
||||
|
@ -287,7 +279,7 @@
|
|||
[_c_view addSubview:[textField autorelease]];
|
||||
|
||||
// Args message
|
||||
buildTargetArgsField = [[NSTextField alloc] initWithFrame:NSMakeRect(72,68,184,21)];
|
||||
buildTargetArgsField = [[NSTextField alloc] initWithFrame:NSMakeRect(72,44,184,21)];
|
||||
[buildTargetArgsField setAlignment: NSLeftTextAlignment];
|
||||
[buildTargetArgsField setBordered: NO];
|
||||
[buildTargetArgsField setEditable: YES];
|
||||
|
@ -314,11 +306,7 @@
|
|||
- (id)init
|
||||
{
|
||||
if ((self = [super init])) {
|
||||
_target = defaultTarget;
|
||||
|
||||
buildOptions = [[NSMutableDictionary alloc] init];
|
||||
[buildOptions setObject:TARGET_MAKE forKey:BUILD_KEY];
|
||||
|
||||
[self _initUI];
|
||||
}
|
||||
return self;
|
||||
|
@ -735,13 +723,6 @@
|
|||
[buildTargetPanel makeKeyAndOrderFront:self];
|
||||
}
|
||||
|
||||
- (void)setTarget:(id)sender
|
||||
{
|
||||
_target = [buildTargetPopup indexOfSelectedItem];
|
||||
|
||||
[buildOptions setObject:[NSNumber numberWithInt:_target] forKey:BUILD_KEY];
|
||||
}
|
||||
|
||||
- (void)setHost:(id)sender
|
||||
{
|
||||
NSString *host = [buildTargetHostField stringValue];
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
[scrollView2 setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)];
|
||||
[scrollView2 autorelease];
|
||||
|
||||
split = [[[NSSplitView alloc] initWithFrame:NSMakeRect(8,0,496,264)] autorelease];
|
||||
split = [[[NSSplitView alloc] initWithFrame:NSMakeRect(8,0,496,288)] autorelease];
|
||||
[split setAutoresizingMask: (NSViewWidthSizable | NSViewHeightSizable)];
|
||||
[split addSubview: scrollView1];
|
||||
[split addSubview: scrollView2];
|
||||
|
@ -115,41 +115,51 @@
|
|||
[_c_view addSubview:split];
|
||||
|
||||
/*
|
||||
* Buttons
|
||||
* 5 build Buttons
|
||||
*/
|
||||
|
||||
_w_frame = NSMakeRect(8,268,144,48);
|
||||
_w_frame = NSMakeRect(8,292,244,24);
|
||||
matrix = [[[NSMatrix alloc] initWithFrame: _w_frame
|
||||
mode: NSHighlightModeMatrix
|
||||
prototype: buttonCell
|
||||
numberOfRows: 1
|
||||
numberOfColumns: 3] autorelease];
|
||||
numberOfColumns: 5] autorelease];
|
||||
[matrix setIntercellSpacing:NSMakeSize(1,1)];
|
||||
[matrix setSelectionByRect:YES];
|
||||
[matrix setAutoresizingMask: (NSViewMaxXMargin | NSViewMinYMargin)];
|
||||
[matrix setTarget:self];
|
||||
[matrix setAction:@selector(build:)];
|
||||
[_c_view addSubview:matrix];
|
||||
|
||||
button = [matrix cellAtRow:0 column:0];
|
||||
[button setImagePosition:NSImageOnly];
|
||||
[button setImage:IMAGE(@"ProjectCentre_build.tiff")];
|
||||
[button setTag:0];
|
||||
[button setImagePosition:NSNoImage];
|
||||
[button setButtonType:NSMomentaryPushButton];
|
||||
[button setTarget:self];
|
||||
[button setAction:@selector(build:)];
|
||||
[button setTitle:@"Build"];
|
||||
|
||||
button = [matrix cellAtRow:0 column:1];
|
||||
[button setImagePosition:NSImageOnly];
|
||||
[button setImage:IMAGE(@"ProjectCentre_clean.tiff")];
|
||||
[button setTag:1];
|
||||
[button setImagePosition:NSNoImage];
|
||||
[button setButtonType:NSMomentaryPushButton];
|
||||
[button setTarget:self];
|
||||
[button setAction:@selector(clean:)];
|
||||
[button setTitle:@"Clean"];
|
||||
|
||||
button = [matrix cellAtRow:0 column:2];
|
||||
[button setImagePosition:NSImageOnly];
|
||||
[button setImage:IMAGE(@"ProjectCentre_prefs.tiff")];
|
||||
[button setTarget:self];
|
||||
[button setAction:@selector(showBuildTarget:)];
|
||||
[button setTag:2];
|
||||
[button setImagePosition:NSNoImage];
|
||||
[button setButtonType:NSMomentaryPushButton];
|
||||
[button setTarget:self];
|
||||
[button setAction:@selector(install:)];
|
||||
[button setTitle:@"Debug"];
|
||||
|
||||
button = [matrix cellAtRow:0 column:3];
|
||||
[button setTag:3];
|
||||
[button setImagePosition:NSNoImage];
|
||||
[button setButtonType:NSMomentaryPushButton];
|
||||
[button setTitle:@"Profile"];
|
||||
|
||||
button = [matrix cellAtRow:0 column:4];
|
||||
[button setTag:4];
|
||||
[button setImagePosition:NSNoImage];
|
||||
[button setButtonType:NSMomentaryPushButton];
|
||||
[button setTitle:@"Install"];
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -222,42 +232,49 @@ static PCProjectBuilder *_builder;
|
|||
makeTask = [[NSTask alloc] init];
|
||||
|
||||
optionDict = [currentProject buildOptions];
|
||||
args = [NSMutableArray array];
|
||||
|
||||
if ((tg = [optionDict objectForKey:BUILD_KEY])) {
|
||||
if ([tg isEqualToString:TARGET_MAKE_DEBUG]) {
|
||||
args = [NSMutableArray array];
|
||||
[args addObject:@"debug=yes"];
|
||||
[makeTask setArguments:args];
|
||||
}
|
||||
else if ([tg isEqualToString:TARGET_MAKE_PROFILE]) {
|
||||
args = [NSMutableArray array];
|
||||
[args addObject:@"profile=YES"];
|
||||
[args addObject:@"static=YES"];
|
||||
[makeTask setArguments:args];
|
||||
}
|
||||
|
||||
[makeTask setCurrentDirectoryPath:[currentProject projectPath]];
|
||||
[makeTask setLaunchPath:makePath];
|
||||
|
||||
[makeTask setStandardOutput:logPipe];
|
||||
[makeTask setStandardError:logPipe];
|
||||
|
||||
[makeTask launch];
|
||||
|
||||
/*
|
||||
* This is just a quick hack for now...
|
||||
*/
|
||||
|
||||
while ((inData = [readHandle availableData]) && [inData length]) {
|
||||
output = [[NSString alloc] initWithData:inData encoding:NSASCIIStringEncoding];
|
||||
[logOutput setString:[NSString stringWithFormat:@"%@%@\n", [logOutput string], output]];
|
||||
[logOutput scrollRangeToVisible:NSMakeRange([[logOutput textStorage] length], 0)];
|
||||
[output release];
|
||||
}
|
||||
|
||||
[makeTask waitUntilExit];
|
||||
[makeTask autorelease];
|
||||
switch ([[sender selectedCell] tag]) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
[args addObject:@"clean"];
|
||||
break;
|
||||
case 2:
|
||||
[args addObject:@"debug=yes"];
|
||||
break;
|
||||
case 3:
|
||||
[args addObject:@"profile=yes"];
|
||||
[args addObject:@"static=yes"];
|
||||
break;
|
||||
case 4:
|
||||
[args addObject:@"install"];
|
||||
break;
|
||||
}
|
||||
|
||||
[makeTask setArguments:args];
|
||||
|
||||
[makeTask setCurrentDirectoryPath:[currentProject projectPath]];
|
||||
[makeTask setLaunchPath:makePath];
|
||||
|
||||
[makeTask setStandardOutput:logPipe];
|
||||
[makeTask setStandardError:logPipe];
|
||||
|
||||
[makeTask launch];
|
||||
|
||||
/*
|
||||
* This is just a quick hack for now...
|
||||
*/
|
||||
|
||||
while ((inData = [readHandle availableData]) && [inData length]) {
|
||||
output = [[NSString alloc] initWithData:inData encoding:NSASCIIStringEncoding];
|
||||
[logOutput setString:[NSString stringWithFormat:@"%@%@\n", [logOutput string], output]];
|
||||
[logOutput scrollRangeToVisible:NSMakeRange([[logOutput textStorage] length], 0)];
|
||||
[output release];
|
||||
}
|
||||
|
||||
[makeTask waitUntilExit];
|
||||
[makeTask autorelease];
|
||||
}
|
||||
|
||||
- (void)clean:(id)sender
|
||||
|
|
|
@ -40,6 +40,8 @@
|
|||
id failureField;
|
||||
|
||||
id autoSaveField;;
|
||||
|
||||
id useExternalEditor;
|
||||
|
||||
id editorField;
|
||||
id debuggerField;
|
||||
|
@ -47,9 +49,6 @@
|
|||
id bundlePathField;
|
||||
|
||||
NSMutableDictionary *preferencesDict;
|
||||
|
||||
@private
|
||||
BOOL _needsReleasing;
|
||||
}
|
||||
|
||||
- (id)init;
|
||||
|
@ -66,6 +65,8 @@
|
|||
- (void)setRemoveBackup:(id)sender;
|
||||
- (void)setSavePeriod:(id)sender;
|
||||
|
||||
- (void)setUseExternalEditor:(id)sender;
|
||||
|
||||
- (void)setEditor:(id)sender;
|
||||
- (void)setCompiler:(id)sender;
|
||||
- (void)setDebugger:(id)sender;
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
NSBox *line;
|
||||
NSBox *v;
|
||||
NSButton *b;
|
||||
NSTextField *textField;
|
||||
|
||||
/*
|
||||
* Pref Window
|
||||
|
@ -116,15 +117,93 @@
|
|||
[prefMiscView setBorderType:NSNoBorder];
|
||||
|
||||
v = [[[NSBox alloc] init] autorelease];
|
||||
[v setTitle:@"External"];
|
||||
[v setTitle:@"External Editor"];
|
||||
[v setFrameFromContentFrame:NSMakeRect(16,184,228,96)];
|
||||
[prefMiscView addSubview:v];
|
||||
|
||||
/*
|
||||
* Editor
|
||||
*/
|
||||
|
||||
textField = [[NSTextField alloc] initWithFrame:NSMakeRect(12,24,60,21)];
|
||||
[textField setAlignment: NSRightTextAlignment];
|
||||
[textField setBordered: NO];
|
||||
[textField setEditable: NO];
|
||||
[textField setBezeled: NO];
|
||||
[textField setDrawsBackground: NO];
|
||||
[textField setStringValue:@"Editor:"];
|
||||
[v addSubview:[textField autorelease]];
|
||||
|
||||
editorField = [[NSTextField alloc] initWithFrame:NSMakeRect(72,24,184,21)];
|
||||
[editorField setAlignment: NSLeftTextAlignment];
|
||||
[editorField setBordered: NO];
|
||||
[editorField setEditable: YES];
|
||||
[editorField setBezeled: YES];
|
||||
[editorField setDrawsBackground: YES];
|
||||
[editorField setTarget:self];
|
||||
[editorField setAction:@selector(setEditor:)];
|
||||
[v addSubview:[editorField autorelease]];
|
||||
|
||||
/*
|
||||
* Compiler
|
||||
*/
|
||||
|
||||
textField = [[NSTextField alloc] initWithFrame:NSMakeRect(12,48,60,21)];
|
||||
[textField setAlignment: NSRightTextAlignment];
|
||||
[textField setBordered: NO];
|
||||
[textField setEditable: NO];
|
||||
[textField setBezeled: NO];
|
||||
[textField setDrawsBackground: NO];
|
||||
[textField setStringValue:@"Compiler:"];
|
||||
[v addSubview:[textField autorelease]];
|
||||
|
||||
compilerField = [[NSTextField alloc] initWithFrame:NSMakeRect(72,48,184,21)];
|
||||
[compilerField setAlignment: NSLeftTextAlignment];
|
||||
[compilerField setBordered: NO];
|
||||
[compilerField setEditable: YES];
|
||||
[compilerField setBezeled: YES];
|
||||
[compilerField setDrawsBackground: YES];
|
||||
[compilerField setTarget:self];
|
||||
[compilerField setAction:@selector(setCompiler:)];
|
||||
[v addSubview:[compilerField autorelease]];
|
||||
|
||||
/*
|
||||
* Debugger
|
||||
*/
|
||||
|
||||
textField = [[NSTextField alloc] initWithFrame:NSMakeRect(12,72,60,21)];
|
||||
[textField setAlignment: NSRightTextAlignment];
|
||||
[textField setBordered: NO];
|
||||
[textField setEditable: NO];
|
||||
[textField setBezeled: NO];
|
||||
[textField setDrawsBackground: NO];
|
||||
[textField setStringValue:@"Debugger:"];
|
||||
[v addSubview:[textField autorelease]];
|
||||
|
||||
debuggerField = [[NSTextField alloc] initWithFrame:NSMakeRect(72,72,184,21)];
|
||||
[debuggerField setAlignment: NSLeftTextAlignment];
|
||||
[debuggerField setBordered: NO];
|
||||
[debuggerField setEditable: YES];
|
||||
[debuggerField setBezeled: YES];
|
||||
[debuggerField setDrawsBackground: YES];
|
||||
[debuggerField setTarget:self];
|
||||
[debuggerField setAction:@selector(setDebugger:)];
|
||||
[v addSubview:[debuggerField autorelease]];
|
||||
|
||||
v = [[[NSBox alloc] init] autorelease];
|
||||
[v setTitle:@"Bundles"];
|
||||
[v setFrameFromContentFrame:NSMakeRect(16,120,228,48)];
|
||||
[v setFrameFromContentFrame:NSMakeRect(16,120,228,24)];
|
||||
[prefMiscView addSubview:v];
|
||||
|
||||
useExternalEditor = [[[NSButton alloc] initWithFrame:NSMakeRect(32,60,144,15)] autorelease];
|
||||
[useExternalEditor setTitle:@"use external Editor"];
|
||||
[useExternalEditor setButtonType:NSSwitchButton];
|
||||
[useExternalEditor setBordered:NO];
|
||||
[useExternalEditor setTarget:self];
|
||||
[useExternalEditor setAction:@selector(setUseExternalEditor:)];
|
||||
[useExternalEditor setContinuous:NO];
|
||||
[prefMiscView addSubview:useExternalEditor];
|
||||
|
||||
b = [[[NSButton alloc] initWithFrame:NSMakeRect(32,80,144,15)] autorelease];
|
||||
[b setTitle:@"Prompt when quitting"];
|
||||
[b setButtonType:NSSwitchButton];
|
||||
|
@ -159,7 +238,7 @@
|
|||
[v addSubview:b];
|
||||
|
||||
b = [[[NSButton alloc] initWithFrame:NSMakeRect(13,13,124,15)] autorelease];
|
||||
[b setTitle:@"Remoe Backup"];
|
||||
[b setTitle:@"Remove Backup"];
|
||||
[b setButtonType:NSSwitchButton];
|
||||
[b setBordered:NO];
|
||||
[b setTarget:self];
|
||||
|
@ -171,8 +250,6 @@
|
|||
[v setTitle:@"Auto-Save"];
|
||||
[v setFrameFromContentFrame:NSMakeRect(16,104,228,80)];
|
||||
[prefSavingView addSubview:v];
|
||||
|
||||
_needsReleasing = YES;
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -195,16 +272,16 @@
|
|||
{
|
||||
[preferencesDict release];
|
||||
|
||||
if (_needsReleasing) {
|
||||
[prefWindow release];
|
||||
[prefPopup release];
|
||||
|
||||
[prefEmptyView release];
|
||||
[prefBuildingView release];
|
||||
[prefMiscView release];
|
||||
[prefSavingView release];
|
||||
}
|
||||
[prefWindow release];
|
||||
[prefPopup release];
|
||||
|
||||
[prefEmptyView release];
|
||||
[prefBuildingView release];
|
||||
[prefMiscView release];
|
||||
[prefSavingView release];
|
||||
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
@ -214,20 +291,15 @@
|
|||
id view;
|
||||
NSString *val;
|
||||
|
||||
#if defined(GNUSTEP)
|
||||
[self _initUI];
|
||||
#else
|
||||
if(![NSBundle loadNibNamed:@"Preferences.nib" owner:self]) {
|
||||
[[NSException exceptionWithName:NIB_NOT_FOUND_EXCEPTION reason:@"Could not load Preferences.gmodel" userInfo:nil] raise];
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Fill in the defaults
|
||||
[compilerField setStringValue:(val=[preferencesDict objectForKey:Compiler]) ? val : @""];
|
||||
[debuggerField setStringValue:(val=[preferencesDict objectForKey:Debugger]) ? val : @""];
|
||||
[editorField setStringValue:(val=[preferencesDict objectForKey:Editor]) ? val : @""];
|
||||
[bundlePathField setStringValue:(val=[preferencesDict objectForKey:BundlePaths]) ? val : @""];
|
||||
|
||||
[useExternalEditor setState:([[preferencesDict objectForKey:ExternalEditor] isEqualToString:@"YES"])?NSOnState:NSOffState];
|
||||
|
||||
// The popup and selected view
|
||||
[prefPopup removeAllItems];
|
||||
|
@ -305,40 +377,48 @@
|
|||
{
|
||||
}
|
||||
|
||||
- (void)setUseExternalEditor:(id)sender
|
||||
{
|
||||
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
|
||||
switch ([[sender selectedCell] state]) {
|
||||
case 0:
|
||||
[def setObject:@"NO" forKey:ExternalEditor];
|
||||
break;
|
||||
case 1:
|
||||
[def setObject:@"YES" forKey:ExternalEditor];
|
||||
break;
|
||||
}
|
||||
[def synchronize];
|
||||
}
|
||||
|
||||
- (void)setEditor:(id)sender
|
||||
{
|
||||
NSString *path = [self selectFileWithTypes:[NSArray arrayWithObjects:@"app",nil]];
|
||||
|
||||
if (path) {
|
||||
[editorField setStringValue:path];
|
||||
|
||||
[[NSUserDefaults standardUserDefaults] setObject:path forKey:Editor];
|
||||
[preferencesDict setObject:path forKey:Editor];
|
||||
}
|
||||
NSString *path = [editorField stringValue];
|
||||
|
||||
if (path) {
|
||||
[[NSUserDefaults standardUserDefaults] setObject:path forKey:Editor];
|
||||
[preferencesDict setObject:path forKey:Editor];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setCompiler:(id)sender
|
||||
{
|
||||
NSString *path = [self selectFileWithTypes:nil];
|
||||
NSString *path = [compilerField stringValue];
|
||||
|
||||
if (path) {
|
||||
[compilerField setStringValue:path];
|
||||
|
||||
[[NSUserDefaults standardUserDefaults] setObject:path forKey:Compiler];
|
||||
[preferencesDict setObject:path forKey:Compiler];
|
||||
}
|
||||
if (path) {
|
||||
[[NSUserDefaults standardUserDefaults] setObject:path forKey:Compiler];
|
||||
[preferencesDict setObject:path forKey:Compiler];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setDebugger:(id)sender
|
||||
{
|
||||
NSString *path = [self selectFileWithTypes:nil];
|
||||
|
||||
if (path) {
|
||||
[debuggerField setStringValue:path];
|
||||
|
||||
[[NSUserDefaults standardUserDefaults] setObject:path forKey:Debugger];
|
||||
[preferencesDict setObject:path forKey:Debugger];
|
||||
}
|
||||
NSString *path = [debuggerField stringValue];
|
||||
|
||||
if (path) {
|
||||
[[NSUserDefaults standardUserDefaults] setObject:path forKey:Debugger];
|
||||
[preferencesDict setObject:path forKey:Debugger];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setBundlePath:(id)sender
|
||||
|
@ -364,23 +444,23 @@
|
|||
|
||||
- (NSString *)selectFileWithTypes:(NSArray *)types
|
||||
{
|
||||
NSString *file = nil;
|
||||
NSOpenPanel *openPanel;
|
||||
int retval;
|
||||
|
||||
openPanel = [NSOpenPanel openPanel];
|
||||
[openPanel setAllowsMultipleSelection:NO];
|
||||
[openPanel setCanChooseDirectories:YES];
|
||||
[openPanel setCanChooseFiles:YES];
|
||||
|
||||
retval = [openPanel runModalForDirectory:[[NSUserDefaults standardUserDefaults] objectForKey:@"LastOpenDirectory"] file:nil types:types];
|
||||
|
||||
if (retval == NSOKButton) {
|
||||
[[NSUserDefaults standardUserDefaults] setObject:[openPanel directory] forKey:@"LastOpenDirectory"];
|
||||
file = [[openPanel filenames] objectAtIndex:0];
|
||||
NSString *file = nil;
|
||||
NSOpenPanel *openPanel;
|
||||
int retval;
|
||||
|
||||
}
|
||||
return file;
|
||||
openPanel = [NSOpenPanel openPanel];
|
||||
[openPanel setAllowsMultipleSelection:NO];
|
||||
[openPanel setCanChooseDirectories:YES];
|
||||
[openPanel setCanChooseFiles:YES];
|
||||
|
||||
retval = [openPanel runModalForDirectory:[[NSUserDefaults standardUserDefaults] objectForKey:@"LastOpenDirectory"] file:nil types:types];
|
||||
|
||||
if (retval == NSOKButton) {
|
||||
[[NSUserDefaults standardUserDefaults] setObject:[openPanel directory] forKey:@"LastOpenDirectory"];
|
||||
file = [[openPanel filenames] objectAtIndex:0];
|
||||
|
||||
}
|
||||
return file;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
Loading…
Reference in a new issue