2005-11-18 00:20:47 +00:00
|
|
|
/*
|
2006-12-26 10:58:39 +00:00
|
|
|
GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html
|
2005-11-18 00:20:47 +00:00
|
|
|
|
2015-03-22 18:06:17 +00:00
|
|
|
Copyright (C) 2001-2015 Free Software Foundation
|
2005-11-18 00:20:47 +00:00
|
|
|
|
|
|
|
This file is part of GNUstep.
|
|
|
|
|
|
|
|
This application is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU General Public
|
|
|
|
License as published by the Free Software Foundation; either
|
|
|
|
version 2 of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
This application is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
Library General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public
|
|
|
|
License along with this library; if not, write to the Free
|
|
|
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
|
|
|
|
*/
|
|
|
|
|
2006-12-26 10:58:39 +00:00
|
|
|
#import <ProjectCenter/PCDefines.h>
|
|
|
|
#import <ProjectCenter/PCLogController.h>
|
2009-02-25 00:34:59 +00:00
|
|
|
#import <ProjectCenter/PCBundleManager.h>
|
2005-11-18 00:20:47 +00:00
|
|
|
|
2009-01-26 22:56:03 +00:00
|
|
|
#import "PCPrefController.h"
|
|
|
|
#import <Protocols/Preferences.h>
|
2005-11-22 23:25:39 +00:00
|
|
|
|
2005-11-18 00:20:47 +00:00
|
|
|
@implementation PCPrefController
|
|
|
|
|
2015-03-22 18:06:17 +00:00
|
|
|
|
2005-11-18 00:20:47 +00:00
|
|
|
// ===========================================================================
|
|
|
|
// ==== Class methods
|
|
|
|
// ===========================================================================
|
|
|
|
|
|
|
|
static PCPrefController *_prefCtrllr = nil;
|
|
|
|
|
|
|
|
+ (PCPrefController *)sharedPCPreferences
|
|
|
|
{
|
|
|
|
if (!_prefCtrllr)
|
|
|
|
{
|
|
|
|
_prefCtrllr = [[PCPrefController alloc] init];
|
|
|
|
}
|
|
|
|
|
|
|
|
return _prefCtrllr;
|
|
|
|
}
|
|
|
|
|
|
|
|
//
|
|
|
|
- (id)init
|
|
|
|
{
|
|
|
|
if (!(self = [super init]))
|
|
|
|
{
|
|
|
|
return nil;
|
|
|
|
}
|
|
|
|
|
* 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
2009-03-15 00:12:00 +00:00
|
|
|
[self loadPrefsSections];
|
|
|
|
|
2005-11-18 00:20:47 +00:00
|
|
|
return self;
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void)dealloc
|
|
|
|
{
|
|
|
|
#ifdef DEVELOPMENT
|
|
|
|
NSLog(@"PCPrefController: dealloc");
|
|
|
|
#endif
|
|
|
|
|
|
|
|
RELEASE(panel);
|
|
|
|
[super dealloc];
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void)awakeFromNib
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2015-03-22 18:06:17 +00:00
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// --- color utility method
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
- (NSColor *)colorFromString:(NSString *)colorString
|
|
|
|
{
|
|
|
|
NSArray *colorComponents;
|
|
|
|
NSString *colorSpaceName;
|
|
|
|
NSColor *color;
|
|
|
|
|
|
|
|
colorComponents = [colorString componentsSeparatedByString:@" "];
|
|
|
|
colorSpaceName = [colorComponents objectAtIndex:0];
|
|
|
|
|
|
|
|
if ([colorSpaceName isEqualToString:@"White"]) // Treat as WhiteColorSpace
|
|
|
|
{
|
|
|
|
color = [NSColor
|
|
|
|
colorWithCalibratedWhite:[[colorComponents objectAtIndex:1] floatValue]
|
|
|
|
alpha:1.0];
|
|
|
|
}
|
|
|
|
else // Treat as RGBColorSpace
|
|
|
|
{
|
|
|
|
color = [NSColor
|
|
|
|
colorWithCalibratedRed:[[colorComponents objectAtIndex:1] floatValue]
|
|
|
|
green:[[colorComponents objectAtIndex:2] floatValue]
|
|
|
|
blue:[[colorComponents objectAtIndex:3] floatValue]
|
|
|
|
alpha:1.0];
|
|
|
|
}
|
|
|
|
|
|
|
|
return color;
|
|
|
|
}
|
|
|
|
|
2015-03-22 22:41:10 +00:00
|
|
|
- (NSString *)stringFromColor:(NSColor *)color
|
|
|
|
{
|
|
|
|
NSString *colorString;
|
|
|
|
|
|
|
|
colorString = nil;
|
|
|
|
if ([[color colorSpaceName] isEqualToString:NSCalibratedWhiteColorSpace])
|
|
|
|
{
|
|
|
|
colorString = [NSString stringWithFormat:@"White %0.1f",
|
|
|
|
[color whiteComponent]];
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
if (![[color colorSpaceName] isEqualToString:NSCalibratedRGBColorSpace])
|
|
|
|
color = [color colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
|
|
|
|
colorString = [NSString stringWithFormat:@"RGB %0.1f %0.1f %0.1f",
|
|
|
|
[color redComponent],
|
|
|
|
[color greenComponent],
|
|
|
|
[color blueComponent]];
|
|
|
|
}
|
|
|
|
|
|
|
|
return colorString;
|
|
|
|
}
|
|
|
|
|
2015-03-22 18:06:17 +00:00
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// --- Accessors
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
|
* 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
2009-03-15 00:12:00 +00:00
|
|
|
- (NSString *)stringForKey:(NSString *)key
|
|
|
|
{
|
|
|
|
return [self stringForKey:key defaultValue:nil];
|
|
|
|
}
|
|
|
|
|
|
|
|
- (NSString *)stringForKey:(NSString *)key
|
|
|
|
defaultValue:(NSString *)defaultValue
|
|
|
|
{
|
2013-10-07 01:05:13 +00:00
|
|
|
NSString *stringValue = [[NSUserDefaults standardUserDefaults]
|
|
|
|
objectForKey:key];
|
* 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
2009-03-15 00:12:00 +00:00
|
|
|
|
|
|
|
if (stringValue)
|
|
|
|
{
|
|
|
|
return stringValue;
|
|
|
|
}
|
2009-03-19 00:13:25 +00:00
|
|
|
else if (defaultValue)
|
* 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
2009-03-15 00:12:00 +00:00
|
|
|
{
|
|
|
|
[self setString:defaultValue forKey:key notify:NO];
|
|
|
|
return defaultValue;
|
|
|
|
}
|
2009-03-19 00:13:25 +00:00
|
|
|
|
|
|
|
return defaultValue; // returns nil
|
* 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
2009-03-15 00:12:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
- (BOOL)boolForKey:(NSString *)key
|
2005-11-18 00:20:47 +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
2009-03-15 00:12:00 +00:00
|
|
|
return [self boolForKey:key defaultValue:-1];
|
2009-02-25 00:34:59 +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
2009-03-15 00:12:00 +00:00
|
|
|
- (BOOL)boolForKey:(NSString *)key
|
|
|
|
defaultValue:(BOOL)defaultValue
|
2009-02-25 00:34:59 +00:00
|
|
|
{
|
2013-10-07 01:05:13 +00:00
|
|
|
NSString *stringValue = [[NSUserDefaults standardUserDefaults]
|
|
|
|
objectForKey:key];
|
* 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
2009-03-15 00:12:00 +00:00
|
|
|
|
|
|
|
if (stringValue)
|
|
|
|
{
|
|
|
|
return [stringValue boolValue];
|
|
|
|
}
|
2009-03-19 00:13:25 +00:00
|
|
|
else if (defaultValue > 0)
|
* 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
2009-03-15 00:12:00 +00:00
|
|
|
{
|
|
|
|
[self setBool:defaultValue forKey:key notify:NO];
|
|
|
|
return defaultValue;
|
|
|
|
}
|
2009-03-19 00:13:25 +00:00
|
|
|
|
|
|
|
return defaultValue; // returns -1
|
* 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
2009-03-15 00:12:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
- (float)floatForKey:(NSString *)key
|
|
|
|
{
|
|
|
|
return [self floatForKey:key defaultValue:0.0];
|
|
|
|
}
|
|
|
|
|
|
|
|
- (float)floatForKey:(NSString *)key defaultValue:(float)defaultValue
|
|
|
|
{
|
2013-10-07 01:05:13 +00:00
|
|
|
NSString *stringValue = [[NSUserDefaults standardUserDefaults]
|
|
|
|
objectForKey:key];
|
* 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
2009-03-15 00:12:00 +00:00
|
|
|
|
|
|
|
if (stringValue)
|
|
|
|
{
|
|
|
|
return [stringValue floatValue];
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
[self setFloat:defaultValue forKey:key notify:NO];
|
|
|
|
return defaultValue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-03-22 22:41:10 +00:00
|
|
|
- (NSColor *)colorForKey:(NSString *)key
|
|
|
|
{
|
|
|
|
return [self colorForKey:key defaultValue:nil];
|
|
|
|
}
|
|
|
|
|
|
|
|
- (NSColor *)colorForKey:(NSString *)key
|
|
|
|
defaultValue:(NSColor *)defaultValue
|
|
|
|
{
|
|
|
|
NSString *stringValue = [[NSUserDefaults standardUserDefaults]
|
|
|
|
objectForKey:key];
|
|
|
|
|
|
|
|
if (stringValue)
|
|
|
|
{
|
|
|
|
NSColor *color;
|
|
|
|
|
|
|
|
color = [self colorFromString:stringValue];
|
|
|
|
return color;
|
|
|
|
}
|
|
|
|
else if (defaultValue)
|
|
|
|
{
|
|
|
|
[self setColor:defaultValue forKey:key notify:NO];
|
|
|
|
return defaultValue;
|
|
|
|
}
|
|
|
|
|
|
|
|
return defaultValue; // returns nil
|
|
|
|
}
|
|
|
|
|
* 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
2009-03-15 00:12:00 +00:00
|
|
|
- (void)setString:(NSString *)stringValue
|
|
|
|
forKey:(NSString *)aKey
|
|
|
|
notify:(BOOL)notify
|
|
|
|
{
|
2013-10-07 01:05:13 +00:00
|
|
|
[[NSUserDefaults standardUserDefaults] setObject:stringValue
|
|
|
|
forKey:aKey];
|
* 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
2009-03-15 00:12:00 +00:00
|
|
|
|
|
|
|
if (notify)
|
|
|
|
{
|
|
|
|
[[NSNotificationCenter defaultCenter]
|
|
|
|
postNotificationName:PCPreferencesDidChangeNotification
|
|
|
|
object:self];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void)setBool:(BOOL)boolValue
|
|
|
|
forKey:(NSString *)aKey
|
|
|
|
notify:(BOOL)notify
|
|
|
|
{
|
|
|
|
NSString *stringValue = boolValue ? @"YES" : @"NO";
|
|
|
|
|
2013-10-07 01:05:13 +00:00
|
|
|
[[NSUserDefaults standardUserDefaults] setObject:stringValue
|
|
|
|
forKey:aKey];
|
* 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
2009-03-15 00:12:00 +00:00
|
|
|
|
|
|
|
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];
|
|
|
|
|
2015-03-22 22:41:10 +00:00
|
|
|
[[NSUserDefaults standardUserDefaults] setObject:stringValue
|
|
|
|
forKey:aKey];
|
|
|
|
|
|
|
|
if (notify)
|
|
|
|
{
|
|
|
|
[[NSNotificationCenter defaultCenter]
|
|
|
|
postNotificationName:PCPreferencesDidChangeNotification
|
|
|
|
object:self];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void)setColor:(NSColor *)color
|
|
|
|
forKey:(NSString *)aKey
|
|
|
|
notify:(BOOL)notify
|
|
|
|
{
|
|
|
|
NSString *stringValue;
|
|
|
|
|
|
|
|
stringValue = [self stringFromColor:color];
|
2013-10-07 01:05:13 +00:00
|
|
|
[[NSUserDefaults standardUserDefaults] setObject:stringValue
|
|
|
|
forKey:aKey];
|
2009-02-25 00:34:59 +00:00
|
|
|
|
2009-03-04 22:05:51 +00:00
|
|
|
if (notify)
|
|
|
|
{
|
|
|
|
[[NSNotificationCenter defaultCenter]
|
|
|
|
postNotificationName:PCPreferencesDidChangeNotification
|
|
|
|
object:self];
|
|
|
|
}
|
2005-11-18 00:20:47 +00:00
|
|
|
}
|
|
|
|
|
2009-02-25 00:34:59 +00:00
|
|
|
- (void)loadPrefsSections
|
|
|
|
{
|
2009-02-27 00:46:25 +00:00
|
|
|
PCBundleManager *bundleManager = [[PCBundleManager alloc] init];
|
|
|
|
NSDictionary *bundlesInfo;
|
|
|
|
NSEnumerator *enumerator;
|
|
|
|
NSString *bundlePath;
|
|
|
|
NSString *sectionName;
|
2009-02-25 00:34:59 +00:00
|
|
|
id<PCPrefsSection> section;
|
|
|
|
|
|
|
|
sectionsDict = [[NSMutableDictionary alloc] init];
|
|
|
|
|
|
|
|
bundlesInfo = [bundleManager infoForBundlesType:@"preferences"];
|
|
|
|
enumerator = [[bundlesInfo allKeys] objectEnumerator];
|
|
|
|
while ((bundlePath = [enumerator nextObject]))
|
|
|
|
{
|
|
|
|
sectionName = [[bundlesInfo objectForKey:bundlePath]
|
|
|
|
objectForKey:@"Name"];
|
|
|
|
section = [bundleManager
|
|
|
|
objectForBundleWithName:sectionName
|
|
|
|
type:@"preferences"
|
|
|
|
protocol:@protocol(PCPrefsSection)];
|
2009-02-27 00:46:25 +00:00
|
|
|
[section initWithPrefController:self];
|
|
|
|
[section readPreferences];
|
2009-02-25 00:34:59 +00:00
|
|
|
[sectionsDict setObject:section forKey:sectionName];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2005-11-18 00:20:47 +00:00
|
|
|
- (void)showPanel:(id)sender
|
|
|
|
{
|
|
|
|
if (panel == nil
|
|
|
|
&& [NSBundle loadNibNamed:@"Preferences" owner:self] == NO)
|
|
|
|
{
|
|
|
|
PCLogError(self, @"error loading NIB file!");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
[panel setFrameAutosaveName:@"Preferences"];
|
|
|
|
if (![panel setFrameUsingName: @"Preferences"])
|
|
|
|
{
|
|
|
|
[panel center];
|
|
|
|
}
|
2009-02-25 00:34:59 +00:00
|
|
|
|
|
|
|
[self loadPrefsSections];
|
2005-11-18 00:20:47 +00:00
|
|
|
|
|
|
|
// The popup and selected view
|
|
|
|
[popupButton removeAllItems];
|
2009-02-27 00:46:25 +00:00
|
|
|
[popupButton addItemsWithTitles:[[sectionsDict allKeys]
|
|
|
|
sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]];
|
2009-02-25 00:34:59 +00:00
|
|
|
[popupButton selectItemAtIndex:0];
|
2005-11-18 00:20:47 +00:00
|
|
|
[self popupChanged:popupButton];
|
|
|
|
|
2009-02-14 15:45:52 +00:00
|
|
|
[panel makeKeyAndOrderFront:self];
|
2005-11-18 00:20:47 +00:00
|
|
|
}
|
|
|
|
|
2009-02-27 00:46:25 +00:00
|
|
|
// Actions
|
2005-11-18 00:20:47 +00:00
|
|
|
- (void)popupChanged:(id)sender
|
|
|
|
{
|
2009-02-25 00:34:59 +00:00
|
|
|
id<PCPrefsSection> section;
|
|
|
|
NSView *view;
|
2005-11-18 00:20:47 +00:00
|
|
|
|
2009-02-25 00:34:59 +00:00
|
|
|
section = [sectionsDict objectForKey:[sender titleOfSelectedItem]];
|
|
|
|
view = [section view];
|
2005-11-18 00:20:47 +00:00
|
|
|
|
|
|
|
[sectionsView setContentView:view];
|
|
|
|
}
|
|
|
|
|
* 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
2009-03-15 00:12:00 +00:00
|
|
|
- (void)changeFont:(id)sender
|
|
|
|
{
|
|
|
|
NSLog(@"PCPrefController: changeFont");
|
|
|
|
}
|
|
|
|
|
2005-11-18 00:20:47 +00:00
|
|
|
@end
|