From da603dea61b1f02d6039b9d4cf24c4f879b019f9 Mon Sep 17 00:00:00 2001 From: Sergii Stoian Date: Tue, 27 Dec 2005 11:17:53 +0000 Subject: [PATCH] Cleanup / git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/branches/UNSTABLE_0_5@22212 72102866-910b-0410-8b05-ffd578937521 --- PCFindController.m | 27 -- PCLogController.m | 186 ---------- PCPrefController.m | 898 --------------------------------------------- 3 files changed, 1111 deletions(-) delete mode 100644 PCFindController.m delete mode 100644 PCLogController.m delete mode 100644 PCPrefController.m diff --git a/PCFindController.m b/PCFindController.m deleted file mode 100644 index fb3e1ec..0000000 --- a/PCFindController.m +++ /dev/null @@ -1,27 +0,0 @@ -/* - GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html - - Copyright (C) 2001 Free Software Foundation - - 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. -*/ - -#include "PCFindController.h" - -@implementation PCFindController - -@end diff --git a/PCLogController.m b/PCLogController.m deleted file mode 100644 index e113d35..0000000 --- a/PCLogController.m +++ /dev/null @@ -1,186 +0,0 @@ -/* - GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html - - Copyright (C) 2001 Free Software Foundation - - 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. -*/ - -#include "PCLogController.h" - -void -PCLog(id sender, int tag, NSString* format, va_list args) -{ - [[PCLogController sharedLogController] - logMessage:[NSString stringWithFormat:format arguments: args] - withTag:tag - sender:sender]; -} - -void -PCLogInfo(id sender, NSString* format, ...) -{ - va_list ap; - - va_start(ap, format); - PCLog(sender, INFO, format, ap); - va_end(ap); -} - -void -PCLogStatus(id sender, NSString* format, ...) -{ - va_list ap; - - va_start(ap, format); - PCLog(sender, STATUS, format, ap); - va_end(ap); -} - -void -PCLogWarning(id sender, NSString* format, ...) -{ - va_list ap; - - va_start(ap, format); - PCLog(sender, WARNING, format, ap); - va_end(ap); -} - -void -PCLogError(id sender, NSString* format, ...) -{ - va_list ap; - - va_start(ap, format); - PCLog(sender, ERROR, format, ap); - va_end(ap); -} - -@implementation PCLogController - -// =========================================================================== -// ==== Class methods -// =========================================================================== - -static PCLogController *_logCtrllr = nil; - -+ (PCLogController *)sharedLogController -{ - if (!_logCtrllr) - { - _logCtrllr = [[PCLogController alloc] init]; - } - - return _logCtrllr; -} - -// =========================================================================== -// ==== Init and free -// =========================================================================== - -- (id)init -{ - NSFont *font = nil; - - if (!(self = [super init])) - { - return nil; - } - - if ([NSBundle loadNibNamed:@"LogPanel" owner:self] == NO) - { - NSLog(@"PCLogController[init]: error loading NIB file!"); - return nil; - } - - [panel setFrameAutosaveName:@"LogPanel"]; - if (![panel setFrameUsingName: @"LogPanel"]) - { - [panel center]; - } - - font = [NSFont userFixedPitchFontOfSize: 10.0]; - textAttributes = - [NSMutableDictionary dictionaryWithObject:font forKey:NSFontAttributeName]; - [textAttributes retain]; - - return self; -} - -- (void)dealloc -{ -#ifdef DEVELOPMENT - NSLog(@"PCLogController: dealloc"); -#endif - RELEASE(textAttributes); -} - -- (void)showPanel -{ - [panel orderFront:self]; -} - -- (void)logMessage:(NSString *)text withTag:(int)tag sender:(id)sender; -{ - NSString *messageText = nil; - NSAttributedString *message = nil; - - messageText = - [NSString stringWithFormat:@" %@: %@\n",[sender className],text]; - - switch (tag) - { - case INFO: - [textAttributes - setObject:[NSColor colorWithDeviceRed:.0 green:.0 blue:.0 alpha:1.0] - forKey:NSForegroundColorAttributeName]; - break; - case STATUS: - [textAttributes - setObject:[NSColor colorWithDeviceRed:.0 green:.35 blue:.0 alpha:1.0] - forKey:NSForegroundColorAttributeName]; - break; - - case WARNING: - [textAttributes - setObject:[NSColor colorWithDeviceRed:.56 green:.45 blue:.0 alpha:1.0] - forKey:NSForegroundColorAttributeName]; - break; - - case ERROR: - [textAttributes - setObject:[NSColor colorWithDeviceRed:.63 green:.0 blue:.0 alpha:1.0] - forKey:NSForegroundColorAttributeName]; - break; - - default: - break; - } - - message = [[NSAttributedString alloc] initWithString:messageText - attributes:textAttributes]; - [self putMessageOnScreen:message]; -} - -- (void)putMessageOnScreen:(NSAttributedString *)message -{ - [[textView textStorage] appendAttributedString:message]; - [textView scrollRangeToVisible:NSMakeRange([[textView string] length], 0)]; -} - -@end diff --git a/PCPrefController.m b/PCPrefController.m deleted file mode 100644 index 51fd463..0000000 --- a/PCPrefController.m +++ /dev/null @@ -1,898 +0,0 @@ -/* - GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html - - Copyright (C) 2001 Free Software Foundation - - 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. -*/ - -#include "PCPrefController.h" -#include - -#include "PCLogController.h" - -// TODO: rewrite it as PCPrefernces, use +sharedPreferences instead of -// [NSUserDefaults standardUserDefaults] in every part of ProjectCenter - -@implementation PCPrefController - -// =========================================================================== -// ==== Class methods -// =========================================================================== - -static PCPrefController *_prefCtrllr = nil; - -+ (PCPrefController *)sharedPCPreferences -{ - if (!_prefCtrllr) - { - _prefCtrllr = [[PCPrefController alloc] init]; - } - - return _prefCtrllr; -} - -// -- (id)init -{ - NSDictionary *prefs = nil; - - if (!(self = [super init])) - { - return nil; - } - - // The prefs from the defaults - prefs = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]; - preferencesDict = [[NSMutableDictionary alloc] initWithDictionary:prefs]; - - if ([preferencesDict objectForKey:@"Version"] == nil) - { - [self setDefaultValues]; - } - - return self; -} - -- (void)dealloc -{ -#ifdef DEVELOPMENT - NSLog(@"PCPrefController: dealloc"); -#endif - - RELEASE(preferencesDict); - - RELEASE(panel); - - RELEASE(buildingView); - RELEASE(savingView); - RELEASE(keyBindingsView); - RELEASE(miscView); - - [[NSUserDefaults standardUserDefaults] synchronize]; - - [super dealloc]; -} - -- (void)setDefaultValues -{ - NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; - - PCLogInfo(self, @"setDefaultValues"); - - // Clean preferences - [preferencesDict removeAllObjects]; - - [preferencesDict setObject:@"0.4" forKey:@"Version"]; - - // Building - [preferencesDict setObject:@"" forKey:SuccessSound]; - [preferencesDict setObject:@"" forKey:FailureSound]; - [preferencesDict setObject:@"YES" forKey:PromptOnClean]; - [preferencesDict setObject:@"" forKey:RootBuildDirectory]; - - // Saving - [preferencesDict setObject:@"YES" forKey:SaveOnQuit]; - [preferencesDict setObject:@"YES" forKey:KeepBackup]; - [preferencesDict setObject:@"120" forKey:AutoSavePeriod]; - - // Key Bindings - [preferencesDict setObject:@"Tab" forKey:TabBehaviour]; - - // Miscellaneous - [preferencesDict setObject:@"YES" forKey:PromptOnQuit]; - [preferencesDict setObject:@"YES" forKey:DeleteCacheWhenQuitting]; - [preferencesDict setObject:@"YES" forKey:FullPathInFilePanels]; - [preferencesDict setObject:@"/usr/bin/make" forKey:BuildTool]; - [preferencesDict setObject:@"/usr/bin/gdb" forKey:Debugger]; - [preferencesDict setObject:@"ProjectCenter" forKey:Editor]; - - // Interface - [preferencesDict setObject:@"YES" forKey:SeparateBuilder]; - [preferencesDict setObject:@"YES" forKey:SeparateLauncher]; - [preferencesDict setObject:@"NO" forKey:SeparateEditor]; - [preferencesDict setObject:@"YES" forKey:SeparateLoadedFiles]; - - [preferencesDict setObject:@"30" forKey:EditorLines]; - [preferencesDict setObject:@"80" forKey:EditorColumns]; - - [preferencesDict setObject:@"YES" forKey:RememberWindows]; - [preferencesDict setObject:@"NO" forKey:DisplayLog]; - - [ud setPersistentDomain:preferencesDict forName:@"ProjectCenter"]; - [ud synchronize]; -} - -- (void)loadPrefernces -{ - NSDictionary *prefs = nil; - NSString *val = nil; - - prefs = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]; - [preferencesDict addEntriesFromDictionary: prefs]; - - // Fill in the defaults - - // Building - [successField setStringValue: - (val = [preferencesDict objectForKey: SuccessSound]) ? val : @""]; - - [failureField setStringValue: - (val = [preferencesDict objectForKey: FailureSound]) ? val : @""]; - - [promptOnClean setState: - ([[preferencesDict objectForKey: PromptOnClean] - isEqualToString: @"YES"]) ? NSOnState : NSOffState]; - - [rootBuildDirField setStringValue: - (val = [preferencesDict objectForKey:RootBuildDirectory]) ? val : @""]; - - // Saving - [saveOnQuit setState: - ([[preferencesDict objectForKey: SaveOnQuit] - isEqualToString: @"YES"]) ? NSOnState : NSOffState]; - - [keepBackup setState: - ([[preferencesDict objectForKey: KeepBackup] - isEqualToString: @"YES"]) ? NSOnState : NSOffState]; - - [autosaveField setStringValue: - (val = [preferencesDict objectForKey: AutoSavePeriod]) ? val : @"120"]; - [autosaveSlider setFloatValue:[[autosaveField stringValue] floatValue]]; - - // Key Bindings - val = [preferencesDict objectForKey:TabBehaviour]; - [tabMatrix deselectAllCells]; - if ([val isEqualToString:@"Tab"]) - { - [tabMatrix selectCellAtRow:0 column:0]; - } - else if ([val isEqualToString:@"IndentAlways"]) - { - [tabMatrix selectCellAtRow:1 column:0]; - } - else if ([val isEqualToString:@"IndentAtBeginning"]) - { - [tabMatrix selectCellAtRow:2 column:0]; - } - else if ([val isEqualToString:@"Spaces"]) - { - [tabMatrix selectCellAtRow:3 column:0]; - } - - // Miscellaneous - [promptWhenQuit setState: - ([[preferencesDict objectForKey: PromptOnQuit] - isEqualToString:@"YES"]) ? NSOnState : NSOffState]; - [deleteCache setState: - ([[preferencesDict objectForKey: DeleteCacheWhenQuitting] - isEqualToString:@"YES"]) ? NSOnState : NSOffState]; - [fullPathInFilePanels setState: - ([[preferencesDict objectForKey: FullPathInFilePanels] - isEqualToString:@"YES"]) ? NSOnState : NSOffState]; - - [buildToolField setStringValue: - (val = [preferencesDict objectForKey:BuildTool]) ? val : @"/usr/bin/make"]; - [debuggerField setStringValue: - (val = [preferencesDict objectForKey: Debugger]) ? val : @"/usr/bin/gdb"]; - [editorField setStringValue: - (val = [preferencesDict objectForKey: Editor]) ? val : @"ProjectCenter"]; - - // Interface - [separateBuilder setState: - ([[preferencesDict objectForKey: SeparateBuilder] - isEqualToString:@"YES"]) ? NSOnState : NSOffState]; - [separateLauncher setState: - ([[preferencesDict objectForKey: SeparateLauncher] - isEqualToString:@"YES"]) ? NSOnState : NSOffState]; - [separateEditor setState: - ([[preferencesDict objectForKey: SeparateEditor] - isEqualToString:@"YES"]) ? NSOnState : NSOffState]; - [separateLoadedFiles setState: - ([[preferencesDict objectForKey: SeparateLoadedFiles] - isEqualToString:@"YES"]) ? NSOnState : NSOffState]; - - [editorLinesField setStringValue: - (val = [preferencesDict objectForKey: EditorLines]) ? val : @"30"]; - [editorColumnsField setStringValue: - (val = [preferencesDict objectForKey: EditorColumns]) ? val : @"80"]; - if ([separateEditor state] == NSOffState - || ![[editorField stringValue] isEqualToString:@"ProjectCenter"]) - { - [self setEditorSizeEnabled:NO]; - } - - [rememberWindows setState: - ([[preferencesDict objectForKey: RememberWindows] - isEqualToString:@"YES"]) ? NSOnState : NSOffState]; - [displayLog setState: - ([[preferencesDict objectForKey:DisplayLog] - isEqualToString:@"YES"]) ? NSOnState : NSOffState]; - - // Bundles -/* [bundlePathField setStringValue: - (val = [preferencesDict objectForKey: BundlePaths]) ? val : @""];*/ -} - -- (void)awakeFromNib -{ - NSArray *tabMatrixCells = nil; - int i; - - [promptOnClean setRefusesFirstResponder:YES]; - - [saveOnQuit setRefusesFirstResponder:YES]; - [keepBackup setRefusesFirstResponder:YES]; - - tabMatrixCells = [tabMatrix cells]; - - for (i = 0; i < [tabMatrixCells count]; i++) - { - [[tabMatrixCells objectAtIndex:i] setRefusesFirstResponder:YES]; - } - - [promptWhenQuit setRefusesFirstResponder:YES]; - [deleteCache setRefusesFirstResponder:YES]; - [fullPathInFilePanels setRefusesFirstResponder:YES]; - - [separateBuilder setRefusesFirstResponder:YES]; - [separateLauncher setRefusesFirstResponder:YES]; - [separateEditor setRefusesFirstResponder:YES]; - [separateLoadedFiles setRefusesFirstResponder:YES]; - - [rememberWindows setRefusesFirstResponder:YES]; - [displayLog setRefusesFirstResponder:YES]; -} - -// Accessory -- (NSDictionary *)preferencesDict -{ - return preferencesDict; -} - -- (id)objectForKey:(NSString *)key -{ - return [preferencesDict objectForKey:key]; -} - -- (NSString *)selectFileWithTypes:(NSArray *)types -{ - NSUserDefaults *def = [NSUserDefaults standardUserDefaults]; - NSString *file = nil; - NSOpenPanel *openPanel; - int retval; - - openPanel = [NSOpenPanel openPanel]; - [openPanel setAllowsMultipleSelection:NO]; - [openPanel setCanChooseDirectories:YES]; - [openPanel setCanChooseFiles:YES]; - - retval = [openPanel - runModalForDirectory:[def objectForKey:@"LastOpenDirectory"] - file:nil - types:types]; - - if (retval == NSOKButton) - { - [def setObject:[openPanel directory] forKey:@"LastOpenDirectory"]; - file = [[openPanel filenames] objectAtIndex:0]; - - } - - return file; -} - -- (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]; - } - RETAIN(buildingView); - RETAIN(savingView); - RETAIN(keyBindingsView); - RETAIN(miscView); - RETAIN(interfaceView); - - // The popup and selected view - [popupButton removeAllItems]; - [popupButton addItemWithTitle:@"Building"]; - [popupButton addItemWithTitle:@"Saving"]; - [popupButton addItemWithTitle:@"Key Bindings"]; - [popupButton addItemWithTitle:@"Miscellaneous"]; - [popupButton addItemWithTitle:@"Interface"]; - - [popupButton selectItemWithTitle:@"Building"]; - [self popupChanged:popupButton]; - - // Load saved prefs - [self loadPrefernces]; - - [panel orderFront:self]; -} - -// -- (void)popupChanged:(id)sender -{ - NSView *view = nil; - - switch ([sender indexOfSelectedItem]) - { - case 0: - view = buildingView; - break; - case 1: - view = savingView; - break; - case 2: - view = keyBindingsView; - break; - case 3: - view = miscView; - break; - case 4: - view = interfaceView; - break; - } - - [sectionsView setContentView:view]; - [sectionsView display]; -} - -// Building -- (void)setSuccessSound:(id)sender -{ - NSArray *types = [NSArray arrayWithObjects:@"snd",@"au",@"wav",nil]; - NSString *path = [self selectFileWithTypes:types]; - - if (path) - { - [successField setStringValue: path]; - - [[NSUserDefaults standardUserDefaults] setObject:path - forKey:SuccessSound]; - [preferencesDict setObject:path forKey:SuccessSound]; - } -} - -- (void)setFailureSound:(id)sender -{ - NSArray *types = [NSArray arrayWithObjects:@"snd",@"au",@"wav",nil]; - NSString *path = [self selectFileWithTypes:types]; - - if (path) - { - [failureField setStringValue:path]; - - [[NSUserDefaults standardUserDefaults] setObject:path - forKey:FailureSound]; - [preferencesDict setObject:path forKey:FailureSound]; - } -} - -- (void)setRootBuildDir:(id)sender -{ - NSArray *types = nil; - NSString *path = [self selectFileWithTypes:types]; - - if (path) - { - [rootBuildDirField setStringValue:path]; - [[NSUserDefaults standardUserDefaults] setObject:path - forKey:RootBuildDirectory]; - [preferencesDict setObject:path forKey:RootBuildDirectory]; - } -} - -- (void)setPromptOnClean:(id)sender -{ - NSUserDefaults *def = nil; - - if (promptOnClean == nil) - {// HACK!!! need to be fixed in GNUstep - promptOnClean = sender; - return; - } - - def = [NSUserDefaults standardUserDefaults]; - switch ([sender state]) - { - case NSOffState: - [def setObject:@"NO" forKey:PromptOnClean]; - break; - case NSOnState: - [def setObject:@"YES" forKey:PromptOnClean]; - break; - } - [def synchronize]; - - [preferencesDict setObject:[def objectForKey:PromptOnClean] - forKey:PromptOnClean]; -} - -// Saving -- (void)setSaveOnQuit:(id)sender -{ - NSUserDefaults *def = [NSUserDefaults standardUserDefaults]; - - if (saveOnQuit == nil) - { // HACK!!! - saveOnQuit = sender; - return; - } - - switch ([sender state]) - { - case 0: - [def setObject:@"NO" forKey:SaveOnQuit]; - break; - case 1: - [def setObject:@"YES" forKey:SaveOnQuit]; - break; - } - [def synchronize]; - - [preferencesDict setObject:[def objectForKey:SaveOnQuit] - forKey:SaveOnQuit]; -} - -- (void)setKeepBackup:(id)sender -{ - NSUserDefaults *def = [NSUserDefaults standardUserDefaults]; - - if (keepBackup == nil) - { // HACK!!! - keepBackup = sender; - return; - } - - switch ([[sender selectedCell] state]) - { - case 0: - [def setObject:@"NO" forKey:KeepBackup]; - break; - case 1: - [def setObject:@"YES" forKey:KeepBackup]; - break; - } - [def synchronize]; - - [preferencesDict setObject:[def objectForKey:KeepBackup] - forKey:KeepBackup]; -} - -- (void)setSavePeriod:(id)sender -{ - NSString *periodString = nil; - - if (sender == autosaveSlider) - { - [autosaveField setIntValue:[sender intValue]]; - } - else if (sender == autosaveField) - { - if ([autosaveField floatValue] < [autosaveSlider minValue]) - { - [autosaveField setFloatValue:[autosaveSlider minValue]]; - } - else if ([autosaveField floatValue] > [autosaveSlider maxValue]) - { - [autosaveField setFloatValue:[autosaveSlider maxValue]]; - } - [autosaveSlider setFloatValue:[autosaveField floatValue]]; - } - - periodString = [autosaveField stringValue]; - - [[NSUserDefaults standardUserDefaults] setObject:periodString - forKey:AutoSavePeriod]; - [preferencesDict setObject:periodString forKey:AutoSavePeriod]; - - [[NSNotificationCenter defaultCenter] - postNotificationName:PCSavePeriodDidChangeNotification - object:periodString]; -} - -// Key bindings -- (void)setTabBehaviour:(id)sender -{ - id cell = [sender selectedCell]; - NSString *tabBehaviour = nil; - - PCLogInfo(self, @"setTabBehaviour: %@", [cell title]); - - if ([[cell title] isEqualToString:@"Insert Tab"]) - { - tabBehaviour = [NSString stringWithString:@"Tab"]; - } - else if ([[cell title] isEqualToString:@"Indent only at beginning of line"]) - { - tabBehaviour = [NSString stringWithString:@"IndentAtBeginning"]; - } - else if ([[cell title] isEqualToString:@"Indent always"]) - { - tabBehaviour = [NSString stringWithString:@"IndentAlways"]; - } - else if ([[cell title] isEqualToString:@"Insert spaces"]) - { - tabBehaviour = [NSString stringWithString:@"Spaces"]; - [tabSpacesField setEnabled:YES]; - [tabSpacesField becomeFirstResponder]; - } - - [[NSUserDefaults standardUserDefaults] setObject:tabBehaviour - forKey:TabBehaviour]; - [preferencesDict setObject:tabBehaviour forKey:TabBehaviour]; -} - -- (void)setTabSpaces:(id)sender -{ - if ([[tabSpacesField stringValue] isEqualToString:@""]) - { - [tabSpacesField setStringValue:@"2"]; - } - - [[NSUserDefaults standardUserDefaults] - setObject:[tabSpacesField stringValue] - forKey:TabSpaces]; - [preferencesDict setObject:[tabSpacesField stringValue] forKey:TabSpaces]; -} - -// Miscellaneous -- (void)setPromptWhenQuit:(id)sender -{ - NSUserDefaults *def = [NSUserDefaults standardUserDefaults]; - - if (promptWhenQuit == nil) - { - promptWhenQuit = sender; - return; - } - - switch ([sender state]) - { - case 0: - [def setObject:@"NO" forKey:PromptOnQuit]; - break; - case 1: - [def setObject:@"YES" forKey:PromptOnQuit]; - break; - } - [def synchronize]; - - [preferencesDict setObject:[def objectForKey:PromptOnQuit] - forKey:PromptOnQuit]; -} - -- (void)setDeleteCache:(id)sender -{ - NSUserDefaults *def = [NSUserDefaults standardUserDefaults]; - - if (deleteCache == nil) - { - deleteCache = sender; - return; - } - - switch ([sender state]) - { - case 0: - [def setObject:@"NO" forKey:DeleteCacheWhenQuitting]; - break; - case 1: - [def setObject:@"YES" forKey:DeleteCacheWhenQuitting]; - break; - } - [def synchronize]; - - [preferencesDict setObject:[def objectForKey:DeleteCacheWhenQuitting] - forKey:DeleteCacheWhenQuitting]; -} - -- (void)setFullPathInFilePanels:(id)sender -{ - NSUserDefaults *def = [NSUserDefaults standardUserDefaults]; - - if (fullPathInFilePanels == nil) - { - fullPathInFilePanels = sender; - return; - } - - switch ([sender state]) - { - case 0: - [def setObject:@"NO" forKey:FullPathInFilePanels]; - break; - case 1: - [def setObject:@"YES" forKey:FullPathInFilePanels]; - break; - } - [def synchronize]; - - [preferencesDict setObject:[def objectForKey:FullPathInFilePanels] - forKey:FullPathInFilePanels]; -} - -- (void)setBuildTool:(id)sender -{ - NSString *path = [buildToolField stringValue]; - - if ([path isEqualToString:@""] || !path) - { - [buildToolField setStringValue:@"/usr/bin/make"]; - path = [buildToolField stringValue]; - } - else if (!path || ![[NSFileManager defaultManager] fileExistsAtPath:path]) - { - [buildToolField selectText:self]; - NSRunAlertPanel(@"Build Tool not found!", - @"File %@ doesn't exist!", - @"OK", nil, nil, path); - } - - [[NSUserDefaults standardUserDefaults] setObject:path forKey:BuildTool]; - [preferencesDict setObject:path forKey:BuildTool]; -} - -- (void)setDebugger:(id)sender -{ - NSString *path = [debuggerField stringValue]; - - if ([path isEqualToString:@""] || !path) - { - [debuggerField setStringValue:@"/usr/bin/gdb"]; - path = [debuggerField stringValue]; - } - else if (!path || ![[NSFileManager defaultManager] fileExistsAtPath:path]) - { - [debuggerField selectText:self]; - NSRunAlertPanel(@"Debugger not found!", - @"File %@ doesn't exist!", - @"OK", nil, nil, path); - } - - [[NSUserDefaults standardUserDefaults] setObject:path forKey:Debugger]; - [preferencesDict setObject:path forKey:Debugger]; -} - -- (void)setEditor:(id)sender -{ - NSString *path = [editorField stringValue]; - NSString *editorPath = nil; - NSFileManager *fm = [NSFileManager defaultManager]; - - [separateEditor setEnabled:YES]; - [self setEditorSizeEnabled:YES]; - - editorPath = [[path componentsSeparatedByString:@" "] objectAtIndex:0]; - if ([path isEqualToString:@""] || !path) - { - [editorField setStringValue:@"ProjectCenter"]; - path = [editorField stringValue]; - } - else if (![path isEqualToString:@"ProjectCenter"]) - { - if (![fm fileExistsAtPath:editorPath]) - { - [editorField selectText:self]; - NSRunAlertPanel(@"Editor not found!", - @"File %@ doesn't exist!", - @"Close", nil, nil, path); - } - else if (![fm isExecutableFileAtPath:editorPath]) - { - [editorField selectText:self]; - NSRunAlertPanel(@"Editor file error!", - @"File %@ exist but is not executable!", - @"Close", nil, nil, path); - } - [separateEditor setEnabled:NO]; - [self setEditorSizeEnabled:NO]; - } - - [[NSUserDefaults standardUserDefaults] setObject:path forKey:Editor]; - [preferencesDict setObject:path forKey:Editor]; -} - -// Interface -- (void)setDisplayPanels:(id)sender -{ - NSUserDefaults *def = [NSUserDefaults standardUserDefaults]; - NSString *key = nil; - - if (sender == separateBuilder) - { - key = [NSString stringWithString: SeparateBuilder]; - } - else if (sender == separateLauncher) - { - key = [NSString stringWithString: SeparateLauncher]; - } - else if (sender == separateEditor) - { - key = [NSString stringWithString: SeparateEditor]; - } - else if (sender == separateLoadedFiles) - { - key = [NSString stringWithString: SeparateLoadedFiles]; - } - - switch ([sender state]) - { - case NSOffState: - [def setObject: @"NO" forKey: key]; - break; - case NSOnState: - [def setObject:@"YES" forKey: key]; - break; - } - [def synchronize]; - - if (sender == separateEditor) - { - if ([sender state] == NSOffState) - { - [self setEditorSizeEnabled:NO]; - } - else - { - [self setEditorSizeEnabled:YES]; - } - [sender becomeFirstResponder]; - } - - [preferencesDict setObject:[def objectForKey:key] - forKey:key]; - [[NSNotificationCenter defaultCenter] - postNotificationName:PCPreferencesDidChangeNotification - object:self]; -} - -- (void)setEditorSize:(id)sender -{ - NSString *val = nil; - NSString *key = nil; - - if (sender == editorLinesField) - { - key = EditorLines; - val = [editorLinesField stringValue]; - } - else if (sender == editorColumnsField) - { - key = EditorColumns; - val = [editorColumnsField stringValue]; - } - [[NSUserDefaults standardUserDefaults] setObject:val forKey:key]; - [preferencesDict setObject:val forKey:key]; -} - -- (void)setEditorSizeEnabled:(BOOL)yn -{ - if (yn) - { - [editorLinesField setEnabled:YES]; - [editorLinesField setTextColor:[NSColor blackColor]]; - [editorLinesField setEditable:YES]; - [editorColumnsField setEnabled:YES]; - [editorColumnsField setTextColor:[NSColor blackColor]]; - [editorColumnsField setEditable:YES]; - } - else - { - [editorLinesField setEnabled:NO]; - [editorLinesField setTextColor:[NSColor darkGrayColor]]; - [editorLinesField setEditable:NO]; - [editorColumnsField setEnabled:NO]; - [editorColumnsField setTextColor:[NSColor darkGrayColor]]; - [editorColumnsField setEditable:NO]; - } -} - -- (void)setRememberWindows:(id)sender -{ - NSUserDefaults *def = [NSUserDefaults standardUserDefaults]; - - if (rememberWindows == nil) - { - rememberWindows = sender; - return; - } - - switch ([sender state]) - { - case 0: - [def setObject:@"NO" forKey:RememberWindows]; - break; - case 1: - [def setObject:@"YES" forKey:RememberWindows]; - break; - } - [def synchronize]; - - [preferencesDict setObject:[def objectForKey:RememberWindows] - forKey:RememberWindows]; -} - -- (void)setDisplayLog:(id)sender -{ - NSUserDefaults *def = [NSUserDefaults standardUserDefaults]; - - if (displayLog == nil) - { - displayLog = sender; - return; - } - - switch ([sender state]) - { - case 0: - [def setObject:@"NO" forKey:DisplayLog]; - break; - case 1: - [def setObject:@"YES" forKey:DisplayLog]; - break; - } - [def synchronize]; - - [preferencesDict setObject:[def objectForKey:DisplayLog] - forKey:DisplayLog]; -} - -// Bundles -- (void)setBundlePath:(id)sender -{ - NSString *path = [bundlePathField stringValue]; - - if (path) - { - [[NSUserDefaults standardUserDefaults] setObject:path forKey:BundlePaths]; - [preferencesDict setObject:path forKey:BundlePaths]; - } -} - -@end -