* Framework/PCSaveModifiedFiles.m:

* Framework/English.lproj/SaveModifiedFiles.gorm:
* Headers/ProjectCenter/PCSaveModifiedFiles.m:
Add initial implementation of "Save Modified Files" panel.
* Framework/PCProjectBuilder.m:
(prebuildCheck): Use PCSaveModifiedFiles.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/trunk@27947 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Sergii Stoian 2009-02-22 01:31:37 +00:00
parent c81a433761
commit 5c6a72a7ca
9 changed files with 236 additions and 3 deletions

View file

@ -1,3 +1,12 @@
2009-02-22 Sergii Stoian <stoyan255@gmail.com>
* Framework/PCSaveModifiedFiles.m:
* Framework/English.lproj/SaveModifiedFiles.gorm:
* Headers/ProjectCenter/PCSaveModifiedFiles.m:
Add initial implementation of "Save Modified Files" panel.
* Framework/PCProjectBuilder.m:
(prebuildCheck): Use PCSaveModifiedFiles.
2009-02-19 Sergii Stoian <stoyan255@gmail.com>
* Framework/PCProjectBuilder.m:

View file

@ -0,0 +1,22 @@
{
"## Comment" = "Do NOT change this file, Gorm maintains it";
FirstResponder = {
Actions = (
"buttonClicked:"
);
Super = NSObject;
};
SaveModifiedFilesDelegate = {
Actions = (
"buttonClicked:"
);
Outlets = (
alternateButton,
defaultButton,
panel,
otherButton,
filesList
);
Super = NSObject;
};
}

View file

@ -33,6 +33,7 @@ ProjectCenter_HEADER_FILES = \
PCAddFilesPanel.h \
PCFileCreator.h \
PCMakefileFactory.h \
PCSaveModifiedFiles.h \
\
PCProjectManager.h \
PCProject.h \
@ -65,6 +66,7 @@ ProjectCenter_OBJC_FILES = \
PCFileManager.m \
PCAddFilesPanel.m \
PCFileCreator.m \
PCSaveModifiedFiles.m \
\
PCProjectManager.m \
PCProject.m \
@ -116,7 +118,8 @@ ProjectCenter_LOCALIZED_RESOURCE_FILES = \
ProjectDescription.gorm \
FileAttributes.gorm \
LogPanel.gorm \
Preferences.gorm
SaveModifiedFiles.gorm
ProjectCenter_LANGUAGES = \
English

View file

@ -38,6 +38,7 @@
#import <ProjectCenter/PCProjectEditor.h>
#import <Protocols/CodeEditor.h>
#import <ProjectCenter/PCSaveModifiedFiles.h>
#import <ProjectCenter/PCLogController.h>
#import <Protocols/Preferences.h>
@ -491,7 +492,18 @@
projectEditor = [project projectEditor];
if ([projectEditor hasModifiedFiles])
{
ret = NSRunAlertPanel(@"Project Build",
PCSaveModifiedFiles *saveModified = [[PCSaveModifiedFiles alloc] init];
if (![saveModified openWithEditorManager:projectEditor
defaultButtonText:@"Save and Build"
alternateButtonText:@"Build Anyway"
otherButtonText:@"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);
@ -504,7 +516,7 @@
case NSAlertAlternateReturn: // Save and Build
[projectEditor saveAllFiles];
break;
}
}*/
}
// Get make tool path

View file

@ -0,0 +1,128 @@
/*
GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html
Copyright (C) 2000-2004 Free Software Foundation
Authors: Philippe C.D. Robert
Serg Stoyan
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.
*/
#import <ProjectCenter/PCEditorManager.h>
#import <ProjectCenter/PCSaveModifiedFiles.h>
@implementation PCSaveModifiedFiles
- (BOOL)openWithEditorManager:(PCEditorManager *)manager
defaultButtonText:(NSString *)defaultText
alternateButtonText:(NSString *)alternateText
otherButtonText:(NSString *)otherText
{
NSArray *filesToSave = nil;
if ([NSBundle loadNibNamed:@"SaveModifiedFiles" owner:self] == NO)
{
NSLog(@"Error loading SaveModifiedFiles NIB file!");
return NO;
}
editorManager = manager;
// Table
[filesList setCornerView:nil];
[filesList setHeaderView:nil];
[filesList setDataSource:self];
[filesList setTarget:self];
// [filesList selectAll];
[filesList reloadData];
// Buttons
[defaultButton setStringValue:defaultText];
[alternateButton setStringValue:alternateText];
[otherButton setStringValue:otherText];
[panel makeKeyAndOrderFront:self];
[NSApp runModalForWindow:panel];
if (clickedButton == defaultButton)
{
// save files
return YES;
}
else if (clickedButton == alternateButton)
{
return YES;
}
else if (clickedButton == otherButton)
{
return NO;
}
NSLog(@"MODAL is not BLOCKING!!!");
return YES;
}
- (void)dealloc
{
#ifdef DEBUG
NSLog(@"PCSaveModifiedFiles: dealloc");
#endif
RELEASE(panel);
[super dealloc];
}
- (BOOL)saveSelectedFiles
{
return YES;
}
- (void)buttonClicked:(id)sender
{
clickedButton = sender;
[NSApp stopModal];
[panel close];
}
- (int)numberOfRowsInTableView:(NSTableView *)aTableView
{
if (aTableView != filesList)
{
return 0;
}
return [[editorManager modifiedFiles] count];
}
- (id) tableView:(NSTableView *)aTableView
objectValueForTableColumn:(NSTableColumn *)aTableColumn
row:(int)rowIndex
{
if (aTableView != filesList)
{
return nil;
}
return [[[editorManager modifiedFiles] objectAtIndex:rowIndex] lastPathComponent];
}
@end

View file

@ -0,0 +1,59 @@
/*
GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html
Copyright (C) 2000-2004 Free Software Foundation
Authors: Philippe C.D. Robert
Serg Stoyan
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.
*/
#ifndef _PCSaveModifiedFiles_h_
#define _PCSaveModifiedFiles_h_
#import <AppKit/AppKit.h>
@interface PCSaveModifiedFiles : NSObject
{
PCEditorManager *editorManager;
NSWindow *panel;
NSTableView *filesList;
NSButton *defaultButton;
NSButton *alternateButton;
NSButton *otherButton;
NSButton *clickedButton;
}
- (BOOL)openWithEditorManager:(PCEditorManager *)manager
defaultButtonText:(NSString *)defaultText
alternateButtonText:(NSString *)alternateText
otherButtonText:(NSString *)otherText;
- (void)dealloc;
- (int)numberOfRowsInTableView:(NSTableView *)aTableView;
- (id) tableView:(NSTableView *)aTableView
objectValueForTableColumn:(NSTableColumn *)aTableColumn
row:(int)rowIndex;
@end
#endif