From 41abbd7e655419c2ee0ad8e4b8bf33f6b7ed3c57 Mon Sep 17 00:00:00 2001 From: Sergii Stoian Date: Wed, 2 Jul 2003 11:32:45 +0000 Subject: [PATCH] *** empty log message *** git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/trunk@17086 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 34 ++++ PCAppProj/PCAppProj.m | 4 - PCAppProj/PCAppProject.m | 68 ++++--- PCBundleProj/PCBundleProj.m | 4 - PCGormProj/PCGormProj.m | 4 - PCLib/PCFileManager.m | 32 ++- PCLib/PCProject+UInterface.m | 278 +++++++++++++++++++------- PCLib/PCProject.h | 9 +- PCLib/PCProject.m | 2 + PCLib/PCProjectBuilder.m | 109 ++-------- PCLib/PCProjectManager+UInterface.m | 6 +- PCLib/PCProjectManager.m | 43 ++-- PCLibProj/PCLibProj.m | 4 - PCRenaissanceProj/PCRenaissanceProj.m | 4 - PCToolProj/PCToolProj.m | 4 - 15 files changed, 346 insertions(+), 259 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1353845..7bb9408 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,37 @@ +2003-07-02 Serg Stoyan + + * PCAppProj/PCAppProj.m: + * PCBundleProj/PCBundleProj.m: + * PCGormProj/PCGormProj.m: + * PCLibProj/PCLibProj.m: + * PCRenaissanceProj/PCRenaissanceProj.m: + * PCToolProj/PCToolProj.m: + Set project type field to class description both in GNUstep and + non-GNUstep environment. Fixes bug #3393. + + * PCAppProj/PCAppProject.m: + (_initUI): Rearrangements of controls. Release control after adding + to superview. + + * PCLib/PCFileManager.m: + (showAddFileWindow): Handling of image, docs, models and non project + files added. Now images go into Images subdir, docs into Documentation, + .gorm files into $LANGUAGE.lproj subdir. + + * PCLib/PCProject+UInterface.m: + (_initUI): Files' history list enabled back. Adjust size of history + list. Added some fileds, controls rearranged in Project Inspector. + + * PCLib/PCProject.h: Added definition of new Inspector fields. + * PCLib/PCProject.m: (updateValuesFromProjectDict): Set project's + language. + * PCLib/PCProjectBuilder.m: Stability improved via cleanup in build + task handling. + (topButtonPressed:): Removed. + + * PCLib/PCProjectManager+UInterface.m: ProjectInspector content view + resized. Changed title from "Inspector" to "Project Inspector". + 2003-06-20 Serg Stoyan * Images/ButtonTile.tiff: Added. diff --git a/PCAppProj/PCAppProj.m b/PCAppProj/PCAppProj.m index b18b55e..ff470ee 100644 --- a/PCAppProj/PCAppProj.m +++ b/PCAppProj/PCAppProj.m @@ -92,11 +92,7 @@ static PCAppProj *_creator = nil; // Customise the project [dict setObject:[path lastPathComponent] forKey:PCProjectName]; -#ifndef GNUSTEP_BASE_VERSION [dict setObject:[[project principalClass] description] forKey:PCProjType]; -#else - [dict setObject:[project principalClass] forKey:PCProjType]; -#endif // Create the AppNameInfo.plist infoDict = [NSDictionary dictionaryWithObjectsAndKeys: diff --git a/PCAppProj/PCAppProject.m b/PCAppProj/PCAppProject.m index 65e6333..3e69e09 100644 --- a/PCAppProj/PCAppProject.m +++ b/PCAppProj/PCAppProject.m @@ -41,22 +41,24 @@ - (void)_initUI { NSTextField *textField; - NSRect frame = {{84,120}, {80, 80}}; - NSBox *_box; + NSRect frame; + NSBox *_iconViewBox; + NSBox *_appIconBox; [super _initUI]; - textField =[[NSTextField alloc] initWithFrame:NSMakeRect(16,256,64,21)]; + // Application Class + textField = [[NSTextField alloc] initWithFrame:NSMakeRect(4,248,104,21)]; [textField setAlignment: NSRightTextAlignment]; [textField setBordered: NO]; [textField setEditable: NO]; [textField setBezeled: NO]; [textField setDrawsBackground: NO]; - [textField setStringValue:@"App class:"]; + [textField setStringValue:@"Application Class:"]; [projectProjectInspectorView addSubview:textField]; RELEASE(textField); - appClassField =[[NSTextField alloc] initWithFrame:NSMakeRect(84,256,176,21)]; + appClassField = [[NSTextField alloc] initWithFrame:NSMakeRect(111,248,165,21)]; [appClassField setAlignment: NSLeftTextAlignment]; [appClassField setBordered: YES]; [appClassField setEditable: YES]; @@ -66,50 +68,50 @@ [appClassField setTarget:self]; [appClassField setAction:@selector(setAppClass:)]; [projectProjectInspectorView addSubview:appClassField]; + RELEASE(appClassField); - textField =[[NSTextField alloc] initWithFrame:NSMakeRect(16,204,64,21)]; - [textField setAlignment: NSRightTextAlignment]; - [textField setBordered: NO]; - [textField setEditable: NO]; - [textField setBezeled: NO]; - [textField setDrawsBackground: NO]; - [textField setStringValue:@"App icon:"]; - [projectProjectInspectorView addSubview:textField]; - RELEASE(textField); - - appImageField =[[NSTextField alloc] initWithFrame:NSMakeRect(84,204,176,21)]; + // Application Icon + _appIconBox = [[NSBox alloc] init]; + [_appIconBox setFrame:NSMakeRect(6,154,270,84)]; + [_appIconBox setContentViewMargins:NSMakeSize(4.0, 6.0)]; + [_appIconBox setTitle:@"Application Icon"]; + [projectProjectInspectorView addSubview:_appIconBox]; + RELEASE(_appIconBox); + + appImageField = [[NSTextField alloc] initWithFrame:NSMakeRect(0,34,195,21)]; [appImageField setAlignment: NSLeftTextAlignment]; [appImageField setBordered: YES]; - [appImageField setEditable: NO]; + [appImageField setEditable: YES]; [appImageField setBezeled: YES]; [appImageField setDrawsBackground: YES]; [appImageField setStringValue:@""]; - [projectProjectInspectorView addSubview:appImageField]; + [_appIconBox addSubview:appImageField]; + RELEASE(appImageField); - setAppIconButton =[[NSButton alloc] initWithFrame:NSMakeRect(220,180,40,21)]; - [setAppIconButton setTitle:@"Set"]; + setAppIconButton = [[NSButton alloc] initWithFrame:NSMakeRect(147,0,48,21)]; + [setAppIconButton setTitle:@"Set..."]; [setAppIconButton setTarget:self]; [setAppIconButton setAction:@selector(setAppIcon:)]; - [projectProjectInspectorView addSubview:setAppIconButton]; + [_appIconBox addSubview:setAppIconButton]; + RELEASE(setAppIconButton); - clearAppIconButton =[[NSButton alloc] initWithFrame:NSMakeRect(180,180,40,21)]; + clearAppIconButton = [[NSButton alloc] initWithFrame:NSMakeRect(95,0,48,21)]; [clearAppIconButton setTitle:@"Clear"]; [clearAppIconButton setTarget:self]; [clearAppIconButton setAction:@selector(clearAppIcon:)]; - [projectProjectInspectorView addSubview:clearAppIconButton]; + [_appIconBox addSubview:clearAppIconButton]; + RELEASE(clearAppIconButton); - _box = [[NSBox alloc] init]; - [_box setFrame:frame]; - [_box setTitlePosition:NSNoTitle]; - [_box setBorderType:NSBezelBorder]; - [projectProjectInspectorView addSubview:_box]; + frame = NSMakeRect(200,0,56,56); + _iconViewBox = [[NSBox alloc] init]; + [_iconViewBox setFrame:frame]; + [_iconViewBox setTitlePosition:NSNoTitle]; + [_iconViewBox setBorderType:NSBezelBorder]; + [_appIconBox addSubview:_iconViewBox]; + RELEASE(_iconViewBox); appIconView = [[NSImageView alloc] initWithFrame:frame]; - [_box addSubview:appIconView]; - - RELEASE(_box); - RELEASE(setAppIconButton); - RELEASE(clearAppIconButton); + [_iconViewBox addSubview:appIconView]; RELEASE(appIconView); } diff --git a/PCBundleProj/PCBundleProj.m b/PCBundleProj/PCBundleProj.m index 76941ff..fd30849 100644 --- a/PCBundleProj/PCBundleProj.m +++ b/PCBundleProj/PCBundleProj.m @@ -91,11 +91,7 @@ static PCBundleProj *_creator = nil; // Customise the project [dict setObject:[path lastPathComponent] forKey:PCProjectName]; -#ifndef GNUSTEP_BASE_VERSION [dict setObject:[[project principalClass] description] forKey:PCProjType]; -#else - [dict setObject:[project principalClass] forKey:PCProjType]; -#endif // Save the project to disc projectFile = [NSString stringWithString:[path lastPathComponent]]; diff --git a/PCGormProj/PCGormProj.m b/PCGormProj/PCGormProj.m index 14f8c8f..c49df10 100644 --- a/PCGormProj/PCGormProj.m +++ b/PCGormProj/PCGormProj.m @@ -91,11 +91,7 @@ static PCGormProj *_creator = nil; // Customise the project [dict setObject:[path lastPathComponent] forKey:PCProjectName]; -#ifndef GNUSTEP_BASE_VERSION [dict setObject:[[project principalClass] description] forKey:PCProjType]; -#else - [dict setObject:[project principalClass] forKey:PCProjType]; -#endif // Create the AppNameInfo.plist infoDict = [NSDictionary dictionaryWithObjectsAndKeys: diff --git a/PCLib/PCFileManager.m b/PCLib/PCFileManager.m index 78ac1ef..c9e6cbe 100644 --- a/PCLib/PCFileManager.m +++ b/PCLib/PCFileManager.m @@ -143,10 +143,38 @@ static PCFileManager *_mgr = nil; if (retval == NSOKButton) { NSEnumerator *enumerator; - NSString *file; + NSString *file = nil; + NSString *cPath = nil; [ud setObject:[openPanel directory] forKey:@"LastOpenDirectory"]; + // Check for "Images" "Documentation" "Non Project Files" + if ([key isEqualToString:PCImages]) + { + cPath = [[project projectPath] + stringByAppendingPathComponent:@"Images"]; + } + else if ([key isEqualToString:PCDocuFiles]) + { + cPath = [[project projectPath] + stringByAppendingPathComponent:@"Documentation"]; + } + else if ([key isEqualToString:PCNonProject]) + { + cPath = [[project projectPath] + stringByAppendingPathComponent:@"NonProject"]; + } + else if ([key isEqualToString:PCGModels]) + { + NSString *language = [[project projectDict] objectForKey:@"LANGUAGE"]; + cPath = [[project projectPath] stringByAppendingPathComponent: + [language stringByAppendingString:@".lproj"]]; + } + else + { + cPath = [project projectPath]; + } + enumerator = [[openPanel filenames] objectEnumerator]; while ((file = [enumerator nextObject])) { @@ -162,7 +190,7 @@ static PCFileManager *_mgr = nil; NSFileManager *fm = [NSFileManager defaultManager]; fileName = [file lastPathComponent]; - pth = [[project projectPath] stringByAppendingPathComponent:fileName]; + pth = [cPath stringByAppendingPathComponent:fileName]; if (![key isEqualToString:PCLibraries]) { diff --git a/PCLib/PCProject+UInterface.m b/PCLib/PCProject+UInterface.m index bee192f..fe8f7bf 100644 --- a/PCLib/PCProject+UInterface.m +++ b/PCLib/PCProject+UInterface.m @@ -33,7 +33,7 @@ #include "PCButton.h" -#undef ENABLE_HISTORY +#define ENABLE_HISTORY @implementation PCProject (UInterface) @@ -53,6 +53,7 @@ PCButton *findButton; PCButton *inspectorButton; id textField; + NSBox *hLine; PCSplitView *split; #ifdef ENABLE_HISTORY @@ -200,7 +201,7 @@ #ifdef ENABLE_HISTORY historyController = [[PCHistoryController alloc] initWithProject:self]; - history = [[NSBrowser alloc] initWithFrame:NSMakeRect(320,372,100,60)]; + history = [[NSBrowser alloc] initWithFrame:NSMakeRect(320,372,80,128)]; [history setDelegate: historyController]; [history setMaxVisibleColumns: 1]; [history setAllowsMultipleSelection: NO]; @@ -210,8 +211,7 @@ [historyController setBrowser: history]; rect = [[projectWindow contentView] frame]; - rect.size.width -= 16; - rect.size.height /= 2; + rect.size.height = 130; v_split = [[PCSplitView alloc] initWithFrame: rect]; [v_split setAutoresizingMask: (NSViewWidthSizable | NSViewHeightSizable)]; [v_split setVertical: YES]; @@ -271,64 +271,24 @@ * */ projectAttributeInspectorView = [[NSBox alloc] init]; - [projectAttributeInspectorView setFrame:NSMakeRect(-2,-2,284,334)]; + [projectAttributeInspectorView setFrame:NSMakeRect(0,0,295,364)]; [projectAttributeInspectorView setTitlePosition:NSNoTitle]; - [projectAttributeInspectorView setBorderType:NSNoBorder]; - [projectAttributeInspectorView setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; + [projectAttributeInspectorView + setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; + [projectAttributeInspectorView setContentViewMargins:NSMakeSize(0.0, 0.0)]; - textField =[[NSTextField alloc] initWithFrame:NSMakeRect(16,280,64,21)]; + // Compiler Flags -- ADDITIONAL_OBJCFLAGS(?), ADDITIONAL_CFLAGS + textField =[[NSTextField alloc] initWithFrame:NSMakeRect(4,323,104,21)]; [textField setAlignment: NSRightTextAlignment]; [textField setBordered: NO]; [textField setEditable: NO]; [textField setBezeled: NO]; [textField setDrawsBackground: NO]; - [textField setStringValue:@"Install in:"]; + [textField setStringValue:@"Compiler Flags:"]; [projectAttributeInspectorView addSubview:textField]; RELEASE(textField); - installPathField =[[NSTextField alloc] initWithFrame:NSMakeRect(84,280,176,21)]; - [installPathField setAlignment: NSLeftTextAlignment]; - [installPathField setBordered: YES]; - [installPathField setEditable: YES]; - [installPathField setBezeled: YES]; - [installPathField setDrawsBackground: YES]; - [installPathField setStringValue:@""]; - [installPathField setAction:@selector(changeCommonProjectEntry:)]; - [installPathField setTarget:self]; - [projectAttributeInspectorView addSubview:installPathField]; - - textField =[[NSTextField alloc] initWithFrame:NSMakeRect(16,256,64,21)]; - [textField setAlignment: NSRightTextAlignment]; - [textField setBordered: NO]; - [textField setEditable: NO]; - [textField setBezeled: NO]; - [textField setDrawsBackground: NO]; - [textField setStringValue:@"Build tool:"]; - [projectAttributeInspectorView addSubview:textField]; - RELEASE(textField); - - toolField =[[NSTextField alloc] initWithFrame:NSMakeRect(84,256,176,21)]; - [toolField setAlignment: NSLeftTextAlignment]; - [toolField setBordered: YES]; - [toolField setEditable: YES]; - [toolField setBezeled: YES]; - [toolField setDrawsBackground: YES]; - [toolField setStringValue:@""]; - [toolField setAction:@selector(changeCommonProjectEntry:)]; - [toolField setTarget:self]; - [projectAttributeInspectorView addSubview:toolField]; - - textField =[[NSTextField alloc] initWithFrame:NSMakeRect(16,232,64,21)]; - [textField setAlignment: NSRightTextAlignment]; - [textField setBordered: NO]; - [textField setEditable: NO]; - [textField setBezeled: NO]; - [textField setDrawsBackground: NO]; - [textField setStringValue:@"CC options:"]; - [projectAttributeInspectorView addSubview:textField]; - RELEASE(textField); - - ccOptField =[[NSTextField alloc] initWithFrame:NSMakeRect(84,232,176,21)]; + ccOptField =[[NSTextField alloc] initWithFrame:NSMakeRect(111,323,165,21)]; [ccOptField setAlignment: NSLeftTextAlignment]; [ccOptField setBordered: YES]; [ccOptField setEditable: YES]; @@ -338,27 +298,124 @@ [ccOptField setAction:@selector(changeCommonProjectEntry:)]; [ccOptField setTarget:self]; [projectAttributeInspectorView addSubview:ccOptField]; + RELEASE(ccOptField); - textField =[[NSTextField alloc] initWithFrame:NSMakeRect(16,204,64,21)]; + // Linker Flags -- ADDITIONAL_LDFLAGS + textField =[[NSTextField alloc] initWithFrame:NSMakeRect(4,298,104,21)]; [textField setAlignment: NSRightTextAlignment]; [textField setBordered: NO]; [textField setEditable: NO]; [textField setBezeled: NO]; [textField setDrawsBackground: NO]; - [textField setStringValue:@"LD options:"]; + [textField setStringValue:@"Linker Flags:"]; [projectAttributeInspectorView addSubview:textField]; RELEASE(textField); - ldOptField =[[NSTextField alloc] initWithFrame:NSMakeRect(84,204,176,21)]; + ldOptField =[[NSTextField alloc] initWithFrame:NSMakeRect(111,298,165,21)]; [ldOptField setAlignment: NSLeftTextAlignment]; [ldOptField setBordered: YES]; - [ldOptField setEditable: NO]; + [ldOptField setEditable: YES]; [ldOptField setBezeled: YES]; [ldOptField setDrawsBackground: YES]; [ldOptField setStringValue:@""]; [ldOptField setAction:@selector(changeCommonProjectEntry:)]; [ldOptField setTarget:self]; [projectAttributeInspectorView addSubview:ldOptField]; + RELEASE(ldOptField); + + // Install In + textField =[[NSTextField alloc] initWithFrame:NSMakeRect(4,273,104,21)]; + [textField setAlignment: NSRightTextAlignment]; + [textField setBordered: NO]; + [textField setEditable: NO]; + [textField setBezeled: NO]; + [textField setDrawsBackground: NO]; + [textField setStringValue:@"Install In:"]; + [projectAttributeInspectorView addSubview:textField]; + RELEASE(textField); + + installPathField =[[NSTextField alloc] + initWithFrame:NSMakeRect(111,273,165,21)]; + [installPathField setAlignment: NSLeftTextAlignment]; + [installPathField setBordered: YES]; + [installPathField setEditable: YES]; + [installPathField setBezeled: YES]; + [installPathField setDrawsBackground: YES]; + [installPathField setStringValue:@""]; + [installPathField setAction:@selector(changeCommonProjectEntry:)]; + [installPathField setTarget:self]; + [projectAttributeInspectorView addSubview:installPathField]; + RELEASE(installPathField); + + // Build Tool + textField =[[NSTextField alloc] initWithFrame:NSMakeRect(4,248,104,21)]; + [textField setAlignment: NSRightTextAlignment]; + [textField setBordered: NO]; + [textField setEditable: NO]; + [textField setBezeled: NO]; + [textField setDrawsBackground: NO]; + [textField setStringValue:@"Build Tool:"]; + [projectAttributeInspectorView addSubview:textField]; + RELEASE(textField); + + toolField =[[NSTextField alloc] initWithFrame:NSMakeRect(111,248,165,21)]; + [toolField setAlignment: NSLeftTextAlignment]; + [toolField setBordered: YES]; + [toolField setEditable: YES]; + [toolField setBezeled: YES]; + [toolField setDrawsBackground: YES]; + [toolField setStringValue:@""]; + [toolField setAction:@selector(changeCommonProjectEntry:)]; + [toolField setTarget:self]; + [projectAttributeInspectorView addSubview:toolField]; + RELEASE(toolField); + + // Public Headers In -- ADDITIONAL_INCLUDE_DIRS + textField =[[NSTextField alloc] initWithFrame:NSMakeRect(4,223,104,21)]; + [textField setAlignment: NSRightTextAlignment]; + [textField setBordered: NO]; + [textField setEditable: NO]; + [textField setBezeled: NO]; + [textField setDrawsBackground: NO]; + [textField setStringValue:@"Public Headers In:"]; + [projectAttributeInspectorView addSubview:textField]; + RELEASE(textField); + + headersField =[[NSTextField alloc] initWithFrame:NSMakeRect(111,223,165,21)]; + [headersField setAlignment: NSLeftTextAlignment]; + [headersField setBordered: YES]; + [headersField setEditable: YES]; + [headersField setBezeled: YES]; + [headersField setDrawsBackground: YES]; + [headersField setStringValue:@""]; + [headersField setAction:@selector(changeCommonProjectEntry:)]; + [headersField setTarget:self]; + [projectAttributeInspectorView addSubview:headersField]; + RELEASE(headersField); + + // Public Libraries In -- ADDITIONAL_TOOL_LIBS + textField =[[NSTextField alloc] initWithFrame:NSMakeRect(4,198,104,21)]; + [textField setAlignment: NSRightTextAlignment]; + [textField setBordered: NO]; + [textField setEditable: NO]; + [textField setBezeled: NO]; + [textField setDrawsBackground: NO]; + [textField setStringValue:@"Public Libraries In:"]; + [projectAttributeInspectorView addSubview:textField]; + RELEASE(textField); + + libsField =[[NSTextField alloc] initWithFrame:NSMakeRect(111,198,165,21)]; + [libsField setAlignment: NSLeftTextAlignment]; + [libsField setBordered: YES]; + [libsField setEditable: YES]; + [libsField setBezeled: YES]; + [libsField setDrawsBackground: YES]; + [libsField setStringValue:@""]; + [libsField setAction:@selector(changeCommonProjectEntry:)]; + [libsField setTarget:self]; + [projectAttributeInspectorView addSubview:libsField]; + RELEASE(libsField); + /* * Project View @@ -366,60 +423,120 @@ */ projectProjectInspectorView = [[NSBox alloc] init]; - [projectProjectInspectorView setFrame:NSMakeRect(-2,-2,284,334)]; + [projectProjectInspectorView setFrame:NSMakeRect(0,0,295,364)]; [projectProjectInspectorView setTitlePosition:NSNoTitle]; - [projectProjectInspectorView setBorderType:NSNoBorder]; - [projectProjectInspectorView setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; + [projectProjectInspectorView + setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; + [projectProjectInspectorView setContentViewMargins:NSMakeSize(0.0, 0.0)]; - textField =[[NSTextField alloc] initWithFrame:NSMakeRect(16,280,64,21)]; + // Project Type + textField = [[NSTextField alloc] initWithFrame:NSMakeRect(4,323,104,21)]; [textField setAlignment: NSRightTextAlignment]; [textField setBordered: NO]; [textField setEditable: NO]; [textField setBezeled: NO]; [textField setDrawsBackground: NO]; - [textField setStringValue:@"Type:"]; + [textField setStringValue:@"Project Type:"]; [projectProjectInspectorView addSubview:textField]; RELEASE(textField); - projectTypeField = [[NSTextField alloc] initWithFrame:NSMakeRect(84,280,176,21)]; + projectTypeField = [[NSTextField alloc] initWithFrame: + NSMakeRect(111,323,165,21)]; [projectTypeField setAlignment: NSLeftTextAlignment]; [projectTypeField setBordered: NO]; [projectTypeField setEditable: NO]; + [projectTypeField setSelectable: NO]; [projectTypeField setBezeled: NO]; [projectTypeField setDrawsBackground: NO]; + [projectTypeField setFont:[NSFont boldSystemFontOfSize: 12.0]]; [projectTypeField setStringValue:@""]; [projectProjectInspectorView addSubview:projectTypeField]; + RELEASE(projectTypeField); - projectFileInspectorView = [[NSBox alloc] init]; - [projectFileInspectorView setFrame:NSMakeRect(-2,-2,284,334)]; - [projectFileInspectorView setTitlePosition:NSNoTitle]; - [projectFileInspectorView setBorderType:NSNoBorder]; - [projectFileInspectorView setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; - - textField =[[NSTextField alloc] initWithFrame:NSMakeRect(16,280,64,21)]; + // Project Name + textField = [[NSTextField alloc] initWithFrame:NSMakeRect(4,298,104,21)]; [textField setAlignment: NSRightTextAlignment]; [textField setBordered: NO]; [textField setEditable: NO]; [textField setBezeled: NO]; [textField setDrawsBackground: NO]; - [textField setStringValue:@"Filename:"]; - [projectFileInspectorView addSubview:textField]; + [textField setStringValue:@"Project Name:"]; + [projectProjectInspectorView addSubview:textField]; RELEASE(textField); - fileNameField =[[NSTextField alloc] initWithFrame:NSMakeRect(84,280,176,21)]; + projectNameField = [[NSTextField alloc] initWithFrame: + NSMakeRect(111,298,165,21)]; + [projectNameField setAlignment: NSLeftTextAlignment]; + [projectNameField setBordered: NO]; + [projectNameField setEditable: NO]; + [projectNameField setBezeled: YES]; + [projectNameField setDrawsBackground: YES]; + [projectNameField setStringValue:@""]; + [projectProjectInspectorView addSubview:projectNameField]; + RELEASE(projectNameField); + + // Project Language + textField = [[NSTextField alloc] initWithFrame:NSMakeRect(4,273,104,21)]; + [textField setAlignment: NSRightTextAlignment]; + [textField setBordered: NO]; + [textField setEditable: NO]; + [textField setBezeled: NO]; + [textField setDrawsBackground: NO]; + [textField setStringValue:@"Language:"]; + [projectProjectInspectorView addSubview:textField]; + RELEASE(textField); + + projectLanguageField = [[NSTextField alloc] initWithFrame: + NSMakeRect(111,273,165,21)]; + [projectLanguageField setAlignment: NSLeftTextAlignment]; + [projectLanguageField setBordered: NO]; + [projectLanguageField setEditable: NO]; + [projectLanguageField setBezeled: YES]; + [projectLanguageField setDrawsBackground: YES]; + [projectLanguageField setStringValue:@""]; + [projectProjectInspectorView addSubview:projectLanguageField]; + RELEASE(projectLanguageField); + + /* + * File View + * + */ + + projectFileInspectorView = [[NSBox alloc] init]; + [projectFileInspectorView setFrame:NSMakeRect(0,0,295,364)]; + [projectFileInspectorView setTitlePosition:NSNoTitle]; + [projectFileInspectorView setAutoresizingMask: + (NSViewWidthSizable | NSViewHeightSizable)]; + [projectFileInspectorView setContentViewMargins:NSMakeSize(0.0, 0.0)]; + + fileIconView = [[NSImageView alloc] initWithFrame:NSMakeRect(8,290,48,48)]; + [fileIconView setImage:[NSImage imageNamed:@"common_Unknown"]]; + [projectFileInspectorView addSubview:fileIconView]; + RELEASE(fileIconView); + + fileNameField =[[NSTextField alloc] initWithFrame:NSMakeRect(60,290,216,48)]; [fileNameField setAlignment: NSLeftTextAlignment]; [fileNameField setBordered: NO]; [fileNameField setEditable: NO]; + [fileNameField setSelectable: NO]; [fileNameField setBezeled: NO]; [fileNameField setDrawsBackground: NO]; - [fileNameField setStringValue:@""]; + [fileNameField setFont:[NSFont systemFontOfSize:20.0]]; + [fileNameField setStringValue:@"No file selected"]; [projectFileInspectorView addSubview:fileNameField]; + RELEASE(fileNameField); + + hLine = [[NSBox alloc] initWithFrame:NSMakeRect(0,278,295,2)]; + [hLine setTitlePosition:NSNoTitle]; + [projectFileInspectorView addSubview:hLine]; - changeFileNameButton = [[NSButton alloc] initWithFrame:NSMakeRect(84,240,104,21)]; + changeFileNameButton = [[NSButton alloc] initWithFrame: + NSMakeRect(84,240,104,21)]; [changeFileNameButton setTitle:@"Rename..."]; [changeFileNameButton setTarget:self]; [changeFileNameButton setAction:@selector(renameFile:)]; [projectFileInspectorView addSubview:changeFileNameButton]; + RELEASE(changeFileNameButton); } - (void)setFileIcon:(NSNotification *)notification @@ -430,8 +547,6 @@ NSString *lastComp = [path lastPathComponent]; NSString *extension = [[lastComp componentsSeparatedByString:@"."] lastObject]; -// NSLog (@"PCP+UI %i -- %@", [pathComps count], path); - // Should be provided by PC*Proj bundles if ([[object selectedFiles] count] > 1 && [pathComps count] > 2) @@ -486,11 +601,20 @@ { [fileIcon setImage: IMAGE (@"projectSuitcase")]; } - else + else { [fileIcon setImage: [[NSWorkspace sharedWorkspace] iconForFileType:extension]]; } + + if ([fileIcon image] == nil) + { + [fileIcon + setImage: [[NSWorkspace sharedWorkspace] iconForFileType:extension]]; + } + + // Set icon in Inspector "File Attributes". Should not be here! + [fileIconView setImage:[fileIcon image]]; // Set title if ([[object selectedFiles] count] > 1 diff --git a/PCLib/PCProject.h b/PCLib/PCProject.h index f7a9f18..cb135e7 100644 --- a/PCLib/PCProject.h +++ b/PCLib/PCProject.h @@ -144,15 +144,20 @@ static NSString * const PCBuildTool = @"BUILDTOOL"; NSTextField *fileIconTitle; id projectAttributeInspectorView; - NSTextField *installPathField; - NSTextField *toolField; NSTextField *ccOptField; NSTextField *ldOptField; + NSTextField *installPathField; + NSTextField *toolField; + NSTextField *headersField; + NSTextField *libsField; id projectProjectInspectorView; NSTextField *projectTypeField; + NSTextField *projectNameField; + NSTextField *projectLanguageField; id projectFileInspectorView; + NSImageView *fileIconView; NSTextField *fileNameField; NSButton *changeFileNameButton; diff --git a/PCLib/PCProject.m b/PCLib/PCProject.m index bb20848..7b52ab3 100644 --- a/PCLib/PCProject.m +++ b/PCLib/PCProject.m @@ -655,6 +655,8 @@ - (void)updateValuesFromProjectDict { [projectTypeField setStringValue:[projectDict objectForKey:PCProjType]]; + [projectNameField setStringValue:[projectDict objectForKey:PCProjectName]]; + [projectLanguageField setStringValue:[projectDict objectForKey:@"LANGUAGE"]]; [installPathField setStringValue:[projectDict objectForKey:PCInstallDir]]; [toolField setStringValue:[projectDict objectForKey:PCBuildTool]]; [ccOptField setStringValue:[projectDict objectForKey:PCCompilerOptions]]; diff --git a/PCLib/PCProjectBuilder.m b/PCLib/PCProjectBuilder.m index 8b0d16f..294d6d5 100644 --- a/PCLib/PCProjectBuilder.m +++ b/PCLib/PCProjectBuilder.m @@ -453,96 +453,15 @@ [optionsButton setShowTooltip:YES]; } -- (void) topButtonPressed: (id)sender -{ - NSString *tFString = [targetField stringValue]; - NSArray *tFArray = [tFString componentsSeparatedByString: @" "]; - - if (makeTask) - { - [makeTask terminate]; - return; - } - - [buildTarget setString: [tFArray objectAtIndex: 0]]; - - switch ([[sender selectedCell] tag]) - { - case 0: - // Set build arguments - if ([buildTarget isEqualToString: @"Default"]) - { - ; - } - else if ([buildTarget isEqualToString: @"Debug"]) - { - [buildArgs addObject: @"debug=yes"]; - } - else if ([buildTarget isEqualToString: @"Profile"]) - { - [buildArgs addObject: @"profile=yes"]; - [buildArgs addObject: @"static=yes"]; - } - else if ([buildTarget isEqualToString: @"Tarball"]) - { - [buildArgs addObject: @"dist"]; - } - else if ([buildTarget isEqualToString: @"RPM"]) - { - [buildArgs addObject: @"rpm"]; - postProcess = @selector (copyPackageTo:); - } - - statusString = [NSString stringWithString: @"Building..."]; - [buildTarget setString: @"Build"]; - [self build: self]; - break; - - case 1: - if ([[[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] - objectForKey: PromptOnClean] isEqualToString: @"YES"]) - { - if (NSRunAlertPanel(@"Clean Project?", - @"Do you really want to clean project '%@'?", - @"Yes", - @"No", - nil, - [currentProject projectName]) - == NSAlertAlternateReturn) - { - return; - } - } - [buildTarget setString: @"Clean"]; - statusString = [NSString stringWithString: @"Cleaning..."]; - [buildArgs addObject: @"distclean"]; - [self build: self]; - break; - - case 2: - [buildTarget setString: @"Install"]; - statusString = [NSString stringWithString: @"Installing..."]; - [buildArgs addObject: @"install"]; - [self build: self]; - break; - - case 3: - if (!optionsPanel) - { - [self _createOptionsPanel]; - } - [optionsPanel orderFront: nil]; - return; - } -} - - (void)startBuild:(id)sender { NSString *tFString = [targetField stringValue]; NSArray *tFArray = [tFString componentsSeparatedByString: @" "]; - if (makeTask && [makeTask isRunning]) + // [makeTask isRunning] doesn't work here. + // "waitpid 7045, result -1, error No child processes" is printed. + if (makeTask) { [makeTask terminate]; return; @@ -649,8 +568,6 @@ return; } - NSLog (@"Status: %@ BuildTarget: %@", statusString, buildTarget); - // Prepearing to building logPipe = [NSPipe pipe]; // readHandle = [[logPipe fileHandleForReading] retain]; @@ -704,21 +621,19 @@ if ([aNotif object] == makeTask) { [NOTIFICATION_CENTER removeObserver: self - name: NSFileHandleDataAvailableNotification - object: readHandle]; + name: NSFileHandleDataAvailableNotification + object: readHandle]; [NOTIFICATION_CENTER removeObserver: self - name: NSFileHandleDataAvailableNotification - object: errorReadHandle]; + name: NSFileHandleDataAvailableNotification + object: errorReadHandle]; [NOTIFICATION_CENTER removeObserver: self - name: NSTaskDidTerminateNotification - object: makeTask]; + name: NSTaskDidTerminateNotification + object: makeTask]; // RELEASE (readHandle); // RELEASE (errorReadHandle); - NSLog (@"Observers removed!"); - if (status == 0) { [self logString: @@ -757,8 +672,8 @@ [buildArgs removeAllObjects]; [buildTarget setString: @"Default"]; - /* RELEASE (makeTask); - makeTask = nil;*/ + /* RELEASE (makeTask);*/ + makeTask = nil; } } @@ -865,7 +780,7 @@ - (void)make:(NSDictionary *)data { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - + makeTask = [[NSTask alloc] init]; [makeTask setArguments: [data objectForKey: @"args"]]; [makeTask setCurrentDirectoryPath: [data objectForKey: @"currentDirectory"]]; diff --git a/PCLib/PCProjectManager+UInterface.m b/PCLib/PCProjectManager+UInterface.m index 9845e32..d44c579 100644 --- a/PCLib/PCProjectManager+UInterface.m +++ b/PCLib/PCProjectManager+UInterface.m @@ -47,12 +47,12 @@ backing:NSBackingStoreBuffered defer:YES]; [inspector setMinSize:NSMakeSize(280,384)]; - [inspector setTitle:@"Inspector"]; + [inspector setTitle:@"Project Inspector"]; [inspector setReleasedWhenClosed:NO]; [inspector setFrameAutosaveName:@"Inspector"]; _c_view = [inspector contentView]; - _w_frame = NSMakeRect(80,352,128,20); + _w_frame = NSMakeRect(80,358,128,20); inspectorPopup = [[NSPopUpButton alloc] initWithFrame:_w_frame]; [inspectorPopup addItemWithTitle:@"None"]; [inspectorPopup setTarget:self]; @@ -66,7 +66,7 @@ inspectorView = [[NSBox alloc] init]; [inspectorView setTitlePosition:NSNoTitle]; - [inspectorView setFrame:NSMakeRect(-2,-2,284,334)]; + [inspectorView setFrame:NSMakeRect(-8,-8,295,364)]; [inspectorView setBorderType:NSNoBorder]; [_c_view addSubview:inspectorView]; diff --git a/PCLib/PCProjectManager.m b/PCLib/PCProjectManager.m index 353a4d2..4c4548d 100644 --- a/PCLib/PCProjectManager.m +++ b/PCLib/PCProjectManager.m @@ -418,33 +418,34 @@ NSString *ActiveProjectDidChangeNotification = @"ActiveProjectDidChange"; - (void)closeProject:(PCProject *)aProject { - PCProject *currentProject = nil; - NSString *path = [aProject projectPath]; - NSString *projectName = [path lastPathComponent]; - NSString *key; - - key = [path stringByAppendingPathComponent:projectName]; - key = [key stringByAppendingPathExtension:@"pcproj"]; - - currentProject = RETAIN([loadedProjects objectForKey:key]); - if( !currentProject ) + PCProject *currentProject = nil; + NSString *path = [aProject projectPath]; + NSString *projectName = [path lastPathComponent]; + NSString *key; + + key = [path stringByAppendingPathComponent:projectName]; + key = [key stringByAppendingPathExtension:@"pcproj"]; + + currentProject = RETAIN([loadedProjects objectForKey:key]); + if (!currentProject) { - return; + return; } - // Remove it from the loaded projects! This is the only place it - // is retained, so it should dealloc after this. - [loadedProjects removeObjectForKey:key]; - if ([loadedProjects count] == 0) - [self setActiveProject: nil]; - else if (currentProject == [self activeProject]) - [self setActiveProject:[[loadedProjects allValues] lastObject]]; + // Remove it from the loaded projects! This is the only place it + // is retained, so it should dealloc after this. + [loadedProjects removeObjectForKey:key]; + if ([loadedProjects count] == 0) + [self setActiveProject: nil]; + else if (currentProject == [self activeProject]) + [self setActiveProject:[[loadedProjects allValues] lastObject]]; - if ([loadedProjects count] == 0) + if ([loadedProjects count] == 0) { - [inspector performClose:self]; + [inspector performClose:self]; } - RELEASE(currentProject); + + RELEASE(currentProject); } - (void)closeProject diff --git a/PCLibProj/PCLibProj.m b/PCLibProj/PCLibProj.m index aaef919..1a22de4 100644 --- a/PCLibProj/PCLibProj.m +++ b/PCLibProj/PCLibProj.m @@ -88,11 +88,7 @@ static PCLibProj *_creator = nil; // Customise the project [dict setObject:[path lastPathComponent] forKey:PCProjectName]; -#ifndef GNUSTEP_BASE_VERSION [dict setObject:[[project principalClass] description] forKey:PCProjType]; -#else - [dict setObject:[project principalClass] forKey:PCProjType]; -#endif // Save the project to disc projectFile = [NSString stringWithString:[path lastPathComponent]]; diff --git a/PCRenaissanceProj/PCRenaissanceProj.m b/PCRenaissanceProj/PCRenaissanceProj.m index 521d194..5b1a458 100644 --- a/PCRenaissanceProj/PCRenaissanceProj.m +++ b/PCRenaissanceProj/PCRenaissanceProj.m @@ -92,11 +92,7 @@ static PCRenaissanceProj *_creator = nil; // Customise the project [dict setObject:[path lastPathComponent] forKey:PCProjectName]; -#ifndef GNUSTEP_BASE_VERSION [dict setObject:[[project principalClass] description] forKey:PCProjType]; -#else - [dict setObject:[project principalClass] forKey:PCProjType]; -#endif // Create the AppNameInfo.plist infoDict = [NSDictionary dictionaryWithObjectsAndKeys: diff --git a/PCToolProj/PCToolProj.m b/PCToolProj/PCToolProj.m index 2cba4c5..8a3086f 100644 --- a/PCToolProj/PCToolProj.m +++ b/PCToolProj/PCToolProj.m @@ -88,11 +88,7 @@ static PCToolProj *_creator = nil; // Customise the project [dict setObject:[path lastPathComponent] forKey:PCProjectName]; -#ifndef GNUSTEP_BASE_VERSION [dict setObject:[[project principalClass] description] forKey:PCProjType]; -#else - [dict setObject:[project principalClass] forKey:PCProjType]; -#endif // Save the project to disc projectFile = [NSString stringWithString:[path lastPathComponent]];