From 050cf77b3de1a75780604eb92ceb4b868a07efc8 Mon Sep 17 00:00:00 2001 From: "Philippe C.D. Robert" Date: Sat, 2 Mar 2002 13:11:05 +0000 Subject: [PATCH] The timed safe mechanism now also saves all project files, if needed. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/trunk@12951 72102866-910b-0410-8b05-ffd578937521 --- PCLib/PCEditorController.h | 2 ++ PCLib/PCEditorController.m | 20 ++++++++++++++++++++ PCLib/PCProject.m | 11 ++++++----- PCLib/PCProjectManager.m | 4 +++- 4 files changed, 31 insertions(+), 6 deletions(-) diff --git a/PCLib/PCEditorController.h b/PCLib/PCEditorController.h index a3e5304..34ecc4e 100644 --- a/PCLib/PCEditorController.h +++ b/PCLib/PCEditorController.h @@ -54,6 +54,8 @@ // ==== File handling // =========================================================================== +- (BOOL)saveAllFiles; + - (BOOL)saveFile; - (BOOL)revertFile; diff --git a/PCLib/PCEditorController.m b/PCLib/PCEditorController.m index 6490d05..afc0118 100644 --- a/PCLib/PCEditorController.m +++ b/PCLib/PCEditorController.m @@ -165,6 +165,26 @@ // ==== File handling // =========================================================================== +- (BOOL)saveAllFiles +{ + NSEnumerator *enumerator = [editorDict keyEnumerator]; + PCEditor *editor; + NSString *key; + BOOL ret = YES; + + while(( key = [enumerator nextObject] )) + { + editor = [editorDict objectForKey:key]; + + if( [editor saveFile] == NO ) + { + ret = NO; + } + } + + return ret; +} + - (BOOL)saveFile { NSEnumerator *enumerator = [editorDict keyEnumerator]; diff --git a/PCLib/PCProject.m b/PCLib/PCProject.m index 6267ff3..3c98ed3 100644 --- a/PCLib/PCProject.m +++ b/PCLib/PCProject.m @@ -890,10 +890,12 @@ } } - if (shouldKeep && [fm isReadableFileAtPath:file]) { + if (shouldKeep && [fm isReadableFileAtPath:file]) + { ret = [fm copyPath:file toPath:backup handler:nil]; - if( ret == NO ) { + if( ret == NO ) + { NSRunAlertPanel(@"Attention!", @"Could not save the project backup file '%@'!", @"OK",nil,nil,file); @@ -907,6 +909,7 @@ [projectWindow setDocumentEdited:NO]; } + [self saveAllFiles]; [self writeMakefile]; return ret; @@ -924,9 +927,7 @@ - (BOOL)saveAllFiles { - BOOL ret = NO; - - return ret; + return [editorController saveAllFiles]; } - (BOOL)saveAllFilesIfNeeded diff --git a/PCLib/PCProjectManager.m b/PCLib/PCProjectManager.m index 3494958..2e8ed4d 100644 --- a/PCLib/PCProjectManager.m +++ b/PCLib/PCProjectManager.m @@ -246,7 +246,9 @@ NSString *ActiveProjectDidChangeNotification = @"ActiveProjectDidChange"; { project = [loadedProjects objectForKey:key]; ret = [project save]; - if( ret == NO ) { + + if( ret == NO ) + { NSRunAlertPanel(@"Attention!", @"Couldn't save project %@!", @"OK",nil,nil,[project projectName]);