mirror of
https://github.com/gnustep/apps-projectcenter.git
synced 2025-03-16 23:50:56 +00:00
* Headers/Protocols/Preferences.h: Add new methods.
* PCPrefController.m: Implemented set/get of preferences value dependent. All values are stored in preferences as NSString values and converted upon request to specified type. * Modules/Preferences/EditorFSC/PCEditorFSCPrefs.m: Use new methods of PCPrefController. Implemented setting of editor fonts. (setDefaults): Removed. * Modules/Preferences/Build/PCBuildPrefs.m, * Modules/Preferences/Misc/PCMiscPrefs.m, * Modules/Preferences/Saving/PCSavingPrefs.m: Use new methods of PCPrefController. (setDefaults): Removed. * Framework/PCProjectLoadedFiles.m, * Framework/PCMakefileFactory.m, * Framework/PCProject.m, * Framework/PCProjectLauncherPanel.m, * Framework/PCFileManager.m, * Framework/PCProjectBrowser.m, * Framework/PCProjectBuilder.m, * Framework/PCEditorManager.m, * Framework/PCProjectLoadedFilesPanel.m, * Framework/PCProjectLauncher.m, * Framework/PCProjectBuilderPanel.m, * Framework/PCProjectWindow.m, * PCAppController.m, * Framework/PCProjectManager.m: Use new methods of PCPrefController. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/trunk@28074 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
8300389ecf
commit
e6ce23e63b
24 changed files with 381 additions and 252 deletions
Binary file not shown.
|
@ -145,7 +145,7 @@ NSString *PCEditorDidResignActiveNotification =
|
|||
{
|
||||
id <PCPreferences> prefs = [_projectManager prefController];
|
||||
|
||||
ASSIGN(editorName, [prefs objectForKey:Editor]);
|
||||
ASSIGN(editorName, [prefs stringForKey:Editor]);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
|
|
|
@ -353,24 +353,24 @@ static PCFileManager *_mgr = nil;
|
|||
panel = [NSOpenPanel openPanel];
|
||||
[panel setCanChooseFiles:YES];
|
||||
[panel setCanChooseDirectories:NO];
|
||||
lastOpenDir = [prefs objectForKey:@"FileOpenLastDirectory"];
|
||||
lastOpenDir = [prefs stringForKey:@"FileOpenLastDirectory"];
|
||||
break;
|
||||
case PCSaveFileOperation:
|
||||
panel = [NSSavePanel savePanel];
|
||||
lastOpenDir = [prefs objectForKey:@"FileSaveLastDirectory"];
|
||||
lastOpenDir = [prefs stringForKey:@"FileSaveLastDirectory"];
|
||||
break;
|
||||
case PCOpenProjectOperation:
|
||||
panel = [NSOpenPanel openPanel];
|
||||
[panel setAllowsMultipleSelection:NO];
|
||||
[panel setCanChooseFiles:YES];
|
||||
[panel setCanChooseDirectories:YES];
|
||||
lastOpenDir = [prefs objectForKey:@"ProjectOpenLastDirectory"];
|
||||
lastOpenDir = [prefs stringForKey:@"ProjectOpenLastDirectory"];
|
||||
break;
|
||||
case PCOpenDirectoryOperation:
|
||||
panel = [NSOpenPanel openPanel];
|
||||
[panel setCanChooseFiles:NO];
|
||||
[panel setCanChooseDirectories:YES];
|
||||
lastOpenDir = [prefs objectForKey:@"FileOpenLastDirectory"];
|
||||
lastOpenDir = [prefs stringForKey:@"FileOpenLastDirectory"];
|
||||
break;
|
||||
case PCAddFileOperation:
|
||||
if (addFilesPanel == nil)
|
||||
|
@ -378,7 +378,7 @@ static PCFileManager *_mgr = nil;
|
|||
addFilesPanel = [PCAddFilesPanel addFilesPanel];
|
||||
}
|
||||
panel = addFilesPanel;
|
||||
lastOpenDir = [prefs objectForKey:@"FileAddLastDirectory"];
|
||||
lastOpenDir = [prefs stringForKey:@"FileAddLastDirectory"];
|
||||
break;
|
||||
default:
|
||||
return nil;
|
||||
|
@ -430,7 +430,7 @@ static PCFileManager *_mgr = nil;
|
|||
|
||||
if (key != nil)
|
||||
{
|
||||
[prefs setObject:[panel directory] forKey:key notify:NO];
|
||||
[prefs setString:[panel directory] forKey:key notify:NO];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ static PCMakefileFactory *_factory = nil;
|
|||
- (void)createMakefileForProject:(PCProject *)project
|
||||
{
|
||||
id <PCPreferences> prefs = [[project projectManager] prefController];
|
||||
NSString *buildDir = [prefs objectForKey:RootBuildDirectory];
|
||||
NSString *buildDir = [prefs stringForKey:RootBuildDirectory];
|
||||
NSString *prName = [project projectName];
|
||||
NSString *buildName = [prName stringByAppendingPathExtension:@"build"];
|
||||
NSString *instDir = [[project projectDict] objectForKey:PCInstallDir];
|
||||
|
|
|
@ -125,13 +125,9 @@ NSString
|
|||
- (void)loadPreferences:(NSNotification *)aNotification
|
||||
{
|
||||
id <PCPreferences> prefs = [projectManager prefController];
|
||||
NSString *val;
|
||||
|
||||
val = [prefs objectForKey:RememberWindows];
|
||||
rememberWindows = ([val isEqualToString:@"YES"]) ? YES : NO;
|
||||
|
||||
val = [prefs objectForKey:KeepBackup];
|
||||
keepBackup = ([val isEqualToString:@"YES"]) ? YES : NO;
|
||||
rememberWindows = [prefs boolForKey:RememberWindows];
|
||||
keepBackup = [prefs boolForKey:KeepBackup];
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
|
|
|
@ -439,7 +439,7 @@ NSString *PCBrowserDidSetPathNotification = @"PCBrowserDidSetPathNotification";
|
|||
// from Info-gnustep.plist file of PC.
|
||||
if(foundApp == NO || [appName isEqualToString:@"ProjectCenter.app"])
|
||||
{
|
||||
appName = [prefs objectForKey:Editor];
|
||||
appName = [prefs stringForKey:Editor];
|
||||
|
||||
if (![appName isEqualToString:@"ProjectCenter"])
|
||||
{
|
||||
|
|
|
@ -246,16 +246,14 @@
|
|||
- (void)loadPreferences:(NSNotification *)aNotification
|
||||
{
|
||||
id <PCPreferences> prefs = [[project projectManager] prefController];
|
||||
NSString *val;
|
||||
|
||||
ASSIGN(successSound, [prefs objectForKey:SuccessSound]);
|
||||
ASSIGN(failureSound, [prefs objectForKey:FailureSound]);
|
||||
ASSIGN(successSound, [prefs stringForKey:SuccessSound]);
|
||||
ASSIGN(failureSound, [prefs stringForKey:FailureSound]);
|
||||
|
||||
ASSIGN(rootBuildDir, [prefs objectForKey:RootBuildDirectory]);
|
||||
ASSIGN(buildTool, [prefs objectForKey:BuildTool]);
|
||||
ASSIGN(rootBuildDir, [prefs stringForKey:RootBuildDirectory]);
|
||||
ASSIGN(buildTool, [prefs stringForKey:BuildTool]);
|
||||
|
||||
val = [prefs objectForKey:PromptOnClean];
|
||||
promptOnClean = ([val isEqualToString:@"YES"]) ? YES : NO;
|
||||
promptOnClean = [prefs boolForKey:PromptOnClean];
|
||||
}
|
||||
|
||||
- (void)updateTargetField
|
||||
|
@ -382,14 +380,12 @@
|
|||
|
||||
- (void)startClean:(id)sender
|
||||
{
|
||||
id <PCPreferences> prefs = [[project projectManager] prefController];
|
||||
|
||||
if ([self stopMake:self] == YES)
|
||||
{// We've just stopped build process
|
||||
return;
|
||||
}
|
||||
|
||||
if ([[prefs objectForKey:PromptOnClean] isEqualToString:@"YES"])
|
||||
if (promptOnClean)
|
||||
{
|
||||
if (NSRunAlertPanel(@"Project Clean",
|
||||
@"Do you really want to clean project '%@'?",
|
||||
|
|
|
@ -118,7 +118,7 @@
|
|||
PCProject *rootProject;
|
||||
id <PCPreferences> prefs = [projectManager prefController];
|
||||
|
||||
if ([[prefs objectForKey:UseTearOffWindows] isEqualToString:@"NO"])
|
||||
if (![prefs boolForKey:UseTearOffWindows])
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -257,7 +257,7 @@ enum {
|
|||
|
||||
|
||||
// Debugger
|
||||
gdbPath = [[[project projectManager] prefController] objectForKey:Debugger];
|
||||
gdbPath = [[[project projectManager] prefController] stringForKey:Debugger];
|
||||
if (gdbPath == nil)
|
||||
{
|
||||
gdbPath = [NSString stringWithString:@"/usr/bin/gdb"];
|
||||
|
|
|
@ -128,7 +128,7 @@
|
|||
PCProject *rootProject;
|
||||
id <PCPreferences> prefs = [projectManager prefController];
|
||||
|
||||
if ([[prefs objectForKey:UseTearOffWindows] isEqualToString:@"NO"])
|
||||
if (![prefs boolForKey:UseTearOffWindows])
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -80,7 +80,7 @@
|
|||
[filesScroll setDocumentView:filesList];
|
||||
[filesScroll setHasHorizontalScroller:NO];
|
||||
[filesScroll setHasVerticalScroller:YES];
|
||||
if ([[prefs objectForKey:UseTearOffWindows] isEqualToString:@"NO"])
|
||||
if (![prefs boolForKey:UseTearOffWindows])
|
||||
{
|
||||
[filesScroll setBorderType:NSBezelBorder];
|
||||
}
|
||||
|
|
|
@ -128,7 +128,7 @@
|
|||
PCProject *rootProject;
|
||||
id <PCPreferences> prefs = [projectManager prefController];
|
||||
|
||||
if ([[prefs objectForKey:UseTearOffWindows] isEqualToString:@"NO"])
|
||||
if (![prefs boolForKey:UseTearOffWindows])
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -217,7 +217,7 @@ NSString *PCActiveProjectDidChangeNotification = @"PCActiveProjectDidChange";
|
|||
/* interval = [[[PCPrefController sharedPCPreferences]
|
||||
objectForKey:AutoSavePeriod] intValue];*/
|
||||
|
||||
interval = [[prefController objectForKey:AutoSavePeriod] intValue];
|
||||
interval = [[prefController stringForKey:AutoSavePeriod] intValue];
|
||||
|
||||
if (interval > 0 && saveTimer == nil)
|
||||
{
|
||||
|
@ -300,8 +300,7 @@ NSString *PCActiveProjectDidChangeNotification = @"PCActiveProjectDidChange";
|
|||
|
||||
- (NSPanel *)loadedFilesPanel
|
||||
{
|
||||
if (!loadedFilesPanel
|
||||
&& [[prefController objectForKey:UseTearOffWindows] isEqualToString:@"YES"])
|
||||
if (!loadedFilesPanel && [prefController boolForKey:UseTearOffWindows])
|
||||
{
|
||||
loadedFilesPanel =
|
||||
[[PCProjectLoadedFilesPanel alloc] initWithProjectManager:self];
|
||||
|
@ -312,7 +311,7 @@ NSString *PCActiveProjectDidChangeNotification = @"PCActiveProjectDidChange";
|
|||
|
||||
- (void)showProjectLoadedFiles:(id)sender
|
||||
{
|
||||
if ([[prefController objectForKey:UseTearOffWindows] isEqualToString:@"YES"])
|
||||
if ([prefController boolForKey:UseTearOffWindows])
|
||||
{
|
||||
[[self loadedFilesPanel] orderFront:nil];
|
||||
}
|
||||
|
@ -320,8 +319,7 @@ NSString *PCActiveProjectDidChangeNotification = @"PCActiveProjectDidChange";
|
|||
|
||||
- (NSPanel *)buildPanel
|
||||
{
|
||||
if (!buildPanel
|
||||
&& [[prefController objectForKey:UseTearOffWindows] isEqualToString:@"YES"])
|
||||
if (!buildPanel && [prefController boolForKey:UseTearOffWindows])
|
||||
{
|
||||
buildPanel = [[PCProjectBuilderPanel alloc] initWithProjectManager:self];
|
||||
}
|
||||
|
@ -331,8 +329,7 @@ NSString *PCActiveProjectDidChangeNotification = @"PCActiveProjectDidChange";
|
|||
|
||||
- (NSPanel *)launchPanel
|
||||
{
|
||||
if (!launchPanel
|
||||
&& [[prefController objectForKey:UseTearOffWindows] isEqualToString:@"YES"])
|
||||
if (!launchPanel && [prefController boolForKey:UseTearOffWindows])
|
||||
{
|
||||
launchPanel = [[PCProjectLauncherPanel alloc] initWithProjectManager:self];
|
||||
}
|
||||
|
@ -394,7 +391,7 @@ NSString *PCActiveProjectDidChangeNotification = @"PCActiveProjectDidChange";
|
|||
// PCLogInfo(self, @"saveAllProjectsIfNeeded");
|
||||
|
||||
// If this method was called not by NSTimer, check if we should save projects
|
||||
if ([[prefController objectForKey:SaveOnQuit] isEqualToString:@"YES"])
|
||||
if ([prefController boolForKey:SaveOnQuit])
|
||||
{
|
||||
[self saveAllProjects];
|
||||
}
|
||||
|
@ -978,7 +975,7 @@ NSString *PCActiveProjectDidChangeNotification = @"PCActiveProjectDidChange";
|
|||
|
||||
- (void)closeProject
|
||||
{
|
||||
if ([[prefController objectForKey:SaveOnQuit] isEqualToString:@"YES"])
|
||||
if ([prefController boolForKey:SaveOnQuit])
|
||||
{
|
||||
[activeProject save];
|
||||
}
|
||||
|
@ -996,7 +993,7 @@ NSString *PCActiveProjectDidChangeNotification = @"PCActiveProjectDidChange";
|
|||
while ([loadedProjects count] > 0)
|
||||
{
|
||||
project = [enumerator nextObject];
|
||||
if ([[prefController objectForKey:SaveOnQuit] isEqualToString:@"YES"])
|
||||
if ([prefController boolForKey:SaveOnQuit])
|
||||
{
|
||||
[project save];
|
||||
}
|
||||
|
|
|
@ -84,7 +84,7 @@
|
|||
|
||||
[loadedFilesButton setToolTip:@"Loaded Files"];
|
||||
[loadedFilesButton setImage:IMAGE(@"Files")];
|
||||
if ([[prefs objectForKey:UseTearOffWindows] isEqualToString:@"NO"])
|
||||
if (![prefs boolForKey:UseTearOffWindows])
|
||||
{
|
||||
[loadedFilesButton setEnabled:NO];
|
||||
}
|
||||
|
@ -133,7 +133,7 @@
|
|||
/*
|
||||
* LoadedFiles
|
||||
*/
|
||||
if ([[prefs objectForKey:UseTearOffWindows] isEqualToString:@"NO"])
|
||||
if (![prefs boolForKey:UseTearOffWindows])
|
||||
{
|
||||
[self showProjectLoadedFiles:self];
|
||||
}
|
||||
|
@ -313,7 +313,7 @@
|
|||
NSLog(@"ProjectWindow showProjectBuild: componentView RC:%i",
|
||||
[view retainCount]);
|
||||
|
||||
if ([[prefs objectForKey:UseTearOffWindows] isEqualToString:@"YES"])
|
||||
if ([prefs boolForKey:UseTearOffWindows])
|
||||
{
|
||||
if ([customView contentView] == view)
|
||||
{
|
||||
|
@ -343,7 +343,7 @@
|
|||
view = [[project projectLauncher] componentView];
|
||||
launchPanel = [[project projectManager] launchPanel];
|
||||
|
||||
if ([[prefs objectForKey:UseTearOffWindows] isEqualToString:@"YES"])
|
||||
if ([prefs boolForKey:UseTearOffWindows])
|
||||
{
|
||||
if ([customView contentView] == view)
|
||||
{
|
||||
|
@ -373,7 +373,7 @@
|
|||
|
||||
// PCLogInfo(self, @"showProjectLoadedFiles");
|
||||
|
||||
if ([[prefs objectForKey:UseTearOffWindows] isEqualToString:@"YES"])
|
||||
if ([prefs boolForKey:UseTearOffWindows])
|
||||
{
|
||||
[componentView setBorderType:NSNoBorder];
|
||||
[componentView removeFromSuperview];
|
||||
|
@ -555,7 +555,7 @@
|
|||
return;
|
||||
}*/
|
||||
|
||||
if ([[prefs objectForKey:UseTearOffWindows] isEqualToString:@"YES"])
|
||||
if ([prefs boolForKey:UseTearOffWindows])
|
||||
{
|
||||
// Project Build
|
||||
if ([[[project projectBuilder] componentView] window] == projectWindow)
|
||||
|
|
|
@ -32,15 +32,37 @@
|
|||
|
||||
@protocol PCPreferences <NSObject>
|
||||
|
||||
- (id)objectForKey:(NSString *)key;
|
||||
- (void)setObject:(id)anObject forKey:(NSString *)aKey notify:(BOOL)notify;
|
||||
- (NSString *)stringForKey:(NSString *)key;
|
||||
- (NSString *)stringForKey:(NSString *)key
|
||||
defaultValue:(NSString *)defaultValue;
|
||||
|
||||
- (BOOL)boolForKey:(NSString *)key;
|
||||
- (BOOL)boolForKey:(NSString *)key
|
||||
defaultValue:(BOOL)defaultValue;
|
||||
|
||||
- (float)floatForKey:(NSString *)key;
|
||||
- (float)floatForKey:(NSString *)key
|
||||
defaultValue:(float)defaultValue;
|
||||
|
||||
- (void)setString:(NSString *)stringValue
|
||||
forKey:(NSString *)aKey
|
||||
notify:(BOOL)notify;
|
||||
- (void)setBool:(BOOL)boolValue
|
||||
forKey:(NSString *)aKey
|
||||
notify:(BOOL)notify;
|
||||
- (void)setFloat:(float)floatValue
|
||||
forKey:(NSString *)aKey
|
||||
notify:(BOOL)notify;
|
||||
|
||||
//- (id)objectForKey:(NSString *)key;
|
||||
//- (void)setObject:(id)anObject forKey:(NSString *)aKey notify:(BOOL)notify;
|
||||
|
||||
@end
|
||||
|
||||
@protocol PCPrefsSection <NSObject>
|
||||
|
||||
- (id)initWithPrefController:(id <PCPreferences>)aPrefs;
|
||||
- (void)setDefaults;
|
||||
//- (void)setDefaults;
|
||||
- (void)readPreferences;
|
||||
- (NSView *)view;
|
||||
|
||||
|
|
|
@ -76,42 +76,29 @@
|
|||
}
|
||||
|
||||
// Protocol
|
||||
- (void)setDefaults
|
||||
{
|
||||
[prefs setObject:@"" forKey:SuccessSound notify:NO];
|
||||
[prefs setObject:@"" forKey:FailureSound notify:NO];
|
||||
[prefs setObject:@"" forKey:RootBuildDirectory notify:NO];
|
||||
[prefs setObject:PCDefaultBuildTool forKey:BuildTool notify:NO];
|
||||
[prefs setObject:@"YES" forKey:DeleteCacheWhenQuitting notify:NO];
|
||||
[prefs setObject:@"YES" forKey:PromptOnClean notify:NO];
|
||||
}
|
||||
|
||||
- (void)readPreferences
|
||||
{
|
||||
NSString *val;
|
||||
BOOL bVal;
|
||||
int state;
|
||||
|
||||
if (!(val = [prefs objectForKey:SuccessSound]))
|
||||
val = @"";
|
||||
val = [prefs stringForKey:SuccessSound defaultValue:@""];
|
||||
[successField setStringValue:val];
|
||||
if (!(val = [prefs objectForKey:FailureSound]))
|
||||
val = @"";
|
||||
val = [prefs stringForKey:FailureSound defaultValue:@""];
|
||||
[failureField setStringValue:val];
|
||||
|
||||
if (!(val = [prefs objectForKey:RootBuildDirectory]))
|
||||
val = @"";
|
||||
val = [prefs stringForKey:RootBuildDirectory defaultValue:@""];
|
||||
[rootBuildDirField setStringValue:val];
|
||||
|
||||
if (!(val = [prefs objectForKey:BuildTool]))
|
||||
val = PCDefaultBuildTool;
|
||||
val = [prefs stringForKey:BuildTool defaultValue:PCDefaultBuildTool];
|
||||
[buildToolField setStringValue:val];
|
||||
|
||||
val = [prefs objectForKey:DeleteCacheWhenQuitting];
|
||||
state = [val isEqualToString:@"YES"] ? NSOnState : NSOffState;
|
||||
bVal = [prefs boolForKey:DeleteCacheWhenQuitting defaultValue:YES];
|
||||
state = bVal ? NSOnState : NSOffState;
|
||||
[deleteCache setState:state];
|
||||
|
||||
val = [prefs objectForKey:PromptOnClean];
|
||||
state = [val isEqualToString:@"YES"] ? NSOnState : NSOffState;
|
||||
bVal = [prefs boolForKey:PromptOnClean defaultValue:YES];
|
||||
state = bVal ? NSOnState : NSOffState;
|
||||
[promptOnClean setState:state];
|
||||
}
|
||||
|
||||
|
@ -153,7 +140,7 @@
|
|||
if (path)
|
||||
{
|
||||
[successField setStringValue:path];
|
||||
[prefs setObject:path forKey:SuccessSound notify:YES];
|
||||
[prefs setString:path forKey:SuccessSound notify:YES];
|
||||
}
|
||||
|
||||
[[buildingView window] makeFirstResponder:successField];
|
||||
|
@ -183,7 +170,7 @@
|
|||
if (path)
|
||||
{
|
||||
[failureField setStringValue:path];
|
||||
[prefs setObject:path forKey:FailureSound notify:YES];
|
||||
[prefs setString:path forKey:FailureSound notify:YES];
|
||||
}
|
||||
|
||||
[[buildingView window] makeFirstResponder:failureField];
|
||||
|
@ -212,7 +199,7 @@
|
|||
if (path)
|
||||
{
|
||||
[rootBuildDirField setStringValue:path];
|
||||
[prefs setObject:path forKey:RootBuildDirectory notify:YES];
|
||||
[prefs setString:path forKey:RootBuildDirectory notify:YES];
|
||||
}
|
||||
|
||||
[[buildingView window] makeFirstResponder:rootBuildDirField];
|
||||
|
@ -241,7 +228,7 @@
|
|||
if (path)
|
||||
{
|
||||
[buildToolField setStringValue:path];
|
||||
[prefs setObject:path forKey:BuildTool notify:YES];
|
||||
[prefs setString:path forKey:BuildTool notify:YES];
|
||||
}
|
||||
|
||||
[[buildingView window] makeFirstResponder:buildToolField];
|
||||
|
@ -249,7 +236,7 @@
|
|||
|
||||
- (void)setDeleteCache:(id)sender
|
||||
{
|
||||
NSString *state;
|
||||
BOOL state;
|
||||
|
||||
if (deleteCache == nil)
|
||||
{// HACK!!! need to be fixed in GNUstep
|
||||
|
@ -257,13 +244,13 @@
|
|||
return;
|
||||
}
|
||||
|
||||
state = ([sender state] == NSOffState) ? @"NO" : @"YES";
|
||||
[prefs setObject:state forKey:DeleteCacheWhenQuitting notify:YES];
|
||||
state = ([sender state] == NSOffState) ? NO : YES;
|
||||
[prefs setBool:state forKey:DeleteCacheWhenQuitting notify:YES];
|
||||
}
|
||||
|
||||
- (void)setPromptOnClean:(id)sender
|
||||
{
|
||||
NSString *state;
|
||||
BOOL state;
|
||||
|
||||
if (promptOnClean == nil)
|
||||
{// HACK!!! need to be fixed in GNUstep
|
||||
|
@ -271,9 +258,8 @@
|
|||
return;
|
||||
}
|
||||
|
||||
state = ([sender state] == NSOffState) ? @"NO" : @"YES";
|
||||
NSLog(@"Set PromptOnClean to %@", state);
|
||||
[prefs setObject:state forKey:PromptOnClean notify:YES];
|
||||
state = ([sender state] == NSOffState) ? NO : YES;
|
||||
[prefs setBool:state forKey:PromptOnClean notify:YES];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -56,6 +56,9 @@
|
|||
IBOutlet NSColorWell *foregroundColorWell;
|
||||
IBOutlet NSColorWell *backgroundColorWell;
|
||||
IBOutlet NSColorWell *selectionColorWell;
|
||||
|
||||
NSFont *currentPlainFont;
|
||||
NSFont *currentRichFont;
|
||||
}
|
||||
|
||||
- (void)setEditorPlainTextFont:(id)sender;
|
||||
|
|
|
@ -28,6 +28,30 @@
|
|||
|
||||
#import "PCEditorFSCPrefs.h"
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// --- PCEditorFSCPrefsFontButton created to forward changeFont: message
|
||||
// --- to PCEditorFSCPrefs class
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
@interface PCEditorFSCPrefsFontButton : NSButton
|
||||
{
|
||||
}
|
||||
@end
|
||||
@implementation PCEditorFSCPrefsFontButton
|
||||
|
||||
- (void)changeFont:(id)sender
|
||||
{
|
||||
[[_cell target] changeFont:sender];
|
||||
}
|
||||
|
||||
- (BOOL)resignFirstResponder
|
||||
{
|
||||
[[NSFontPanel sharedFontPanel] close];
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation PCEditorFSCPrefs
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@ -44,6 +68,8 @@
|
|||
}
|
||||
|
||||
prefs = aPrefs;
|
||||
currentPlainFont = nil;
|
||||
currentRichFont = nil;
|
||||
|
||||
RETAIN(editorFSCView);
|
||||
|
||||
|
@ -65,56 +91,97 @@
|
|||
|
||||
- (void)awakeFromNib
|
||||
{
|
||||
[plainTextFontButton setRefusesFirstResponder:YES];
|
||||
[plainTextFontField setDelegate:self];
|
||||
[richTextFontButton setRefusesFirstResponder:YES];
|
||||
[plainTextFontButton setTarget:self];
|
||||
[plainTextFontField setAllowsEditingTextAttributes:YES];
|
||||
|
||||
[richTextFontButton setTarget:self];
|
||||
[richTextFontField setAllowsEditingTextAttributes:YES];
|
||||
}
|
||||
|
||||
// Protocol
|
||||
- (void)setDefaults
|
||||
// ----------------------------------------------------------------------------
|
||||
// --- Utility methods
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
- (void)pickFont:(NSFont *)currentFont
|
||||
{
|
||||
[prefs setObject:@"30" forKey:EditorLines notify:NO];
|
||||
[prefs setObject:@"80" forKey:EditorColumns notify:NO];
|
||||
NSFontManager *fontManager = [NSFontManager sharedFontManager];
|
||||
|
||||
[fontManager setSelectedFont:currentPlainFont isMultiple:NO];
|
||||
[fontManager orderFrontFontPanel:self];
|
||||
}
|
||||
|
||||
- (void)changeFont:(id)sender
|
||||
{
|
||||
NSButton *button = (NSButton *)[[editorFSCView window] firstResponder];
|
||||
int buttonTag;
|
||||
NSFont *font;
|
||||
NSString *fontString;
|
||||
|
||||
if (![button isKindOfClass:[NSButton class]])
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
font = [sender convertFont:currentPlainFont];
|
||||
fontString = [NSString stringWithFormat:@"%@ %0.1f",
|
||||
[font fontName], [font pointSize]];
|
||||
|
||||
buttonTag = [button tag];
|
||||
if (buttonTag == 0) // plain text font button
|
||||
{
|
||||
[plainTextFontField setStringValue:fontString];
|
||||
[plainTextFontField setFont:font];
|
||||
[prefs setString:[font fontName] forKey:EditorPlainTextFont notify:YES];
|
||||
[prefs setFloat:[font pointSize]
|
||||
forKey:EditorPlainTextFontSize
|
||||
notify:YES];
|
||||
}
|
||||
else if (buttonTag == 1) // rich text font button
|
||||
{
|
||||
[richTextFontField setStringValue:fontString];
|
||||
[richTextFontField setFont:font];
|
||||
[prefs setString:[font fontName] forKey:EditorRichTextFont notify:YES];
|
||||
[prefs setFloat:[font pointSize]
|
||||
forKey:EditorRichTextFontSize
|
||||
notify:YES];
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// --- Protocol
|
||||
// ----------------------------------------------------------------------------
|
||||
- (void)readPreferences
|
||||
{
|
||||
NSString *fontName;
|
||||
float fontSize;
|
||||
NSFont *plainFont = [NSFont userFixedPitchFontOfSize:0.0];
|
||||
NSFont *richFont = [NSFont systemFontOfSize:0.0];
|
||||
NSString *val;
|
||||
NSNumber *fval;
|
||||
NSFont *font;
|
||||
|
||||
// Plain text font
|
||||
font = [NSFont userFixedPitchFontOfSize:0.0];
|
||||
if (!(val = [prefs objectForKey:EditorPlainTextFont]))
|
||||
{
|
||||
val = [font fontName];
|
||||
}
|
||||
if (!(val = [prefs objectForKey:EditorPlainTextFontSize]))
|
||||
{
|
||||
fval = [NSNumber numberWithFloat:[font pointSize]];
|
||||
}
|
||||
[plainTextFontField setStringValue:
|
||||
[NSString stringWithFormat:@"%@ %0.1f", val, [fval floatValue]]];
|
||||
fontName = [prefs stringForKey:EditorPlainTextFont
|
||||
defaultValue:[plainFont fontName]];
|
||||
fontSize = [prefs floatForKey:EditorPlainTextFontSize
|
||||
defaultValue:[plainFont pointSize]];
|
||||
currentPlainFont = [NSFont fontWithName:fontName size:fontSize];
|
||||
[plainTextFontField setStringValue:[NSString stringWithFormat:@"%@ %0.1f",
|
||||
[currentPlainFont fontName], [currentPlainFont pointSize]]];
|
||||
[plainTextFontField setFont:currentPlainFont];
|
||||
|
||||
/* // Rich text font
|
||||
font = [NSFont systemFontOfSize:0.0];
|
||||
if (!(val = [prefs objectForKey:EditorRichTextFont]))
|
||||
{
|
||||
val = [font fontName];
|
||||
}
|
||||
if (!(fval = [prefs objectForKey:EditorRichTextFontSize]))
|
||||
{
|
||||
fval = [font pointSize];
|
||||
}
|
||||
[richTextFontField setStringValue:
|
||||
[NSString stringWithFormat:@"%@ %0.1f", val, fval];*/
|
||||
// Rich text font
|
||||
fontName = [prefs stringForKey:EditorRichTextFont
|
||||
defaultValue:[richFont fontName]];
|
||||
fontSize = [prefs floatForKey:EditorRichTextFontSize
|
||||
defaultValue:[richFont pointSize]];
|
||||
currentRichFont = [NSFont fontWithName:fontName size:fontSize];
|
||||
[richTextFontField setStringValue:[NSString stringWithFormat:@"%@ %0.1f",
|
||||
[currentRichFont fontName], [currentRichFont pointSize]]];
|
||||
[richTextFontField setFont:currentRichFont];
|
||||
|
||||
// Editor window size
|
||||
if (!(val = [prefs objectForKey:EditorLines]))
|
||||
val = @"30";
|
||||
val = [prefs stringForKey:EditorLines defaultValue:@"30"];
|
||||
[editorLinesField setStringValue:val];
|
||||
if (!(val = [prefs objectForKey:EditorColumns]))
|
||||
val = @"80";
|
||||
val = [prefs stringForKey:EditorColumns defaultValue:@"80"];
|
||||
[editorColumnsField setStringValue:val];
|
||||
}
|
||||
|
||||
|
@ -123,29 +190,26 @@
|
|||
return editorFSCView;
|
||||
}
|
||||
|
||||
// Actions
|
||||
// ----------------------------------------------------------------------------
|
||||
// --- Actions
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
- (void)setEditorPlainTextFont:(id)sender
|
||||
{
|
||||
NSFontManager *fm = [NSFontManager sharedFontManager];
|
||||
NSFont *currentFont;
|
||||
|
||||
[[editorFSCView window] makeFirstResponder:plainTextFontField];
|
||||
currentFont = [NSFont
|
||||
fontWithName:[prefs objectForKey:EditorPlainTextFont]
|
||||
size:[[prefs objectForKey:EditorPlainTextFontSize] floatValue]];
|
||||
|
||||
[fm setSelectedFont:currentFont isMultiple:NO];
|
||||
[fm orderFrontFontPanel:self];
|
||||
[[editorFSCView window] makeFirstResponder:plainTextFontButton];
|
||||
[self pickFont:currentPlainFont];
|
||||
}
|
||||
|
||||
- (void)setEditorRichTextFont:(id)sender
|
||||
{
|
||||
[[editorFSCView window] makeFirstResponder:richTextFontButton];
|
||||
[self pickFont:currentRichFont];
|
||||
}
|
||||
|
||||
- (void)setEditorSize:(id)sender
|
||||
{
|
||||
NSString *val = nil;
|
||||
NSString *key = nil;
|
||||
NSString *val;
|
||||
NSString *key;
|
||||
|
||||
if (sender == editorLinesField)
|
||||
{
|
||||
|
@ -158,20 +222,12 @@
|
|||
val = [editorColumnsField stringValue];
|
||||
}
|
||||
|
||||
[prefs setObject:val forKey:key notify:YES];
|
||||
[prefs setString:val forKey:key notify:YES];
|
||||
}
|
||||
|
||||
- (void)setEditorColor:(id)sender
|
||||
{
|
||||
}
|
||||
|
||||
-(void)changeFont:(id)sender
|
||||
{
|
||||
NSLog(@"%@: Font: '%@ %0.1f'", [sender className],
|
||||
[[NSFont userFixedPitchFontOfSize:0.0] fontName],
|
||||
[[NSFont userFixedPitchFontOfSize:0.0] pointSize]);
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
|
|
@ -21,4 +21,18 @@
|
|||
);
|
||||
Super = NSObject;
|
||||
};
|
||||
PCEditorFSCPrefsFontButton = {
|
||||
Actions = (
|
||||
);
|
||||
Outlets = (
|
||||
);
|
||||
Super = NSButton;
|
||||
};
|
||||
PCEditorFSCPrefsView = {
|
||||
Actions = (
|
||||
);
|
||||
Outlets = (
|
||||
);
|
||||
Super = NSBox;
|
||||
};
|
||||
}
|
Binary file not shown.
|
@ -76,49 +76,36 @@
|
|||
}
|
||||
|
||||
// Protocol
|
||||
- (void)setDefaults
|
||||
{
|
||||
[prefs setObject:@"YES" forKey:PromptOnQuit notify:NO];
|
||||
[prefs setObject:@"YES" forKey:FullPathInFilePanels notify:NO];
|
||||
[prefs setObject:@"YES" forKey:RememberWindows notify:NO];
|
||||
[prefs setObject:@"NO" forKey:DisplayLog notify:NO];
|
||||
[prefs setObject:@"YES" forKey:UseTearOffWindows notify:NO];
|
||||
|
||||
[prefs setObject:@"/usr/bin/gdb" forKey:Debugger notify:NO];
|
||||
[prefs setObject:@"ProjectCenter" forKey:Editor notify:NO];
|
||||
}
|
||||
|
||||
- (void)readPreferences
|
||||
{
|
||||
NSString *val;
|
||||
BOOL bVal;
|
||||
int state;
|
||||
|
||||
val = [prefs objectForKey:PromptOnQuit];
|
||||
state = [val isEqualToString:@"YES"] ? NSOnState : NSOffState;
|
||||
bVal = [prefs boolForKey:PromptOnQuit defaultValue:YES];
|
||||
state = bVal ? NSOnState : NSOffState;
|
||||
[promptWhenQuit setState:state];
|
||||
|
||||
val = [prefs objectForKey:FullPathInFilePanels];
|
||||
state = [val isEqualToString:@"YES"] ? NSOnState : NSOffState;
|
||||
bVal = [prefs boolForKey:FullPathInFilePanels defaultValue:YES];
|
||||
state = bVal ? NSOnState : NSOffState;
|
||||
[fullPathInFilePanels setState:state];
|
||||
|
||||
val = [prefs objectForKey:RememberWindows];
|
||||
state = [val isEqualToString:@"YES"] ? NSOnState : NSOffState;
|
||||
bVal = [prefs boolForKey:RememberWindows defaultValue:YES];
|
||||
state = bVal ? NSOnState : NSOffState;
|
||||
[rememberWindows setState:state];
|
||||
|
||||
val = [prefs objectForKey:DisplayLog];
|
||||
state = [val isEqualToString:@"YES"] ? NSOnState : NSOffState;
|
||||
bVal = [prefs boolForKey:DisplayLog defaultValue:NO];
|
||||
state = bVal ? NSOnState : NSOffState;
|
||||
[displayLog setState:state];
|
||||
|
||||
val = [prefs objectForKey:UseTearOffWindows];
|
||||
state = [val isEqualToString:@"YES"] ? NSOnState : NSOffState;
|
||||
bVal = [prefs boolForKey:UseTearOffWindows defaultValue:YES];
|
||||
state = bVal ? NSOnState : NSOffState;
|
||||
[useTearOffWindows setState:state];
|
||||
|
||||
if (!(val = [prefs objectForKey:Debugger]))
|
||||
val = PCDefaultDebugger;
|
||||
val = [prefs stringForKey:Debugger defaultValue:PCDefaultDebugger];
|
||||
[debuggerField setStringValue:val];
|
||||
|
||||
if (!(val = [prefs objectForKey:Editor]))
|
||||
val = @"ProjectCenter";
|
||||
val = [prefs stringForKey:Editor defaultValue:@"ProjectCenter"];
|
||||
[editorField setStringValue:val];
|
||||
}
|
||||
|
||||
|
@ -130,7 +117,7 @@
|
|||
// Actions
|
||||
- (void)setPromptWhenQuit:(id)sender
|
||||
{
|
||||
NSString *state;
|
||||
BOOL state;
|
||||
|
||||
if (promptWhenQuit == nil)
|
||||
{// HACK!!! need to be fixed in GNUstep
|
||||
|
@ -138,13 +125,13 @@
|
|||
return;
|
||||
}
|
||||
|
||||
state = ([sender state] == NSOffState) ? @"NO" : @"YES";
|
||||
[prefs setObject:state forKey:PromptOnQuit notify:YES];
|
||||
state = ([sender state] == NSOffState) ? NO : YES;
|
||||
[prefs setBool:state forKey:PromptOnQuit notify:YES];
|
||||
}
|
||||
|
||||
- (void)setFullPathInFilePanels:(id)sender
|
||||
{
|
||||
NSString *state;
|
||||
BOOL state;
|
||||
|
||||
if (fullPathInFilePanels == nil)
|
||||
{// HACK!!! need to be fixed in GNUstep
|
||||
|
@ -152,13 +139,13 @@
|
|||
return;
|
||||
}
|
||||
|
||||
state = ([sender state] == NSOffState) ? @"NO" : @"YES";
|
||||
[prefs setObject:state forKey:FullPathInFilePanels notify:YES];
|
||||
state = ([sender state] == NSOffState) ? NO : YES;
|
||||
[prefs setBool:state forKey:FullPathInFilePanels notify:YES];
|
||||
}
|
||||
|
||||
- (void)setRememberWindows:(id)sender
|
||||
{
|
||||
NSString *state;
|
||||
BOOL state;
|
||||
|
||||
if (rememberWindows == nil)
|
||||
{
|
||||
|
@ -166,13 +153,13 @@
|
|||
return;
|
||||
}
|
||||
|
||||
state = ([sender state] == NSOffState) ? @"NO" : @"YES";
|
||||
[prefs setObject:state forKey:RememberWindows notify:YES];
|
||||
state = ([sender state] == NSOffState) ? NO : YES;
|
||||
[prefs setBool:state forKey:RememberWindows notify:YES];
|
||||
}
|
||||
|
||||
- (void)setDisplayLog:(id)sender
|
||||
{
|
||||
NSString *state;
|
||||
BOOL state;
|
||||
|
||||
if (displayLog == nil)
|
||||
{
|
||||
|
@ -180,13 +167,13 @@
|
|||
return;
|
||||
}
|
||||
|
||||
state = ([sender state] == NSOffState) ? @"NO" : @"YES";
|
||||
[prefs setObject:state forKey:DisplayLog notify:YES];
|
||||
state = ([sender state] == NSOffState) ? NO : YES;
|
||||
[prefs setBool:state forKey:DisplayLog notify:YES];
|
||||
}
|
||||
|
||||
- (void)setUseTearOffWindows:(id)sender
|
||||
{
|
||||
NSString *state;
|
||||
BOOL state;
|
||||
|
||||
if (useTearOffWindows == nil)
|
||||
{
|
||||
|
@ -194,8 +181,8 @@
|
|||
return;
|
||||
}
|
||||
|
||||
state = ([sender state] == NSOffState) ? @"NO" : @"YES";
|
||||
[prefs setObject:state forKey:UseTearOffWindows notify:YES];
|
||||
state = ([sender state] == NSOffState) ? NO : YES;
|
||||
[prefs setBool:state forKey:UseTearOffWindows notify:YES];
|
||||
}
|
||||
|
||||
- (void)setDebugger:(id)sender
|
||||
|
@ -251,7 +238,7 @@
|
|||
|
||||
// Set
|
||||
[debuggerField setStringValue:path];
|
||||
[prefs setObject:path forKey:Debugger notify:YES];
|
||||
[prefs setString:path forKey:Debugger notify:YES];
|
||||
}
|
||||
|
||||
- (void)setEditor:(id)sender
|
||||
|
@ -278,9 +265,6 @@
|
|||
path = [files objectAtIndex:0];
|
||||
}
|
||||
|
||||
// [separateEditor setEnabled:YES];
|
||||
// [self setEditorSizeEnabled:YES];
|
||||
|
||||
[[miscView window] makeFirstResponder:editorField];
|
||||
if (!path)
|
||||
{
|
||||
|
@ -309,8 +293,6 @@
|
|||
@"Close", nil, nil, path);
|
||||
path = @"";
|
||||
}
|
||||
// [separateEditor setEnabled:NO];
|
||||
// [self setEditorSizeEnabled:NO];
|
||||
}
|
||||
|
||||
if ([path isEqualToString:@""] || !path)
|
||||
|
@ -320,7 +302,7 @@
|
|||
|
||||
// Set
|
||||
[editorField setStringValue:path];
|
||||
[prefs setObject:path forKey:Editor notify:YES];
|
||||
[prefs setString:path forKey:Editor notify:YES];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -56,32 +56,6 @@
|
|||
[keepBackup setRefusesFirstResponder:YES];
|
||||
}
|
||||
|
||||
- (void)setDefaults
|
||||
{
|
||||
[prefs setObject:@"YES" forKey:SaveOnQuit notify:NO];
|
||||
[prefs setObject:@"YES" forKey:KeepBackup notify:NO];
|
||||
[prefs setObject:@"120" forKey:AutoSavePeriod notify:NO];
|
||||
}
|
||||
|
||||
- (void)readPreferences
|
||||
{
|
||||
NSString *val;
|
||||
int state;
|
||||
|
||||
if (!(val = [prefs objectForKey:AutoSavePeriod]))
|
||||
val = @"120";
|
||||
[autosaveField setStringValue:val];
|
||||
[autosaveSlider setFloatValue:[val floatValue]];
|
||||
|
||||
val = [prefs objectForKey:SaveOnQuit];
|
||||
state = [val isEqualToString:@"YES"] ? NSOnState : NSOffState;
|
||||
[saveOnQuit setState:state];
|
||||
|
||||
val = [prefs objectForKey:KeepBackup];
|
||||
state = [val isEqualToString:@"YES"] ? NSOnState : NSOffState;
|
||||
[keepBackup setState:state];
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
#ifdef DEBUG
|
||||
|
@ -96,6 +70,25 @@
|
|||
}
|
||||
|
||||
// Protocol
|
||||
- (void)readPreferences
|
||||
{
|
||||
NSString *val;
|
||||
BOOL bVal;
|
||||
int state;
|
||||
|
||||
val = [prefs stringForKey:AutoSavePeriod defaultValue:@"120"];
|
||||
[autosaveField setStringValue:val];
|
||||
[autosaveSlider setFloatValue:[val floatValue]];
|
||||
|
||||
bVal = [prefs boolForKey:SaveOnQuit defaultValue:YES];
|
||||
state = bVal ? NSOnState : NSOffState;
|
||||
[saveOnQuit setState:state];
|
||||
|
||||
bVal = [prefs boolForKey:KeepBackup defaultValue:YES];
|
||||
state = bVal ? NSOnState : NSOffState;
|
||||
[keepBackup setState:state];
|
||||
}
|
||||
|
||||
- (NSView *)view
|
||||
{
|
||||
return savingView;
|
||||
|
@ -104,7 +97,7 @@
|
|||
// Actions
|
||||
- (void)setSaveOnQuit:(id)sender
|
||||
{
|
||||
NSString *state;
|
||||
BOOL state;
|
||||
|
||||
if (saveOnQuit == nil)
|
||||
{// HACK!!! need to be fixed in GNUstep
|
||||
|
@ -112,13 +105,13 @@
|
|||
return;
|
||||
}
|
||||
|
||||
state = ([sender state] == NSOffState) ? @"NO" : @"YES";
|
||||
[prefs setObject:state forKey:SaveOnQuit notify:YES];
|
||||
state = ([sender state] == NSOffState) ? NO : YES;
|
||||
[prefs setBool:state forKey:SaveOnQuit notify:YES];
|
||||
}
|
||||
|
||||
- (void)setKeepBackup:(id)sender
|
||||
{
|
||||
NSString *state;
|
||||
BOOL state;
|
||||
|
||||
if (keepBackup == nil)
|
||||
{// HACK!!! need to be fixed in GNUstep
|
||||
|
@ -126,13 +119,13 @@
|
|||
return;
|
||||
}
|
||||
|
||||
state = ([sender state] == NSOffState) ? @"NO" : @"YES";
|
||||
[prefs setObject:state forKey:KeepBackup notify:YES];
|
||||
state = ([sender state] == NSOffState) ? NO : YES;
|
||||
[prefs setBool:state forKey:KeepBackup notify:YES];
|
||||
}
|
||||
|
||||
- (void)setSavePeriod:(id)sender
|
||||
{
|
||||
NSString *periodString = nil;
|
||||
NSString *periodString;
|
||||
|
||||
if (sender == autosaveSlider)
|
||||
{
|
||||
|
@ -140,7 +133,7 @@
|
|||
}
|
||||
|
||||
periodString = [autosaveField stringValue];
|
||||
[prefs setObject:periodString forKey:AutoSavePeriod notify:YES];
|
||||
[prefs setString:periodString forKey:AutoSavePeriod notify:YES];
|
||||
|
||||
// TODO: Check if this can be replaced with generic notification
|
||||
// posted by PCPrefsController
|
||||
|
@ -149,7 +142,5 @@
|
|||
object:periodString];
|
||||
}
|
||||
|
||||
|
||||
|
||||
@end
|
||||
|
||||
|
|
|
@ -132,7 +132,7 @@
|
|||
{
|
||||
// NSString *connectionName = [NSString stringWithFormat:@"ProjectCenter"];
|
||||
|
||||
if ([[prefController objectForKey:DisplayLog] isEqualToString:@"YES"])
|
||||
if ([prefController boolForKey:DisplayLog])
|
||||
{
|
||||
[logController showPanel];
|
||||
}
|
||||
|
@ -147,13 +147,9 @@
|
|||
|
||||
- (BOOL)applicationShouldTerminate:(id)sender
|
||||
{
|
||||
NSString *promptOnQuit;
|
||||
NSString *saveOnQuit;
|
||||
BOOL quit = YES;
|
||||
BOOL quit = YES;
|
||||
|
||||
promptOnQuit = [prefController objectForKey:PromptOnQuit];
|
||||
saveOnQuit = [prefController objectForKey:SaveOnQuit];
|
||||
if ([promptOnQuit isEqualToString:@"YES"])
|
||||
if ([prefController boolForKey:PromptOnQuit])
|
||||
{
|
||||
if (NSRunAlertPanel(@"Quit",
|
||||
@"Do you really want to quit ProjectCenter?",
|
||||
|
@ -165,7 +161,7 @@
|
|||
}
|
||||
|
||||
// Save projects unconditionally if preferences tells that
|
||||
if ([saveOnQuit isEqualToString:@"YES"])
|
||||
if ([prefController boolForKey:SaveOnQuit])
|
||||
{
|
||||
quit = [projectManager saveAllProjects];
|
||||
}
|
||||
|
@ -185,7 +181,6 @@
|
|||
|
||||
- (void)applicationWillTerminate:(NSNotification *)notification
|
||||
{
|
||||
NSString *deleteCache;
|
||||
NSFileManager *fm;
|
||||
PCFileManager *pcfm;
|
||||
NSString *rootBuildDir;
|
||||
|
@ -197,13 +192,12 @@
|
|||
NSLog(@"--- Application WILL terminate");
|
||||
#endif
|
||||
|
||||
deleteCache = [prefController objectForKey:DeleteCacheWhenQuitting];
|
||||
if ([deleteCache isEqualToString:@"YES"])
|
||||
if ([prefController boolForKey:DeleteCacheWhenQuitting])
|
||||
{
|
||||
fm = [NSFileManager defaultManager];
|
||||
pcfm = [PCFileManager defaultManager];
|
||||
|
||||
rootBuildDir = [prefController objectForKey:RootBuildDirectory];
|
||||
rootBuildDir = [prefController stringForKey:RootBuildDirectory];
|
||||
rootBuildDirList = [fm directoryContentsAtPath:rootBuildDir];
|
||||
|
||||
enumerator = [rootBuildDirList objectEnumerator];
|
||||
|
|
|
@ -62,21 +62,13 @@ static PCPrefController *_prefCtrllr = nil;
|
|||
|
||||
if ([userDefaults objectForKey:@"Version"] == nil)
|
||||
{
|
||||
PCLogInfo(self, @"setDefaultValues");
|
||||
|
||||
[self loadPrefsSections];
|
||||
|
||||
// Clean preferences
|
||||
[NSUserDefaults resetStandardUserDefaults];
|
||||
[self setObject:@"0.5" forKey:@"Version" notify:NO];
|
||||
|
||||
// Make preferences modules load default values
|
||||
[[sectionsDict allValues]
|
||||
makeObjectsPerformSelector:@selector(setDefaults)];
|
||||
|
||||
[userDefaults synchronize];
|
||||
[self setString:@"0.5" forKey:@"Version" notify:NO];
|
||||
}
|
||||
|
||||
[self loadPrefsSections];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
|
@ -98,14 +90,107 @@ static PCPrefController *_prefCtrllr = nil;
|
|||
}
|
||||
|
||||
// Accessory
|
||||
- (id)objectForKey:(NSString *)key
|
||||
- (NSString *)stringForKey:(NSString *)key
|
||||
{
|
||||
return [userDefaults objectForKey:key];
|
||||
return [self stringForKey:key defaultValue:nil];
|
||||
}
|
||||
|
||||
- (void)setObject:(id)anObject forKey:(NSString *)aKey notify:(BOOL)notify
|
||||
- (NSString *)stringForKey:(NSString *)key
|
||||
defaultValue:(NSString *)defaultValue
|
||||
{
|
||||
[userDefaults setObject:anObject forKey:aKey];
|
||||
NSString *stringValue = [userDefaults objectForKey:key];
|
||||
|
||||
if (stringValue)
|
||||
{
|
||||
return stringValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
[self setString:defaultValue forKey:key notify:NO];
|
||||
return defaultValue;
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)boolForKey:(NSString *)key
|
||||
{
|
||||
return [self boolForKey:key defaultValue:-1];
|
||||
}
|
||||
|
||||
- (BOOL)boolForKey:(NSString *)key
|
||||
defaultValue:(BOOL)defaultValue
|
||||
{
|
||||
NSString *stringValue = [userDefaults objectForKey:key];
|
||||
|
||||
if (stringValue)
|
||||
{
|
||||
return [stringValue boolValue];
|
||||
}
|
||||
else
|
||||
{
|
||||
[self setBool:defaultValue forKey:key notify:NO];
|
||||
return defaultValue;
|
||||
}
|
||||
}
|
||||
|
||||
- (float)floatForKey:(NSString *)key
|
||||
{
|
||||
return [self floatForKey:key defaultValue:0.0];
|
||||
}
|
||||
|
||||
- (float)floatForKey:(NSString *)key defaultValue:(float)defaultValue
|
||||
{
|
||||
NSString *stringValue = [userDefaults objectForKey:key];
|
||||
|
||||
if (stringValue)
|
||||
{
|
||||
return [stringValue floatValue];
|
||||
}
|
||||
else
|
||||
{
|
||||
[self setFloat:defaultValue forKey:key notify:NO];
|
||||
return defaultValue;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setString:(NSString *)stringValue
|
||||
forKey:(NSString *)aKey
|
||||
notify:(BOOL)notify
|
||||
{
|
||||
[userDefaults setObject:stringValue forKey:aKey];
|
||||
[userDefaults synchronize];
|
||||
|
||||
if (notify)
|
||||
{
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
postNotificationName:PCPreferencesDidChangeNotification
|
||||
object:self];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setBool:(BOOL)boolValue
|
||||
forKey:(NSString *)aKey
|
||||
notify:(BOOL)notify
|
||||
{
|
||||
NSString *stringValue = boolValue ? @"YES" : @"NO";
|
||||
|
||||
[userDefaults setObject:stringValue forKey:aKey];
|
||||
[userDefaults synchronize];
|
||||
|
||||
if (notify)
|
||||
{
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
postNotificationName:PCPreferencesDidChangeNotification
|
||||
object:self];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setFloat:(float)floatValue
|
||||
forKey:(NSString *)aKey
|
||||
notify:(BOOL)notify
|
||||
{
|
||||
NSString *stringValue = [NSString stringWithFormat:@"%0.1f", floatValue];
|
||||
|
||||
[userDefaults setObject:stringValue forKey:aKey];
|
||||
[userDefaults synchronize];
|
||||
|
||||
if (notify)
|
||||
|
@ -141,6 +226,8 @@ static PCPrefController *_prefCtrllr = nil;
|
|||
[section readPreferences];
|
||||
[sectionsDict setObject:section forKey:sectionName];
|
||||
}
|
||||
|
||||
[userDefaults synchronize];
|
||||
}
|
||||
|
||||
- (void)showPanel:(id)sender
|
||||
|
@ -183,4 +270,9 @@ static PCPrefController *_prefCtrllr = nil;
|
|||
// [sectionsView display];
|
||||
}
|
||||
|
||||
- (void)changeFont:(id)sender
|
||||
{
|
||||
NSLog(@"PCPrefController: changeFont");
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
Loading…
Reference in a new issue