* Framework/PCSaveModifiedFiles.m: Change to more generic

implementation. PCRunSaveModifiedFilesPanel() implemented.
* Framework/PCProjectBuilder.m:
(prebuildCheck): Use PCRunSaveModifiedFiles().


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/trunk@27952 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Sergii Stoian 2009-02-22 20:57:42 +00:00
parent 5c6a72a7ca
commit 7a92c39ce5
4 changed files with 73 additions and 41 deletions

View file

@ -1,8 +1,15 @@
2009-02-22 Sergii Stoian <stoyan255@gmail.com>
* Framework/PCSaveModifiedFiles.m: Change to more generic
implementation. PCRunSaveModifiedFilesPanel() implemented.
* Framework/PCProjectBuilder.m:
(prebuildCheck): Use PCRunSaveModifiedFiles().
2009-02-22 Sergii Stoian <stoyan255@gmail.com>
* Framework/PCSaveModifiedFiles.m:
* Framework/English.lproj/SaveModifiedFiles.gorm:
* Headers/ProjectCenter/PCSaveModifiedFiles.m:
* Headers/ProjectCenter/PCSaveModifiedFiles.h:
Add initial implementation of "Save Modified Files" panel.
* Framework/PCProjectBuilder.m:
(prebuildCheck): Use PCSaveModifiedFiles.

View file

@ -492,31 +492,13 @@
projectEditor = [project projectEditor];
if ([projectEditor hasModifiedFiles])
{
PCSaveModifiedFiles *saveModified = [[PCSaveModifiedFiles alloc] init];
if (![saveModified openWithEditorManager:projectEditor
defaultButtonText:@"Save and Build"
alternateButtonText:@"Build Anyway"
otherButtonText:@"Cancel"])
if (!PCRunSaveModifiedFilesPanel(projectEditor,
@"Save and Build",
@"Build Anyway",
@"Cancel"))
{
RELEASE(saveModified);
return NO;
}
RELEASE(saveModified);
/* ret = NSRunAlertPanel(@"Project Build",
@"Project has unsaved files.\n"
"Do you want to save files before build a project?",
@"Stop Build", @"Save and Build", nil);
switch (ret)
{
case NSAlertDefaultReturn: // Stop Build
return NO;
break;
case NSAlertAlternateReturn: // Save and Build
[projectEditor saveAllFiles];
break;
}*/
}
// Get make tool path

View file

@ -27,15 +27,36 @@
#import <ProjectCenter/PCSaveModifiedFiles.h>
@implementation PCSaveModifiedFiles
- (BOOL)openWithEditorManager:(PCEditorManager *)manager
defaultButtonText:(NSString *)defaultText
alternateButtonText:(NSString *)alternateText
otherButtonText:(NSString *)otherText
BOOL PCRunSaveModifiedFilesPanel(PCEditorManager *manager,
NSString *defaultText,
NSString *alternateText,
NSString *otherText)
{
NSArray *filesToSave = nil;
PCSaveModified *saveModifiedPanel;
BOOL result;
if (!(saveModifiedPanel = [[PCSaveModified alloc] init]))
{
return NO;
}
result = [saveModifiedPanel saveFilesWithEditorManager:manager
defaultButtonText:defaultText
alternateButtonText:alternateText
otherButtonText:otherText];
RELEASE(saveModifiedPanel);
return result;
}
@implementation PCSaveModified
- (BOOL)saveFilesWithEditorManager:(PCEditorManager *)manager
defaultButtonText:(NSString *)defaultText
alternateButtonText:(NSString *)alternateText
otherButtonText:(NSString *)otherText
{
if ([NSBundle loadNibNamed:@"SaveModifiedFiles" owner:self] == NO)
{
NSLog(@"Error loading SaveModifiedFiles NIB file!");
@ -49,7 +70,7 @@
[filesList setHeaderView:nil];
[filesList setDataSource:self];
[filesList setTarget:self];
// [filesList selectAll];
[filesList selectAll:self];
[filesList reloadData];
// Buttons
@ -63,7 +84,7 @@
if (clickedButton == defaultButton)
{
// save files
[self saveSelectedFiles];
return YES;
}
else if (clickedButton == alternateButton)
@ -75,15 +96,13 @@
return NO;
}
NSLog(@"MODAL is not BLOCKING!!!");
return YES;
}
- (void)dealloc
{
#ifdef DEBUG
NSLog(@"PCSaveModifiedFiles: dealloc");
NSLog(@"PCSaveModified: dealloc");
#endif
RELEASE(panel);
@ -92,6 +111,19 @@
- (BOOL)saveSelectedFiles
{
NSArray *modifiedFiles = [editorManager modifiedFiles];
NSIndexSet *selectedRows = [filesList selectedRowIndexes];
NSArray *filesToSave = [modifiedFiles objectsAtIndexes:selectedRows];
NSEnumerator *enumerator = [filesToSave objectEnumerator];
NSString *filePath = nil;
NSLog(@"SaveModified|filesToSave: %@", filesToSave);
while ((filePath = [enumerator nextObject]))
{
[[editorManager editorForFile:filePath] saveFileIfNeeded];
}
return YES;
}
@ -102,6 +134,9 @@
[panel close];
}
// ============================================================================
// ==== TableView delegate
// ============================================================================
- (int)numberOfRowsInTableView:(NSTableView *)aTableView
{
if (aTableView != filesList)

View file

@ -28,7 +28,12 @@
#import <AppKit/AppKit.h>
@interface PCSaveModifiedFiles : NSObject
BOOL PCRunSaveModifiedFilesPanel(PCEditorManager *manager,
NSString *defaultText,
NSString *alternateText,
NSString *otherText);
@interface PCSaveModified : NSObject
{
PCEditorManager *editorManager;
@ -39,15 +44,17 @@
NSButton *otherButton;
NSButton *clickedButton;
}
- (BOOL)openWithEditorManager:(PCEditorManager *)manager
defaultButtonText:(NSString *)defaultText
alternateButtonText:(NSString *)alternateText
otherButtonText:(NSString *)otherText;
- (BOOL)saveFilesWithEditorManager:(PCEditorManager *)manager
defaultButtonText:(NSString *)defaultText
alternateButtonText:(NSString *)alternateText
otherButtonText:(NSString *)otherText;
- (void)dealloc;
- (BOOL)saveSelectedFiles;
// TableView delegate
- (int)numberOfRowsInTableView:(NSTableView *)aTableView;
- (id) tableView:(NSTableView *)aTableView
@ -55,5 +62,6 @@
row:(int)rowIndex;
@end
#endif