mirror of
https://github.com/gnustep/apps-projectcenter.git
synced 2025-03-19 09:02:02 +00:00
Implemented more preference handling and cleaned up some ugly parts of the
code. Removed the loadedProjectsWindow feature, it just does not make any sense. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/trunk@11912 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
f23771be80
commit
b4b59ad657
8 changed files with 154 additions and 44 deletions
|
@ -39,7 +39,6 @@
|
|||
- (void)newProject:(id)sender;
|
||||
- (void)saveProject:(id)sender;
|
||||
- (void)saveProjectAs:(id)sender;
|
||||
- (void)showLoadedProjects:(id)sender;
|
||||
- (void)saveFiles:(id)sender;
|
||||
- (void)revertToSaved:(id)sender;
|
||||
|
||||
|
|
|
@ -72,11 +72,6 @@
|
|||
[menuController saveProjectAs:sender];
|
||||
}
|
||||
|
||||
- (void)showLoadedProjects:(id)sender
|
||||
{
|
||||
[menuController showLoadedProjects:sender];
|
||||
}
|
||||
|
||||
- (void)saveFiles:(id)sender
|
||||
{
|
||||
[menuController saveFiles:sender];
|
||||
|
|
|
@ -29,6 +29,9 @@
|
|||
|
||||
#import <ProjectCenter/ProjectCenter.h>
|
||||
|
||||
#define REL_LIB_PC @"Library/ProjectCenter"
|
||||
#define ABS_LIB_PC @"/usr/GNUstep/Local/Library/ProjectCenter"
|
||||
|
||||
@implementation PCAppController
|
||||
|
||||
//============================================================================
|
||||
|
@ -43,10 +46,10 @@
|
|||
NSString *_bundlePath;
|
||||
|
||||
if (prefix && ![prefix isEqualToString:@""]) {
|
||||
_bundlePath = [prefix stringByAppendingPathComponent:@"Library/ProjectCenter"];
|
||||
_bundlePath = [prefix stringByAppendingPathComponent:REL_LIB_PC];
|
||||
}
|
||||
else {
|
||||
_bundlePath = [NSString stringWithString:@"/usr/GNUstep/Local/Library/ProjectCenter"];
|
||||
_bundlePath = [NSString stringWithString:ABS_LIB_PC];
|
||||
}
|
||||
|
||||
[defaults setObject:_bundlePath forKey:BundlePaths];
|
||||
|
@ -59,14 +62,13 @@
|
|||
|
||||
[defaults setObject:[NSString stringWithFormat:@"%@/ProjectCenterBuildDir",NSTemporaryDirectory()] forKey:RootBuildDirectory];
|
||||
|
||||
/*
|
||||
[defaults setBool:YES forKey:PromtOnClean];
|
||||
[defaults setBool:YES forKey:PromtOnQuit];
|
||||
[defaults setBool:YES forKey:AutoSave];
|
||||
[defaults setBool:NO forKey:RemoveBackup];
|
||||
[defaults setInteger:60 forKey:AutoSavePeriod];
|
||||
[defaults setBool:NO forKey:DeleteCacheWhenQuitting];
|
||||
*/
|
||||
[defaults setObject:@"YES" forKey:SaveOnQuit];
|
||||
[defaults setObject:@"YES" forKey:PromptOnClean];
|
||||
[defaults setObject:@"YES" forKey:PromptOnQuit];
|
||||
[defaults setObject:@"YES" forKey:AutoSave];
|
||||
[defaults setObject:@"YES" forKey:KeepBackup];
|
||||
[defaults setObject:@"120" forKey:AutoSavePeriod];
|
||||
[defaults setObject:@"NO" forKey:DeleteCacheWhenQuitting];
|
||||
|
||||
[[NSUserDefaults standardUserDefaults] registerDefaults:defaults];
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
|
@ -223,14 +225,23 @@
|
|||
|
||||
- (BOOL)applicationShouldTerminate:(id)sender
|
||||
{
|
||||
// This should be queried per project!
|
||||
/*
|
||||
if ([projectManager hasEditedDocuments]) {
|
||||
if (NSRunAlertPanel(@"Unsaved projects!", @"Do you want to save them?", @"Yes", @"No", nil)) {
|
||||
[projectManager saveAllProjects];
|
||||
NSString *poq = [[NSUserDefaults standardUserDefaults] objectForKey:PromptOnQuit];
|
||||
NSString *soq = [[NSUserDefaults standardUserDefaults] objectForKey:SaveOnQuit];
|
||||
|
||||
if( [poq isEqualToString:@"YES"] )
|
||||
{
|
||||
if (NSRunAlertPanel(@"Quit!",
|
||||
@"Do you really want to quit?",
|
||||
@"No", @"Yes", nil)) {
|
||||
return NO;
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
if ( [soq isEqualToString:@"YES"] ) {
|
||||
[projectManager saveAllProjects];
|
||||
}
|
||||
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:PCAppWillTerminateNotification object:nil];
|
||||
|
||||
return YES;
|
||||
|
@ -243,6 +254,7 @@
|
|||
if ([[[NSUserDefaults standardUserDefaults] stringForKey:DeleteCacheWhenQuitting] isEqualToString:@"YES"]) {
|
||||
[[NSFileManager defaultManager] removeFileAtPath:[projectManager rootBuildPath] handler:nil];
|
||||
}
|
||||
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
}
|
||||
|
||||
|
|
|
@ -61,7 +61,6 @@
|
|||
- (void)newProject:(id)sender;
|
||||
- (void)saveProject:(id)sender;
|
||||
- (void)saveProjectAs:(id)sender;
|
||||
- (void)showLoadedProjects:(id)sender;
|
||||
- (void)saveFiles:(id)sender;
|
||||
- (void)revertToSaved:(id)sender;
|
||||
|
||||
|
|
|
@ -155,11 +155,6 @@
|
|||
[projectManager saveProjectAs:proj];
|
||||
}
|
||||
|
||||
- (void)showLoadedProjects:(id)sender
|
||||
{
|
||||
[projectManager showLoadedProjects];
|
||||
}
|
||||
|
||||
- (void)saveFiles:(id)sender
|
||||
{
|
||||
[projectManager saveFiles];
|
||||
|
|
|
@ -41,7 +41,8 @@
|
|||
|
||||
id autoSaveField;
|
||||
id saveAutomatically;
|
||||
id removeBackup;
|
||||
id keepBackup;
|
||||
id saveOnQuit;
|
||||
|
||||
id useExternalEditor;
|
||||
id promptWhenQuit;
|
||||
|
@ -66,8 +67,9 @@
|
|||
- (void)setPromptOnClean:(id)sender;
|
||||
|
||||
- (void)setSaveAutomatically:(id)sender;
|
||||
- (void)setRemoveBackup:(id)sender;
|
||||
- (void)setKeepBackup:(id)sender;
|
||||
- (void)setSavePeriod:(id)sender;
|
||||
- (void)setSaveOnQuit:(id)sender;
|
||||
|
||||
- (void)setUseExternalEditor:(id)sender;
|
||||
|
||||
|
|
|
@ -269,6 +269,16 @@
|
|||
[prefSavingView addSubview:v];
|
||||
RELEASE(v);
|
||||
|
||||
saveOnQuit=[[NSButton alloc] initWithFrame:NSMakeRect(24,52,124,15)];
|
||||
[saveOnQuit setTitle:@"Save Projects Upon Quit"];
|
||||
[saveOnQuit setButtonType:NSSwitchButton];
|
||||
[saveOnQuit setBordered:NO];
|
||||
[saveOnQuit setTarget:self];
|
||||
[saveOnQuit setAction:@selector(setSaveOnQuit:)];
|
||||
[saveOnQuit setContinuous:NO];
|
||||
[v addSubview:saveOnQuit];
|
||||
[saveOnQuit sizeToFit];
|
||||
|
||||
saveAutomatically=[[NSButton alloc] initWithFrame:NSMakeRect(24,32,124,15)];
|
||||
[saveAutomatically setTitle:@"Save Project Automatically"];
|
||||
[saveAutomatically setButtonType:NSSwitchButton];
|
||||
|
@ -279,15 +289,15 @@
|
|||
[v addSubview:saveAutomatically];
|
||||
[saveAutomatically sizeToFit];
|
||||
|
||||
removeBackup = [[NSButton alloc] initWithFrame:NSMakeRect(24,12,124,15)];
|
||||
[removeBackup setTitle:@"Remove Backup Project"];
|
||||
[removeBackup setButtonType:NSSwitchButton];
|
||||
[removeBackup setBordered:NO];
|
||||
[removeBackup setTarget:self];
|
||||
[removeBackup setAction:@selector(setRemoveBackup:)];
|
||||
[removeBackup setContinuous:NO];
|
||||
[v addSubview:removeBackup];
|
||||
[removeBackup sizeToFit];
|
||||
keepBackup = [[NSButton alloc] initWithFrame:NSMakeRect(24,12,124,15)];
|
||||
[keepBackup setTitle:@"Keep Project Backup"];
|
||||
[keepBackup setButtonType:NSSwitchButton];
|
||||
[keepBackup setBordered:NO];
|
||||
[keepBackup setTarget:self];
|
||||
[keepBackup setAction:@selector(setKeepBackup:)];
|
||||
[keepBackup setContinuous:NO];
|
||||
[v addSubview:keepBackup];
|
||||
[keepBackup sizeToFit];
|
||||
|
||||
v = [[NSBox alloc] init];
|
||||
[v setTitle:@"Auto-Save"];
|
||||
|
@ -347,8 +357,9 @@
|
|||
RELEASE(useExternalEditor);
|
||||
RELEASE(promptWhenQuit);
|
||||
RELEASE(promptOnClean);
|
||||
RELEASE(saveOnQuit);
|
||||
RELEASE(saveAutomatically);
|
||||
RELEASE(removeBackup);
|
||||
RELEASE(keepBackup);
|
||||
|
||||
RELEASE(editorField);
|
||||
RELEASE(debuggerField);
|
||||
|
@ -396,6 +407,18 @@
|
|||
|
||||
[useExternalEditor setState:([[preferencesDict objectForKey:ExternalEditor] isEqualToString:@"YES"]) ? NSOnState : NSOffState];
|
||||
|
||||
[saveAutomatically setState:([[preferencesDict objectForKey:AutoSave] isEqualToString:@"YES"]) ? NSOnState : NSOffState];
|
||||
|
||||
[promptOnClean setState:([[preferencesDict objectForKey:PromptOnClean] isEqualToString:@"YES"]) ? NSOnState : NSOffState];
|
||||
|
||||
[keepBackup setState:([[preferencesDict objectForKey:KeepBackup] isEqualToString:@"YES"]) ? NSOnState : NSOffState];
|
||||
|
||||
[promptWhenQuit setState:([[preferencesDict objectForKey:PromptOnQuit] isEqualToString:@"YES"]) ? NSOnState : NSOffState];
|
||||
|
||||
[saveOnQuit setState:([[preferencesDict objectForKey:SaveOnQuit] isEqualToString:@"YES"]) ? NSOnState : NSOffState];
|
||||
|
||||
[autoSaveField setStringValue:(val=[preferencesDict objectForKey:AutoSavePeriod]) ? val : @"120"];
|
||||
|
||||
if (![prefWindow isVisible]) {
|
||||
[prefWindow setFrameUsingName:@"Preferences"];
|
||||
}
|
||||
|
@ -424,7 +447,8 @@
|
|||
|
||||
- (void)setSuccessSound:(id)sender
|
||||
{
|
||||
NSString *path = [self selectFileWithTypes:[NSArray arrayWithObjects:@"snd",@"au",nil]];
|
||||
NSArray *types = [NSArray arrayWithObjects:@"snd",@"au",nil];
|
||||
NSString *path = [self selectFileWithTypes:types];
|
||||
|
||||
if (path) {
|
||||
[successField setStringValue:path];
|
||||
|
@ -448,18 +472,86 @@
|
|||
|
||||
- (void)setPromptOnClean:(id)sender
|
||||
{
|
||||
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
|
||||
|
||||
switch ([[sender selectedCell] state]) {
|
||||
case 0:
|
||||
[def setObject:@"NO" forKey:PromptOnClean];
|
||||
break;
|
||||
case 1:
|
||||
[def setObject:@"YES" forKey:PromptOnClean];
|
||||
break;
|
||||
}
|
||||
[def synchronize];
|
||||
|
||||
[preferencesDict setObject:[def objectForKey:PromptOnClean]
|
||||
forKey:PromptOnClean];
|
||||
}
|
||||
|
||||
- (void)setSaveAutomatically:(id)sender
|
||||
{
|
||||
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
|
||||
|
||||
switch ([[sender selectedCell] state]) {
|
||||
case 0:
|
||||
[def setObject:@"NO" forKey:AutoSave];
|
||||
break;
|
||||
case 1:
|
||||
[def setObject:@"YES" forKey:AutoSave];
|
||||
break;
|
||||
}
|
||||
[def synchronize];
|
||||
|
||||
[preferencesDict setObject:[def objectForKey:AutoSave] forKey:AutoSave];
|
||||
}
|
||||
|
||||
- (void)setRemoveBackup:(id)sender
|
||||
- (void)setKeepBackup:(id)sender
|
||||
{
|
||||
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
|
||||
|
||||
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 = [autoSaveField stringValue];
|
||||
|
||||
if (periodString == nil || [periodString isEqualToString:@""]) {
|
||||
periodString = [NSString stringWithString:@"120"];
|
||||
}
|
||||
|
||||
[[NSUserDefaults standardUserDefaults] setObject:periodString
|
||||
forKey:AutoSavePeriod];
|
||||
[preferencesDict setObject:periodString forKey:AutoSavePeriod];
|
||||
}
|
||||
|
||||
- (void)setSaveOnQuit:(id)sender
|
||||
{
|
||||
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
|
||||
|
||||
switch ([[sender selectedCell] 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)setUseExternalEditor:(id)sender
|
||||
|
@ -475,6 +567,9 @@
|
|||
break;
|
||||
}
|
||||
[def synchronize];
|
||||
|
||||
[preferencesDict setObject:[def objectForKey:ExternalEditor]
|
||||
forKey:ExternalEditor];
|
||||
}
|
||||
|
||||
- (void)setEditor:(id)sender
|
||||
|
@ -519,6 +614,20 @@
|
|||
|
||||
- (void)promptWhenQuitting:(id)sender
|
||||
{
|
||||
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
|
||||
|
||||
switch ([[sender selectedCell] 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];
|
||||
}
|
||||
|
||||
- (NSDictionary *)preferencesDict
|
||||
|
|
|
@ -99,7 +99,7 @@ void createMenu()
|
|||
[project addItemWithTitle:@"Open" action:@selector(openProject:) keyEquivalent:@"o"];
|
||||
[project addItemWithTitle:@"New" action:@selector(newProject:) keyEquivalent:@"n"];
|
||||
[project addItemWithTitle:@"Save" action:@selector(saveProject:) keyEquivalent:@"s"];
|
||||
[project addItemWithTitle:@"Save As" action:@selector(saveProjectAs:) keyEquivalent:@""];
|
||||
[project addItemWithTitle:@"Save As" action:@selector(saveProjectAs:) keyEquivalent:@"S"];
|
||||
[project addItemWithTitle:@"Subprojects" action:action keyEquivalent:@""];
|
||||
[project addItemWithTitle:@"Close" action:@selector(closeProject:) keyEquivalent:@""];
|
||||
|
||||
|
@ -163,7 +163,6 @@ void createMenu()
|
|||
|
||||
tools = [[[NSMenu alloc] init] autorelease];
|
||||
[menu setSubmenu:tools forItem:[menu itemWithTitle:@"Tools"]];
|
||||
[tools addItemWithTitle:@"Loaded Projects..." action:@selector(showLoadedProjects:) keyEquivalent:@""];
|
||||
[tools addItemWithTitle:@"Build Panel" action:@selector(showBuildPanel:) keyEquivalent:@""];
|
||||
[tools addItemWithTitle:@"Find Panel" action:@selector(showFindPanel:) keyEquivalent:@"F"];
|
||||
[tools addItemWithTitle:@"Inspector Panel" action:@selector(showInspector:) keyEquivalent:@""];
|
||||
|
|
Loading…
Reference in a new issue