Release 0.4.1

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/trunk@20600 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Sergii Stoian 2005-01-23 00:06:03 +00:00
parent a66f7753e3
commit 2cb3174880
12 changed files with 178 additions and 144 deletions

View file

@ -1,7 +1,7 @@
ANNOUNCE
************
This is version 0.4.0 of ProjectCenter.
This is version 0.4.1 of ProjectCenter. This is a bugfix version.
What is ProjectCenter?
======================
@ -10,38 +10,26 @@ What is ProjectCenter?
application. It is a clone of the OPENSTEP ProjectBuilder application
for GNUstep.
ProjectCenter is covered under the GNU Public License. This means if you
make changes to these programs, you cannot charge a fee, other than
ProjectCenter is covered under the GNU General Public License. This means
if you make changes to these programs, you cannot charge a fee, other than
distribution fees, for others to use the program. You should read the
Documentation/COPYING file for more information.
Noteworthy changes in version `0.4.0'.
Noteworthy changes in version `0.4.1'.
======================================
* A lot of refactoring and cleanup was made
* Fixes in file and subprojects handling.
* Some parts of interface were recreated using GORM
* Improvements and fixes in file selection dialog.
* Most part of Project Inspector is completed
* Rewritten toolips code for buttons. Made it NSView compatible
(ready for incorporation into NSView code).
* Finished Loaded Files and appropriate menu items
* All .gorm files updated with latest GORM.
* Stability issues fixed in Project Builder
* Added support for document-based applications (added "Document Types"
panel into Project Inspector).
* Interaces fixes were made in Project Launcher
* Added subprojects support
* Preferences recreated and cleaned up.
* Many browser fixes were made in Project Window
* Much time was spent to fix stability problems
* Added "Aggregate" project type
* "Application" and "GormApplication" project types merged
into "Application" project type
How can I get support for this software?
========================================

View file

@ -6,3 +6,4 @@ Nicola Pero <n.pero@mi.flashnet.it>
Pierre-Yves Rivaille <pyrivail@ens-lyon.fr>
Adam Fedor <fedor@gnu.org>
Daniel Luederwald <das_flip@gmx.de>
Gregory Jonh Casamento <greg_casamento@yahoo.com>

View file

@ -1,8 +1,24 @@
2005-01-22 Serg Stoyan <stoyan255@ukr.net>
* Release 0.4.1
* Modules/ApplicationProject/PCAppProject+Inspector.m:
(addDocType:): Set all textfields to default values.
(removeDocType:): Call fillFieldsForRow: after row removing.
2005-01-09 Gregory Jonh Casamento <greg_casamento@yahoo.com>
* Library/PCProjectBuilder.m:
(build:): Exception handler added.
2005-01-09 Serg Stoyan <stoyan255@ukr.net>
* Library/PCButton.m:
(release): Added and implemented. Remove tooltips if object is
about to be dealloced.
* Library/PCProjectBuilder.m:
(stopBuild:): Eception handler added.
2005-01-05 Serg Stoyan <stoyan255@ukr.net>

View file

@ -8,7 +8,7 @@ GNUSTEP_INSTALLATION_DIR = $(GNUSTEP_SYSTEM_ROOT)
#
# Main application
#
VERSION = 0.4.1pre
VERSION = 0.4.1
PACKAGE_NAME = ProjectCenter
APP_NAME = ProjectCenter
ProjectCenter_APPLICATION_ICON = Images/ProjectCenter.tiff
@ -84,7 +84,6 @@ Modules/LibraryProject/LibraryProject.bundle \
Modules/RenaissanceProject/RenaissanceProject.bundle \
Modules/ToolProject/ToolProject.bundle
#
# Header files
#
@ -106,11 +105,6 @@ PCMenuController.m \
PCPrefController.m \
ProjectCenter_main.m
#
# C files
#
ProjectCenter_C_FILES =
-include GNUmakefile.preamble
include $(GNUSTEP_MAKEFILES)/aggregate.make
include $(GNUSTEP_MAKEFILES)/application.make

View file

@ -23,11 +23,7 @@
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
before-all::
# rm -f ProjectCenter
# $(LN_S) . ProjectCenter
after-clean::
# rm -f ProjectCenter
after-uninstall::
rm -rf $(GNUSTEP_SYSTEM_ROOT)/Library/Headers/ProjectCenter

View file

@ -47,8 +47,6 @@ ADDITIONAL_LDFLAGS += -lProjectCenter
#ADDITIONAL_LIB_DIRS += -L./Library/$(GNUSTEP_OBJ_DIR)
ADDITIONAL_LIB_DIRS += -L./Library/ProjectCenter.framework/Versions/Current
ADDITIONAL_TOOL_LIBS +=
#
# Flags dealing with installing and uninstalling
#

View file

@ -9,9 +9,9 @@ GNUSTEP_INSTALLATION_DIR = $(GNUSTEP_SYSTEM_ROOT)
#
# Framework
#
VERSION = 0.4.0
VERSION = 0.4.1
FRAMEWORK_NAME = ProjectCenter
ProjectCenter_CURRENT_VERSION_NAME = 0.4.0
ProjectCenter_CURRENT_VERSION_NAME = 0.4.1
ProjectCenter_DEPLOY_WITH_CURRENT_VERSION = yes
ProjectCenter_LIBRARIES_DEPEND_UPON += -lgnustep-gui

View file

@ -29,6 +29,7 @@ after-clean::
rm -f ../ProjectCenter
after-uninstall::
rm -rf $(GNUSTEP_SYSTEM_ROOT)/Library/Headers/ProjectCenter
rm -rf $(GNUSTEP_SYSTEM_ROOT)/Library/Libraries/Resources/ProjectCenter
# rm -rf $(GNUSTEP_SYSTEM_ROOT)/Library/Headers/ProjectCenter
# rm -rf $(GNUSTEP_SYSTEM_ROOT)/Library/Libraries/Resources/ProjectCenter
rm -rf $(GNUSTEP_SYSTEM_ROOT)/Library/Libraries/libProjectCenter*

View file

@ -97,8 +97,8 @@
@interface PCProjectBuilder (UserInterface)
- (void) _createComponentView;
- (void) _createOptionsPanel;
- (void)_createComponentView;
- (void)_createOptionsPanel;
@end

View file

@ -382,6 +382,7 @@
#ifdef DEVELOPMENT
NSLog (@"PCProjectBuilder: dealloc");
#endif
[buildTarget release];
[buildArgs release];
[makePath release];
@ -459,25 +460,25 @@
// Set build arguments
if ([buildTarget isEqualToString: @"Debug"])
{
[buildArgs addObject: @"debug=yes"];
[buildArgs addObject:@"debug=yes"];
}
else if ([buildTarget isEqualToString: @"Profile"])
else if ([buildTarget isEqualToString:@"Profile"])
{
[buildArgs addObject: @"profile=yes"];
[buildArgs addObject: @"static=yes"];
[buildArgs addObject:@"profile=yes"];
[buildArgs addObject:@"static=yes"];
}
else if ([buildTarget isEqualToString: @"Tarball"])
else if ([buildTarget isEqualToString:@"Tarball"])
{
[buildArgs addObject: @"dist"];
[buildArgs addObject:@"dist"];
}
else if ([buildTarget isEqualToString: @"RPM"])
else if ([buildTarget isEqualToString:@"RPM"])
{
[buildArgs addObject: @"rpm"];
[buildArgs addObject:@"rpm"];
postProcess = @selector (copyPackageTo:);
}
statusString = [NSString stringWithString: @"Building..."];
[buildTarget setString: @"Build"];
statusString = [NSString stringWithString:@"Building..."];
[buildTarget setString:@"Build"];
[cleanButton setEnabled:NO];
[installButton setEnabled:NO];
[self build:self];
@ -513,13 +514,10 @@
{
if (NSRunAlertPanel(@"Clean Project?",
@"Do you really want to clean project '%@'?",
@"Yes",
@"No",
nil,
[currentProject projectName])
@"Yes", @"No", nil, [currentProject projectName])
== NSAlertAlternateReturn)
{
[cleanButton setState: NSOffState];
[cleanButton setState:NSOffState];
return;
}
}
@ -534,12 +532,12 @@
- (void)startInstall:(id)sender
{
[buildTarget setString: @"Install"];
statusString = [NSString stringWithString: @"Installing..."];
[buildArgs addObject: @"install"];
[buildTarget setString:@"Install"];
statusString = [NSString stringWithString:@"Installing..."];
[buildArgs addObject:@"install"];
[buildButton setEnabled:NO];
[cleanButton setEnabled:NO];
[self build: self];
[self build:self];
}
- (void)showOptionsPanel:(id)sender
@ -548,7 +546,7 @@
{
[self _createOptionsPanel];
}
[optionsPanel orderFront: nil];
[optionsPanel orderFront:nil];
}
// --- Actions
@ -566,7 +564,7 @@
{
if (NSRunAlertPanel(@"Project Changed!",
@"Should it be saved first?",
@"Yes",@"No",nil) == NSAlertDefaultReturn)
@"Yes", @"No", nil) == NSAlertDefaultReturn)
{
[currentProject save];
}
@ -577,12 +575,12 @@
[currentProject save];
}
if( [buildTarget isEqualToString: @"RPM"]
&& [env objectForKey:@"RPM_TOPDIR"] == nil )
if ([buildTarget isEqualToString:@"RPM"]
&& [env objectForKey:@"RPM_TOPDIR"] == nil)
{
NSRunAlertPanel(@"Attention!",
@"First set the environment variable 'RPM_TOPDIR'!",
@"OK",nil,nil);
@"OK", nil, nil);
return;
}
@ -591,38 +589,38 @@
readHandle = [logPipe fileHandleForReading];
[readHandle waitForDataInBackgroundAndNotify];
[NOTIFICATION_CENTER addObserver: self
selector: @selector (logStdOut:)
name: NSFileHandleDataAvailableNotification
object: readHandle];
[NOTIFICATION_CENTER addObserver:self
selector:@selector(logStdOut:)
name:NSFileHandleDataAvailableNotification
object:readHandle];
errorPipe = [NSPipe pipe];
errorReadHandle = [errorPipe fileHandleForReading];
[errorReadHandle waitForDataInBackgroundAndNotify];
[NOTIFICATION_CENTER addObserver: self
selector: @selector (logErrOut:)
name: NSFileHandleDataAvailableNotification
object: errorReadHandle];
[NOTIFICATION_CENTER addObserver:self
selector:@selector(logErrOut:)
name:NSFileHandleDataAvailableNotification
object:errorReadHandle];
[buildStatusField setStringValue: statusString];
[buildStatusField setStringValue:statusString];
// Run make task
[logOutput setString: @""];
[errorOutput setString: @""];
[NOTIFICATION_CENTER addObserver: self
selector: @selector (buildDidTerminate:)
name: NSTaskDidTerminateNotification
object: nil];
[NOTIFICATION_CENTER addObserver:self
selector:@selector(buildDidTerminate:)
name:NSTaskDidTerminateNotification
object:nil];
makeTask = [[NSTask alloc] init];
[makeTask setArguments: buildArgs];
[makeTask setArguments:buildArgs];
[makeTask setCurrentDirectoryPath: [currentProject projectPath]];
[makeTask setLaunchPath: makePath];
[makeTask setLaunchPath:makePath];
[makeTask setStandardOutput: logPipe];
[makeTask setStandardError: errorPipe];
[makeTask setStandardOutput:logPipe];
[makeTask setStandardError:errorPipe];
NS_DURING
{
@ -632,11 +630,12 @@
{
NSRunAlertPanel(@"Problem Launching Build Tool",
[localException reason],
@"OK",
nil,
nil,
nil);
@"OK", nil, nil, nil);
//Clean up after task is terminated
[[NSNotificationCenter defaultCenter]
postNotificationName:NSTaskDidTerminateNotification
object:makeTask];
}
NS_ENDHANDLER
}
@ -650,50 +649,66 @@
return;
}
[NOTIFICATION_CENTER removeObserver:self];
NSLog(@"task did terminate");
status = [makeTask terminationStatus];
// [NOTIFICATION_CENTER removeObserver:self];
[NOTIFICATION_CENTER removeObserver:self
name:NSTaskDidTerminateNotification
object:nil];
// If task was not launched catch exception
NS_DURING
{
status = [makeTask terminationStatus];
}
NS_HANDLER
{
status = 1;
}
NS_ENDHANDLER
if (status == 0)
{
[self logString:
[NSString stringWithFormat: @"=== %@ succeeded!", buildTarget]
error: NO newLine: NO];
[buildStatusField setStringValue:
[NSString stringWithFormat:
[NSString stringWithFormat:@"=== %@ succeeded!", buildTarget]
error:NO
newLine:NO];
[buildStatusField setStringValue:[NSString stringWithFormat:
@"%@ - %@ succeeded...", [currentProject projectName], buildTarget]];
}
else
{
[self logString:
[NSString stringWithFormat: @"=== %@ terminated!", buildTarget]
error: NO newLine: NO];
[buildStatusField setStringValue:
[NSString stringWithFormat:
[NSString stringWithFormat:@"=== %@ terminated!", buildTarget]
error:NO
newLine:NO];
[buildStatusField setStringValue:[NSString stringWithFormat:
@"%@ - %@ terminated...", [currentProject projectName], buildTarget]];
}
// Rstore buttons state
if ([buildTarget isEqualToString: @"Build"])
if ([buildTarget isEqualToString:@"Build"])
{
[buildButton setState: NSOffState];
[cleanButton setEnabled: YES];
[installButton setEnabled: YES];
[buildButton setState:NSOffState];
[cleanButton setEnabled:YES];
[installButton setEnabled:YES];
}
else if ([buildTarget isEqualToString: @"Clean"])
else if ([buildTarget isEqualToString:@"Clean"])
{
[cleanButton setState: NSOffState];
[buildButton setEnabled: YES];
[installButton setEnabled: YES];
[cleanButton setState:NSOffState];
[buildButton setEnabled:YES];
[installButton setEnabled:YES];
}
else if ([buildTarget isEqualToString: @"Install"])
else if ([buildTarget isEqualToString:@"Install"])
{
[installButton setState: NSOffState];
[buildButton setEnabled: YES];
[cleanButton setEnabled: YES];
[installButton setState:NSOffState];
[buildButton setEnabled:YES];
[cleanButton setEnabled:YES];
}
[buildArgs removeAllObjects];
[buildTarget setString: @"Default"];
[buildTarget setString:@"Default"];
RELEASE(makeTask);
makeTask = nil;
@ -701,7 +716,7 @@
// Run post process if configured
if (status && postProcess)
{
[self performSelector: postProcess];
[self performSelector:postProcess];
postProcess = NULL;
}
@ -719,7 +734,6 @@
[buildTargetArgsField stringValue]];
[targetField setStringValue: target];
}
- (void)logStdOut:(NSNotification *)aNotif
@ -728,22 +742,42 @@
if ((data = [readHandle availableData]))
{
[self logData: data error: NO];
[self logData:data error:NO];
}
[readHandle waitForDataInBackgroundAndNotifyForModes: nil];
if (makeTask)
{
[readHandle waitForDataInBackgroundAndNotify];
}
else
{
[NOTIFICATION_CENTER removeObserver:self
name:NSFileHandleDataAvailableNotification
object:readHandle];
}
}
- (void)logErrOut:(NSNotification *)aNotif
{
NSData *data;
NSLog(@"logErrOut");
if ((data = [errorReadHandle availableData]))
{
[self logData:data error:YES];
}
[errorReadHandle waitForDataInBackgroundAndNotifyForModes:nil];
if (makeTask)
{
[errorReadHandle waitForDataInBackgroundAndNotify];
}
else
{
[NOTIFICATION_CENTER removeObserver:self
name:NSFileHandleDataAvailableNotification
object:errorReadHandle];
}
}
- (void)copyPackageTo:(NSString *)path
@ -765,43 +799,46 @@
@implementation PCProjectBuilder (BuildLogging)
- (void)logString: (NSString *)string
error: (BOOL)yn
- (void)logString:(NSString *)string
error:(BOOL)yn
{
[self logString: string error: yn newLine: NO];
[self logString:string error:yn newLine:NO];
}
- (void)logString: (NSString *)str
error: (BOOL)yn
newLine: (BOOL)newLine
- (void)logString:(NSString *)str
error:(BOOL)yn
newLine:(BOOL)newLine
{
NSTextView *out = (yn) ? errorOutput : logOutput;
[out replaceCharactersInRange:
NSMakeRange ([[out string] length],0) withString: str];
NSMakeRange([[out string] length],0) withString:str];
if (newLine)
{
[out replaceCharactersInRange:
NSMakeRange ([[out string] length], 0) withString: @"\n"];
NSMakeRange([[out string] length], 0) withString:@"\n"];
}
else
{
[out replaceCharactersInRange:
NSMakeRange ([[out string] length], 0) withString: @" "];
NSMakeRange([[out string] length], 0) withString:@" "];
}
[out scrollRangeToVisible: NSMakeRange([[out string] length], 0)];
[out setNeedsDisplay: YES];
[out scrollRangeToVisible:NSMakeRange([[out string] length], 0)];
[out setNeedsDisplay:YES];
}
- (void)logData: (NSData *)data
error: (BOOL)yn
- (void)logData:(NSData *)data
error:(BOOL)yn
{
NSString *s = [[NSString alloc] initWithData: data
encoding: [NSString defaultCStringEncoding]];
NSString *s = nil;
s = [[NSString alloc] initWithData:data
encoding:[NSString defaultCStringEncoding]];
[self logString:s error:yn newLine:NO];
[self logString: s error: yn newLine: NO];
RELEASE(s);
}

View file

@ -384,12 +384,12 @@ NSString *PCITextFieldGetFocus = @"PCITextFieldGetFocusNotification";
NSMutableDictionary *entry = [NSMutableDictionary dictionaryWithCapacity:6];
int selectedRow = [docTypesList selectedRow];
[entry setObject:[docTypeField stringValue] forKey:@"NSName"];
[entry setObject:[docNameField stringValue] forKey:@"NSHumanReadableName"];
[entry setObject:[[docExtensionsField stringValue] componentsSeparatedByString:@","] forKey:@"NSUnixExtensions"];
[entry setObject:[docIconField stringValue] forKey:@"NSIcon"];
[entry setObject:[docRoleField stringValue] forKey:@"NSRole"];
[entry setObject:[docClassField stringValue] forKey:@"NSDocumentClass"];
[entry setObject:@"" forKey:@"NSName"];
[entry setObject:@"" forKey:@"NSHumanReadableName"];
[entry setObject:[NSArray array] forKey:@"NSUnixExtensions"];
[entry setObject:@"" forKey:@"NSIcon"];
[entry setObject:@"" forKey:@"NSRole"];
[entry setObject:@"NSDocumentClass" forKey:@"NSDocumentClass"];
if (selectedRow >= 0 && [docTypesItems count] > 0)
{
@ -404,6 +404,7 @@ NSString *PCITextFieldGetFocus = @"PCITextFieldGetFocusNotification";
[docTypesList reloadData];
[docTypesList selectRow:row byExtendingSelection:NO];
[docTypesList scrollRowToVisible:row];
[self fillFieldsForRow:row];
@ -425,9 +426,10 @@ NSString *PCITextFieldGetFocus = @"PCITextFieldGetFocusNotification";
if (([docTypesList selectedRow] < 0) && ([docTypesItems count] > 0))
{
[docTypesList selectRow:[docTypesItems count]-1 byExtendingSelection:NO];
[self fillFieldsForRow:[docTypesItems count]-1];
}
[self fillFieldsForRow:[docTypesList selectedRow]];
[self setProjectDictObject:docTypesItems
forKey:PCDocumentTypes
notify:YES];

View file

@ -1,10 +1,10 @@
{
NOTE = "Automatically generated, do not edit!";
ApplicationName = "ProjectCenter";
ApplicationDescription = "GNUstep IDE";
ApplicationDescription = "GNUstep Integrated Development Environment";
ApplicationIcon = "ProjectCenter.tiff";
ApplicationRelease = "0.4.1pre";
FullVersionID = "development";
ApplicationRelease = "0.4.1";
FullVersionID = "HEAD";
Authors = (
"Philippe C.D. Robert",
"Serg Stoyan",
@ -12,7 +12,8 @@
"Richard Frith-Macdonald",
"Nicola Pero",
"Pierre-Yves Rivaille",
"Adam Fedor");
"Adam Fedor",
"Gregory Jonh Casamento");
NSIcon = "ProjectCenter.tiff";
NSExecutable = ProjectCenter;
NSMainNibFile = ProjectCenter.gorm;
@ -41,6 +42,6 @@
}
);
URL = "See http://www.gnustep.org/";
Copyright = "Copyright (C) 1999 - 2003 Free Software Foundation";
Copyright = "Copyright (C) 1999 - 2005 Free Software Foundation";
CopyrightDescription = "Released under the GNU General Public License 2.0";
}