diff --git a/ChangeLog b/ChangeLog index f0b649e..cec859d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18,6 +18,8 @@ instead of closeAllProjects. * Modules/Editors/ProjectCenter/PCEditor.m: (_createWindow): Set "edited" flag according to current state. + * Framework/PCProjectBuilder.m: + (prebuildCheck): Check if project has edited files. 2009-02-15 14:14-EST Gregory John Casamento diff --git a/Framework/PCProjectBuilder.m b/Framework/PCProjectBuilder.m index 653db28..2dc7222 100644 --- a/Framework/PCProjectBuilder.m +++ b/Framework/PCProjectBuilder.m @@ -460,10 +460,11 @@ PCFileManager *pcfm = [PCFileManager defaultManager]; NSFileManager *fm = [NSFileManager defaultManager]; NSString *projectBuildDir; + PCProjectEditor *projectEditor; NSLog (@"BuildDir = %@", buildDir); - // Checking prerequisites + // Checking for project 'edited' state if ([project isProjectChanged]) { int ret; @@ -486,6 +487,34 @@ [project save]; } + // Checking if edited files exist + projectEditor = [project projectEditor]; + if ([projectEditor hasModifiedFiles]) + { + int ret; + + ret = NSRunAlertPanel(@"Project Build", + @"Project has unsaved files.\n" + "Do you want to save files before build a project?", + @"Review Unsaved", @"Build Anyway", @"Stop Build"); + switch (ret) + { + case NSAlertDefaultReturn: // Review Unsaved + if ([projectEditor reviewUnsaved:[projectEditor modifiedFiles]] == NO) + { // Operation was canceled + return NO; + } + break; + + case NSAlertAlternateReturn: // Build Anyway + break; + + case NSAlertOtherReturn: // Stop Build + return NO; + break; + } + } + // Get make tool path if (![self setMakePath]) {