*** empty log message ***

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/trunk@20491 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Sergii Stoian 2004-12-27 21:04:29 +00:00
parent 7a9f0785df
commit bb13a30ed7
28 changed files with 390 additions and 442 deletions

View file

@ -1,7 +1,14 @@
2004-11-19 Nicola Pero <n.pero@mi.flashnet.it>
2004-12-24 Serg Stoyan <stoyan255@ukr.net>
* GNUmakefile.preamble (ADDITIONAL_LIB_DIRS): Fixed finding the
ProjectCenter framework when non-flattened.
* "Build Tool" setting from Project Inspector was moved to PC
Preferences.
* Implemented support of document-based applications
* Added "Document types" panel into Project Inspector
* Library/PCFileManager.m: Fix crashing while calling "Add Files"
panel.
2004-10-14 Serg Stoyan <stoyan255@ukr.net>

View file

@ -48,7 +48,6 @@ Images/MultiFiles.tiff \
Images/Options.tiff \
Images/Run.tiff \
Images/Stop.tiff \
Images/Editor.tiff \
Images/ProjectCenter_add.tiff \
Images/ProjectCenter_cvs.tiff \
Images/ProjectCenter_dist.tiff \

View file

@ -41,6 +41,7 @@
#define PromptOnQuit @"PromtOnQuit"
#define DeleteCacheWhenQuitting @"DeleteBuildCacheWhenQuitting"
#define FullPathInFilePanels @"FullPathInFilePanels"
#define BuildTool @"BuildTool"
#define Debugger @"Debugger"
#define Editor @"Editor"
#define SeparateBuilder @"SeparateBuilder"
@ -194,6 +195,7 @@ static NSString * const PCCopyrightDescription = @"PROJECT_COPYRIGHT_DESC";
static NSString * const PCProjectCreator = @"PROJECT_CREATOR";
static NSString * const PCDescription = @"PROJECT_DESCRIPTION";
static NSString * const PCDocumentExtensions = @"PROJECT_DOCUMENTEXTENSIONS";
static NSString * const PCDocumentTypes = @"PROJECT_DOCUMENTTYPES";
static NSString * const PCGroup = @"PROJECT_GROUP";
static NSString * const PCProjectMaintainer = @"PROJECT_MAINTAINER";
static NSString * const PCProjectName = @"PROJECT_NAME";
@ -208,6 +210,7 @@ static NSString * const PCSearchLibs = @"SEARCH_LIB_DIRS";
static NSString * const PCAppIcon = @"APPLICATIONICON";
static NSString * const PCMainInterfaceFile = @"MAININTERFACE";
static NSString * const PCHelpFile = @"HELP_FILE";
static NSString * const PCDocumentBasedApp = @"APP_DOCUMENT_BASED";
// Library specific
static NSString * const PCPublicHeaders = @"PUBLIC_HEADERS";

View file

@ -74,6 +74,13 @@ static PCFileManager *_mgr = nil;
RELEASE(creators);
RELEASE(newFilePanel);
if (addFilesPanel)
{
RELEASE(addFilesPanel);
RELEASE(fileTypePopup);
RELEASE(fileTypeAccessaryView);
}
[super dealloc];
}
@ -354,15 +361,10 @@ static PCFileManager *_mgr = nil;
[fileTypeAccessaryView sizeToFit];
[fileTypeAccessaryView setAutoresizingMask:NSViewMinXMargin
| NSViewMaxXMargin];
RELEASE(fileTypePopup);
// Panel
addFilesPanel = [NSOpenPanel openPanel];
[addFilesPanel setAllowsMultipleSelection:YES];
[addFilesPanel setDelegate:self];
[addFilesPanel setAccessoryView:fileTypeAccessaryView];
RELEASE(fileTypeAccessaryView);
}
}
@ -375,6 +377,8 @@ static PCFileManager *_mgr = nil;
int retval;
[self _createAddFilesPanel];
[addFilesPanel setAccessoryView:fileTypeAccessaryView];
selectedCategory = [[project projectBrowser] nameOfSelectedCategory];
if ([selectedCategory isEqualToString:@"Subprojects"])
{
@ -444,6 +448,7 @@ static PCFileManager *_mgr = nil;
if ([[filename pathExtension] isEqualToString:@"gorm"])
{
NSLog(@"GORM file: %@", filename);
isDir = NO;
}
@ -460,8 +465,10 @@ static PCFileManager *_mgr = nil;
return NO;
}
// File is already in project
NSLog(@"file: %@ type: %@ fileTypes: %@", filename, fileType, fileTypes);
if (![project doesAcceptFile:filename forKey:categoryKey])
{
NSLog(@"Don't show: %@", filename);
return NO;
}
}

View file

@ -682,6 +682,7 @@ NSString
while ((key = [keyEnum nextObject]))
{
projectFiles = [projectDict objectForKey:key];
NSLog(@"KEY: %@ Files: %@ file: %@", key, projectFiles, pFile);
if ([projectFiles containsObject:pFile])
{
return NO;

View file

@ -362,15 +362,7 @@
if ((self = [super init]))
{
currentProject = aProject;
makePath = [[aProject projectDict] objectForKey: PCBuildTool];
if ([makePath isEqualToString: @""])
{
makePath = [NSString stringWithString: @"/usr/bin/make"];
}
RETAIN(makePath);
buildTarget = [[NSMutableString alloc] initWithString: @"Default"];
buildTarget = [[NSMutableString alloc] initWithString:@"Default"];
buildArgs = [[NSMutableArray array] retain];
postProcess = NULL;
makeTask = nil;
@ -450,14 +442,15 @@
- (void)startBuild:(id)sender
{
NSString *tFString = [targetField stringValue];
NSArray *tFArray = [tFString componentsSeparatedByString: @" "];
NSArray *tFArray = [tFString componentsSeparatedByString:@" "];
if ([self stopBuild:self] == YES)
{// We've just stopped build process
return;
}
makePath = [[NSUserDefaults standardUserDefaults] objectForKey:BuildTool];
[buildTarget setString: [tFArray objectAtIndex: 0]];
[buildTarget setString:[tFArray objectAtIndex:0]];
// Set build arguments
if ([buildTarget isEqualToString: @"Debug"])
@ -483,7 +476,7 @@
[buildTarget setString: @"Build"];
[cleanButton setEnabled:NO];
[installButton setEnabled:NO];
[self build: self];
[self build:self];
_isBuilding = YES;
}

View file

@ -236,17 +236,6 @@
{
[project setProjectDictObject:newEntry forKey:PCInstallDir notify:YES];
}
else if (sender == toolField)
{
[project setProjectDictObject:newEntry forKey:PCBuildTool notify:YES];
if (![[NSFileManager defaultManager] isExecutableFileAtPath:newEntry])
{
NSRunAlertPanel(@"Build Tool Error!",
@"No valid executable found at '%@'!",
@"OK",nil,nil,newEntry);
}
}
else if (sender == cppOptField)
{
[project setProjectDictObject:newEntry
@ -351,8 +340,6 @@
[projectDict objectForKey:PCLinkerOptions]];
[installPathField setStringValue:
[projectDict objectForKey:PCInstallDir]];
[toolField setStringValue:
[projectDict objectForKey:PCBuildTool]];
// Project Description view
[descriptionField setStringValue:
@ -434,8 +421,7 @@
[objcOptField setNextText:cOptField];
[cOptField setNextText:ldOptField];
[ldOptField setNextText:installPathField];
[installPathField setNextText:toolField];
[toolField setNextText:cppOptField];
[installPathField setNextText:cppOptField];
// Retain view
[buildAttributesView retain];

View file

@ -1,143 +1,75 @@
{
"## Comment" = "Do NOT change this file, Gorm maintains it";
FirstResponder = {
Actions = (
"activateContextHelpMode:",
"alignCenter:",
"alignJustified:",
"alignLeft:",
"alignRight:",
"arrangeInFront:",
"cancel:",
"capitalizeWord:",
"changeColor:",
"changeFont:",
"checkSpelling:",
"close:",
"complete:",
"copy:",
"copyFont:",
"copyRuler:",
"cut:",
"delete:",
"deleteBackward:",
"deleteForward:",
"deleteToBeginningOfLine:",
"deleteToBeginningOfParagraph:",
"deleteToEndOfLine:",
"deleteToEndOfParagraph:",
"deleteToMark:",
"deleteWordBackward:",
"deleteWordForward:",
"deminiaturize:",
"deselectAll:",
"fax:",
"hide:",
"hideOtherApplications:",
"indent:",
"loosenKerning:",
"lowerBaseline:",
"lowercaseWord:",
"makeKeyAndOrderFront:",
"miniaturize:",
"miniaturizeAll:",
"moveBackward:",
"moveBackwardAndModifySelection:",
"moveDown:",
"moveDownAndModifySelection:",
"moveForward:",
"moveForwardAndModifySelection:",
"moveLeft:",
"moveRight:",
"moveToBeginningOfDocument:",
"moveToBeginningOfLine:",
"moveToBeginningOfParagraph:",
"moveToEndOfDocument:",
"moveToEndOfLine:",
"moveToEndOfParagraph:",
"moveUp:",
"moveUpAndModifySelection:",
"moveWordBackward:",
"moveWordBackwardAndModifySelection:",
"moveWordForward:",
"moveWordForwardAndModifySelection:",
"newDocument:",
"ok:",
"open:",
"openDocument:",
"orderBack:",
"orderFront:",
"orderFrontColorPanel:",
"orderFrontDataLinkPanel:",
"orderFrontFontPanel:",
"orderFrontHelpPanel:",
"orderFrontStandardAboutPanel:",
"orderFrontStandardInfoPanel:",
"orderOut:",
"pageDown:",
"pageUp:",
"paste:",
"pasteAsPlainText:",
"pasteAsRichText:",
"pasteFont:",
"pasteRuler:",
"performClose:",
"performMiniaturize:",
"performZoom:",
"print:",
"raiseBaseline:",
"revertDocumentToSaved:",
"runPageLayout:",
"runToolbarCustomizationPalette:",
"saveAllDocuments:",
"saveDocument:",
"saveDocumentAs:",
"saveDocumentTo:",
"scrollLineDown:",
"scrollLineUp:",
"scrollPageDown:",
"scrollPageUp:",
"scrollViaScroller:",
"selectAll:",
"selectLine:",
"selectNextKeyView:",
"selectParagraph:",
"selectPreviousKeyView:",
"selectText:",
"selectToMark:",
"selectWord:",
"showContextHelp:",
"showGuessPanel:",
"showHelp:",
"showWindow:",
"stop:",
"subscript:",
"superscript:",
"swapWithMark:",
"takeDoubleValueFrom:",
"takeFloatValueFrom:",
"takeIntValueFrom:",
"takeObjectValueFrom:",
"takeStringValueFrom:",
"terminate:",
"tightenKerning:",
"toggle:",
"toggleContinuousSpellChecking:",
"toggleRuler:",
"toggleToolbarShown:",
"toggleTraditionalCharacterShape:",
"transpose:",
"transposeWords:",
"turnOffKerning:",
"turnOffLigatures:",
"underline:",
"unhide:",
"unhideAllApplications:",
"unscript:",
"uppercaseWord:",
"useAllLigatures:",
"useStandardKerning:",
"useStandardLigatures:",
"yank:",
"zoom:",
"searchOrderPopupDidChange:",
"setSearchOrder:",
@ -169,7 +101,6 @@
cOptField,
ldOptField,
installPathField,
toolField,
searchOrderScroll
);
Super = NSObject;

View file

@ -1,5 +1,4 @@
{
BUILDTOOL = "/usr/bin/make";
COMPILEROPTIONS = "";
CPPOPTIONS = "";
LINKEROPTIONS = "";
@ -12,8 +11,8 @@
PROJECT_AUTHORS = ();
PROJECT_CREATOR = "";
PROJECT_DESCRIPTION = "No description avaliable!";
PROJECT_GROUP = "No group avaliable!";
PROJECT_SUMMARY = "No summary avaliable!";
PROJECT_GROUP = "No group available!";
PROJECT_SUMMARY = "No summary available!";
PROJECT_RELEASE = "0.1";
PROJECT_COPYRIGHT = "Copyright (C) 200x";
PROJECT_COPYRIGHT_DESC = "Released under ...";

View file

@ -49,6 +49,8 @@
- (BOOL)setMainNibWithFileAtPath:(NSString *)path;
- (void)clearMainNib:(id)sender;
- (void)setDocBasedApp:(id)sender;
- (int)numberOfRowsInTableView:(NSTableView *)aTableView;
- (id) tableView: (NSTableView *)aTableView
objectValueForTableColumn: (NSTableColumn *)aTableColumn
@ -57,6 +59,8 @@
setObjectValue:anObject
forTableColumn:(NSTableColumn *)aTableColumn
row:(int)rowIndex;
- (void)fillFieldsForRow:(int)rowIndex;
// ----------------------------------------------------------------------------
// --- Notifications

View file

@ -45,6 +45,15 @@ NSString *PCITextFieldGetFocus = @"PCITextFieldGetFocusNotification";
@implementation PCAppProject (Inspector)
- (void)awakeFromNib
{
[docBasedAppButton setRefusesFirstResponder:YES];
[docBasedAppButton setState:
([[projectDict objectForKey:PCDocumentBasedApp]
isEqualToString: @"YES"]) ? NSOnState : NSOffState];
}
// ----------------------------------------------------------------------------
// --- User Interface
// ----------------------------------------------------------------------------
@ -62,38 +71,13 @@ NSString *PCITextFieldGetFocus = @"PCITextFieldGetFocusNotification";
[setFieldButton setRefusesFirstResponder:YES];
[clearFieldButton setRefusesFirstResponder:YES];
// Document Icons
//
docExtColumn = [(NSTableColumn *)[NSTableColumn alloc]
initWithIdentifier: @"extension"];
[[docExtColumn headerCell] setStringValue:@"Extension"];
[docExtColumn setWidth:75];
docIconColumn = [(NSTableColumn *)[NSTableColumn alloc]
initWithIdentifier: @"icon"];
[[docIconColumn headerCell] setStringValue:@"Icon name"];
// Document types buttons
[addDocTypeButton setRefusesFirstResponder:YES];
[removeDocTypeButton setRefusesFirstResponder:YES];
[docBasedAppButton setRefusesFirstResponder:YES];
docIconsList = [[NSTableView alloc] initWithFrame:NSMakeRect(2,0,211,108)];
[docIconsList setAllowsMultipleSelection:NO];
[docIconsList setAllowsColumnReordering:NO];
[docIconsList setAllowsColumnResizing:NO];
[docIconsList setAllowsEmptySelection:YES];
[docIconsList setAllowsColumnSelection:NO];
[docIconsList addTableColumn:docExtColumn];
[docIconsList addTableColumn:docIconColumn];
[docIconsList setDataSource:self];
[docIconsList setTarget:self];
//
[docIconsScroll setDocumentView:docIconsList];
[docIconsScroll setHasHorizontalScroller:NO];
[docIconsScroll setHasVerticalScroller:YES];
[docIconsScroll setBorderType:NSBezelBorder];
RELEASE(docIconsList);
[self setDocBasedApp:docBasedAppButton];
// Document icons buttons
[addDocIcon setRefusesFirstResponder:YES];
[removeDocIcon setRefusesFirstResponder:YES];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tfGetFocus:)
name:PCITextFieldGetFocus
@ -308,112 +292,283 @@ NSString *PCITextFieldGetFocus = @"PCITextFieldGetFocusNotification";
[self setProjectDictObject:@"" forKey:PCMainInterfaceFile notify:YES];
}
// Document Icons
- (void)addDocIcon:(id)sender
// Document Types
- (void)showDocTypesPanel:(id)sender
{
[docTypesPanel makeKeyAndOrderFront:nil];
}
- (void)setDocBasedApp:(id)sender
{
NSString *docBased = [projectDict objectForKey:PCDocumentBasedApp];
if ([docBasedAppButton state] == NSOnState)
{
[docTypeLabel setTextColor:[NSColor blackColor]];
[docTypeField setBackgroundColor:[NSColor whiteColor]];
[docTypeField setTextColor:[NSColor blackColor]];
[docTypeField setEditable:YES];
[docNameLabel setTextColor:[NSColor blackColor]];
[docNameField setBackgroundColor:[NSColor whiteColor]];
[docNameField setTextColor:[NSColor blackColor]];
[docNameField setEditable:YES];
[docRoleLabel setTextColor:[NSColor blackColor]];
[docRoleField setBackgroundColor:[NSColor whiteColor]];
[docRoleField setTextColor:[NSColor blackColor]];
[docRoleField setEditable:YES];
[docClassLabel setTextColor:[NSColor blackColor]];
[docClassField setBackgroundColor:[NSColor whiteColor]];
[docClassField setTextColor:[NSColor blackColor]];
[docClassField setEditable:YES];
if (![docBased isEqualToString:@"YES"])
{
[self setProjectDictObject:@"YES"
forKey:PCDocumentBasedApp
notify:YES];
}
}
else
{
[docTypeLabel setTextColor:[NSColor darkGrayColor]];
[docTypeField setBackgroundColor:[NSColor lightGrayColor]];
[docTypeField setTextColor:[NSColor darkGrayColor]];
[docTypeField setEditable:NO];
[docNameLabel setTextColor:[NSColor darkGrayColor]];
[docNameField setBackgroundColor:[NSColor lightGrayColor]];
[docNameField setTextColor:[NSColor darkGrayColor]];
[docNameField setEditable:NO];
[docRoleLabel setTextColor:[NSColor darkGrayColor]];
[docRoleField setBackgroundColor:[NSColor lightGrayColor]];
[docRoleField setTextColor:[NSColor darkGrayColor]];
[docRoleField setEditable:NO];
[docClassLabel setTextColor:[NSColor darkGrayColor]];
[docClassField setBackgroundColor:[NSColor lightGrayColor]];
[docClassField setTextColor:[NSColor darkGrayColor]];
[docClassField setEditable:NO];
if (![docBased isEqualToString:@"NO"])
{
[self setProjectDictObject:@"NO"
forKey:PCDocumentBasedApp
notify:YES];
}
}
}
- (void)addDocType:(id)sender
{
int row;
NSMutableDictionary *entry = [NSMutableDictionary dictionaryWithCapacity:2];
int selectedRow = [docIconsList selectedRow];
NSMutableDictionary *entry = [NSMutableDictionary dictionaryWithCapacity:6];
int selectedRow = [docTypesList selectedRow];
[entry setObject:@"" forKey:@"Extension"];
[entry setObject:@"" forKey:@"Icon"];
[entry setObject:@"" forKey:@"NSName"];
[entry setObject:@"" forKey:@"NSHumanReadableName"];
[entry setObject:[NSArray array] forKey:@"NSUnixExtensions"];
[entry setObject:@"" forKey:@"NSIcon"];
[entry setObject:@"Editor" forKey:@"NSRole"];
[entry setObject:@"NSDocument" forKey:@"NSDocumentClass"];
if (selectedRow >= 0)
{
[docIconsItems insertObject:entry atIndex:selectedRow + 1];
[docTypesItems insertObject:entry atIndex:selectedRow + 1];
row = selectedRow + 1;
}
else
{
[docIconsItems addObject:entry];
row = [docIconsItems count] - 1;
[docTypesItems addObject:entry];
row = [docTypesItems count] - 1;
}
[docIconsList reloadData];
[docTypesList reloadData];
[docIconsList selectRow:row byExtendingSelection:NO];
[docIconsList editColumn:0 row:row withEvent:nil select:YES];
[docTypesList selectRow:row byExtendingSelection:NO];
[self setProjectDictObject:docIconsItems
forKey:PCDocumentExtensions
[self fillFieldsForRow:row];
[self setProjectDictObject:docTypesItems
forKey:PCDocumentTypes
notify:YES];
}
- (void)removeDocIcon:(id)sender
- (void)removeDocType:(id)sender
{
int selectedRow = [docIconsList selectedRow];
int selectedRow = [docTypesList selectedRow];
if (selectedRow >= 0)
{
[docIconsItems removeObjectAtIndex:selectedRow];
[docIconsList reloadData];
}
if (([docIconsList selectedRow] < 0) && ([docIconsItems count] > 0))
{
[docIconsList selectRow:[docIconsItems count]-1 byExtendingSelection:NO];
}
{
[docTypesItems removeObjectAtIndex:selectedRow];
[docTypesList reloadData];
}
[self setProjectDictObject:docIconsItems
forKey:PCDocumentExtensions
notify:YES];
if (([docTypesList selectedRow] < 0) && ([docTypesItems count] > 0))
{
[docTypesList selectRow:[docTypesItems count]-1 byExtendingSelection:NO];
[self fillFieldsForRow:[docTypesItems count]-1];
}
[self setProjectDictObject:docTypesItems
forKey:PCDocumentTypes
notify:YES];
}
// ----------------------------------------------------------------------------
// --- Document Icons browser
// --- Document Types browser
// ----------------------------------------------------------------------------
- (int)numberOfRowsInTableView: (NSTableView *)aTableView
- (int)numberOfRowsInTableView:(NSTableView *)aTableView
{
return [docIconsItems count];
return [docTypesItems count];
}
- (id) tableView: (NSTableView *)aTableView
objectValueForTableColumn: (NSTableColumn *)aTableColumn
row: (int)rowIndex
- (id) tableView:(NSTableView *)aTableView
objectValueForTableColumn:(NSTableColumn *)aTableColumn
row:(int)rowIndex
{
NSDictionary *object = [docIconsItems objectAtIndex:rowIndex];
NSDictionary *object = nil;
if ([[aTableColumn identifier] isEqualToString:@"extension"])
if (docTypesItems != nil || [docTypesItems count] > 0)
{
return [object objectForKey:@"Extension"];
}
else if ([[aTableColumn identifier] isEqualToString:@"icon"])
{
return [object objectForKey:@"Icon"];
object = [docTypesItems objectAtIndex:rowIndex];
if (aTableColumn == extensionsColumn)
{
return [[object objectForKey:@"NSUnixExtensions"]
componentsJoinedByString:@","];
}
else
{
return [object objectForKey:[aTableColumn identifier]];
}
}
return nil;
}
- (void) tableView:(NSTableView *)aTableView
setObjectValue:anObject
forTableColumn:(NSTableColumn *)aTableColumn
row:(int)rowIndex
- (void)tableView:(NSTableView *)aTableView
setObjectValue:anObject
forTableColumn:(NSTableColumn *)aTableColumn
row:(int)rowIndex
{
NSMutableDictionary *ext = nil;
NSMutableDictionary *type = nil;
if (docIconsItems == nil || [docIconsItems count] <= 0)
if (docTypesItems == nil || [docTypesItems count] <= 0)
{
return;
}
ext = [docIconsItems objectAtIndex:rowIndex];
if ([[aTableColumn identifier] isEqualToString:@"extension"])
type = [docTypesItems objectAtIndex:rowIndex];
if ([[aTableColumn identifier] isEqualToString:@"NSUnixExtensions"])
{
[ext removeObjectForKey:@"Extension"];
[ext setObject:anObject forKey:@"Extension"];
[type removeObjectForKey:@"Extension"];
[type setObject:anObject forKey:@"Extension"];
}
else if ([[aTableColumn identifier] isEqualToString:@"icon"])
else if ([[aTableColumn identifier] isEqualToString:@"NSIcon"])
{
[ext removeObjectForKey:@"Icon"];
[ext setObject:anObject forKey:@"Icon"];
[type removeObjectForKey:@"Icon"];
[type setObject:anObject forKey:@"Icon"];
}
[self setProjectDictObject:docIconsItems
forKey:PCDocumentExtensions
[self setProjectDictObject:docTypesItems
forKey:PCDocumentTypes
notify:YES];
}
- (BOOL)tableView:(NSTableView *)aTableView shouldSelectRow:(int)rowIndex
{
[self fillFieldsForRow:rowIndex];
return YES;
}
- (void)fillFieldsForRow:(int)rowIndex
{
NSDictionary *type = nil;
int itemCount = [docTypesItems count];
if (itemCount <= 0 || rowIndex > itemCount || rowIndex < 0)
{
[docTypeField setStringValue:@""];
[docNameField setStringValue:@""];
[docIconField setStringValue:@""];
[docExtensionsField setStringValue:@""];
[docRoleField setStringValue:@""];
[docClassField setStringValue:@""];
return;
}
type = [docTypesItems objectAtIndex:rowIndex];
[docTypeField setStringValue:[type objectForKey:@"NSName"]];
[docNameField setStringValue:[type objectForKey:@"NSHumanReadableName"]];
[docIconField setStringValue:[type objectForKey:@"NSIcon"]];
[docExtensionsField setStringValue:@""];
if ([[type objectForKey:@"NSUnixExtensions"] count] > 0)
{
[docExtensionsField setStringValue:
[[type objectForKey:@"NSUnixExtensions"]
componentsJoinedByString:@","]];
}
[docRoleField setStringValue:[type objectForKey:@"NSRole"]];
[docClassField setStringValue:[type objectForKey:@"NSDocumentClass"]];
}
- (void)docFieldSet:(id)sender
{
NSMutableDictionary *object = nil;
NSLog(@"docFieldSet");
if (sender != docTypeField && sender != docNameField
&& sender != docIconField && sender != docExtensionsField
&& sender != docRoleField && sender != docClassField)
{
return;
}
object = [[docTypesItems objectAtIndex:[docTypesList selectedRow]]
mutableCopy];
if (sender == docTypeField)
{
[object setObject:[sender stringValue] forKey:@"NSName"];
}
else if (sender == docNameField)
{
[object setObject:[sender stringValue] forKey:@"NSHumanReadableName"];
}
else if (sender == docIconField)
{
[object setObject:[sender stringValue] forKey:@"NSIcon"];
}
else if (sender == docExtensionsField)
{
[object
setObject:[[sender stringValue] componentsSeparatedByString:@","]
forKey:@"NSUnixExtensions"];
}
else if (sender == docRoleField)
{
[object setObject:[sender stringValue] forKey:@"NSRole"];
}
else if (sender == docClassField)
{
[object setObject:[sender stringValue] forKey:@"NSDocumentClass"];
}
[docTypesItems replaceObjectAtIndex:[docTypesList selectedRow]
withObject:object];
[docTypesList reloadData];
[object release];
}
// ----------------------------------------------------------------------------
// --- Notifications
// ----------------------------------------------------------------------------
@ -432,8 +587,8 @@ NSString *PCITextFieldGetFocus = @"PCITextFieldGetFocusNotification";
[helpFileField setStringValue:[projectDict objectForKey:PCHelpFile]];
[mainNIBField setStringValue:[projectDict objectForKey:PCMainInterfaceFile]];
docIconsItems = [projectDict objectForKey:PCDocumentExtensions];
[docIconsList reloadData];
docTypesItems = [projectDict objectForKey:PCDocumentTypes];
[docTypesList reloadData];
}
// TextFields (PCITextField subclass)
@ -454,7 +609,7 @@ NSString *PCITextFieldGetFocus = @"PCITextFieldGetFocusNotification";
&& anObject != helpFileField
&& anObject != mainNIBField)
{
NSLog(@"tfGetFocus: not that textfield");
// NSLog(@"tfGetFocus: not that textfield");
return;
}
@ -500,7 +655,6 @@ NSString *PCITextFieldGetFocus = @"PCITextFieldGetFocusNotification";
&& anObject != helpFileField
&& anObject != mainNIBField)
{
NSLog(@"tfLostFocus: not that textfield");
return;
}

View file

@ -58,16 +58,37 @@
IBOutlet NSButton *setFieldButton;
IBOutlet NSButton *clearFieldButton;
NSTableView *docIconsList;
NSTableColumn *docExtColumn;
NSTableColumn *docIconColumn;
NSMutableArray *docIconsItems;
IBOutlet NSScrollView *docIconsScroll;
IBOutlet NSButton *docTypesButton;
IBOutlet NSButton *addDocIcon;
IBOutlet NSButton *removeDocIcon;
NSMutableDictionary *infoDict;
IBOutlet NSPanel *docTypesPanel;
IBOutlet NSButton *addDocTypeButton;
IBOutlet NSButton *removeDocTypeButton;
IBOutlet NSButton *docBasedAppButton;
IBOutlet NSScrollView *docTypesScroll;
NSTableView *docTypesList;
NSTableColumn *typeColumn; // NSName
NSTableColumn *nameColumn; // NSHumanReadableName
NSTableColumn *extensionsColumn; // NSUnixExtensions
NSTableColumn *iconColumn; // NSIcon
NSTableColumn *roleColumn; // NSRole
NSTableColumn *classColumn; // NSDocumentClass
NSMutableArray *docTypesItems;
IBOutlet NSTextField *docTypeLabel;
IBOutlet NSTextField *docTypeField;
IBOutlet NSTextField *docNameLabel;
IBOutlet NSTextField *docNameField;
IBOutlet NSTextField *docIconLabel;
IBOutlet NSTextField *docIconField;
IBOutlet NSTextField *docExtensionsLabel;
IBOutlet NSTextField *docExtensionsField;
IBOutlet NSTextField *docRoleLabel;
IBOutlet NSTextField *docRoleField;
IBOutlet NSTextField *docClassLabel;
IBOutlet NSTextField *docClassField;
NSMutableDictionary *infoDict;
}
// ----------------------------------------------------------------------------

View file

@ -73,8 +73,8 @@
rootEntries = [[NSDictionary
dictionaryWithObjects:rootCategories forKeys:rootKeys] retain];
}
return self;
}
@ -324,7 +324,8 @@
[self writeInfoEntry:@"NSMainNibFile" forKey:PCMainInterfaceFile];
[self writeInfoEntry:@"NSPrincipalClass" forKey:PCPrincipalClass];
[infoDict setObject:@"Application" forKey:@"NSRole"];
[infoDict setObject:[self convertExtensions] forKey:@"NSTypes"];
// [infoDict setObject:[self convertExtensions] forKey:@"NSTypes"];
[self writeInfoEntry:@"NSTypes" forKey:PCDocumentTypes];
[self writeInfoEntry:@"URL" forKey:PCURL];
infoFile = [self dirForCategoryKey:PCOtherResources];

View file

@ -1,147 +1,49 @@
{
"## Comment" = "Do NOT change this file, Gorm maintains it";
FirstResponder = {
Actions = (
"activateContextHelpMode:",
"alignCenter:",
"alignJustified:",
"alignLeft:",
"alignRight:",
"arrangeInFront:",
"cancel:",
"capitalizeWord:",
"changeColor:",
"checkSpelling:",
"close:",
"complete:",
"copy:",
"copyFont:",
"copyRuler:",
"cut:",
"delete:",
"deleteBackward:",
"deleteForward:",
"deleteToBeginningOfLine:",
"deleteToBeginningOfParagraph:",
"deleteToEndOfLine:",
"deleteToEndOfParagraph:",
"deleteToMark:",
"deleteWordBackward:",
"deleteWordForward:",
"deminiaturize:",
"deselectAll:",
"fax:",
"hide:",
"hideOtherApplications:",
"indent:",
"loosenKerning:",
"lowerBaseline:",
"lowercaseWord:",
"makeKeyAndOrderFront:",
"miniaturize:",
"miniaturizeAll:",
"moveBackward:",
"moveBackwardAndModifySelection:",
"moveDown:",
"moveDownAndModifySelection:",
"moveForward:",
"moveForwardAndModifySelection:",
"moveLeft:",
"moveRight:",
"moveToBeginningOfDocument:",
"moveToBeginningOfLine:",
"moveToBeginningOfParagraph:",
"moveToEndOfDocument:",
"moveToEndOfLine:",
"moveToEndOfParagraph:",
"moveUp:",
"moveUpAndModifySelection:",
"moveWordBackward:",
"moveWordBackwardAndModifySelection:",
"moveWordForward:",
"moveWordForwardAndModifySelection:",
"newDocument:",
"ok:",
"open:",
"openDocument:",
"orderBack:",
"orderFront:",
"orderFrontColorPanel:",
"orderFrontDataLinkPanel:",
"orderFrontHelpPanel:",
"orderFrontStandardAboutPanel:",
"orderFrontStandardInfoPanel:",
"orderOut:",
"pageDown:",
"pageUp:",
"paste:",
"pasteAsPlainText:",
"pasteAsRichText:",
"pasteFont:",
"pasteRuler:",
"performClose:",
"performMiniaturize:",
"performZoom:",
"print:",
"raiseBaseline:",
"revertDocumentToSaved:",
"runPageLayout:",
"runToolbarCustomizationPalette:",
"saveAllDocuments:",
"saveDocument:",
"saveDocumentAs:",
"saveDocumentTo:",
"scrollLineDown:",
"scrollLineUp:",
"scrollPageDown:",
"scrollPageUp:",
"scrollViaScroller:",
"selectAll:",
"selectLine:",
"selectNextKeyView:",
"selectParagraph:",
"selectPreviousKeyView:",
"selectText:",
"selectToMark:",
"selectWord:",
"showContextHelp:",
"showGuessPanel:",
"showHelp:",
"showWindow:",
"stop:",
"subscript:",
"superscript:",
"swapWithMark:",
"takeDoubleValueFrom:",
"takeFloatValueFrom:",
"takeIntValueFrom:",
"takeObjectValueFrom:",
"takeStringValueFrom:",
"terminate:",
"tightenKerning:",
"toggle:",
"toggleContinuousSpellChecking:",
"toggleRuler:",
"toggleToolbarShown:",
"toggleTraditionalCharacterShape:",
"transpose:",
"transposeWords:",
"turnOffKerning:",
"turnOffLigatures:",
"underline:",
"unhide:",
"unhideAllApplications:",
"unscript:",
"uppercaseWord:",
"useAllLigatures:",
"useStandardKerning:",
"useStandardLigatures:",
"yank:",
"zoom:",
"setAppClass:",
"setFile:",
"clearFile:",
"setDocIcon:",
"removeDocIcon:"
"removeDocType:",
"showDocTypesPanel:",
"setDocBasedApp:",
"docFieldSet:"
);
Super = NSObject;
};
@ -150,9 +52,12 @@
"setAppClass:",
"setFile:",
"clearFile:",
"addDocIcon:",
"removeDocIcon:",
"setCurrentLanguage:"
"addDocType:",
"removeDocType:",
"setCurrentLanguage:",
"showDocTypesPanel:",
"setDocBasedApp:",
"docFieldSet:"
);
Outlets = (
projectAttributesView,
@ -166,9 +71,24 @@
appImageField,
helpFileField,
mainNIBField,
docIconsScroll,
addDocIcon,
removeDocIcon
docTypesButton,
docTypesPanel,
addDocTypeButton,
removeDocTypeButton,
docBasedAppButton,
docTypesScroll,
docTypeLabel,
docTypeField,
docNameLabel,
docNameField,
docIconLabel,
docIconField,
docExtensionsLabel,
docExtensionsField,
docRoleLabel,
docRoleField,
docClassLabel,
docClassField
);
Super = NSObject;
};

View file

@ -1,6 +1,5 @@
{
APPLICATIONICON = "";
BUILDTOOL = "/usr/bin/make";
CLASS_FILES = ("AppController.m");
COMPILEROPTIONS = "";
CPPOPTIONS = "";

View file

@ -1,5 +1,4 @@
{
BUILDTOOL = "/usr/bin/make";
BUNDLE_EXTENSION = ".bundle";
CLASS_FILES = ();
COMPILEROPTIONS = "";
@ -24,9 +23,9 @@
PRINCIPAL_CLASS = "";
PROJECT_AUTHORS = ();
PROJECT_CREATOR = "";
PROJECT_DESCRIPTION = "No description avaliable!";
PROJECT_GROUP = "No group avaliable!";
PROJECT_SUMMARY = "No summary avaliable!";
PROJECT_DESCRIPTION = "No description available!";
PROJECT_GROUP = "No group available!";
PROJECT_SUMMARY = "No summary available!";
PROJECT_RELEASE = "0.1";
PROJECT_COPYRIGHT = "Copyright (C) 200x";
PROJECT_COPYRIGHT_DESC = "Released under ...";

View file

@ -1,5 +1,4 @@
{
BUILDTOOL = "/usr/bin/make";
CLASS_FILES = ();
COMPILEROPTIONS = "";
CPPOPTIONS = "";
@ -22,9 +21,9 @@
OTHER_SOURCES = ();
PROJECT_AUTHORS = ();
PROJECT_CREATOR = "";
PROJECT_DESCRIPTION = "No description avaliable!";
PROJECT_GROUP = "No group avaliable!";
PROJECT_SUMMARY = "No summary avaliable!";
PROJECT_DESCRIPTION = "No description available!";
PROJECT_GROUP = "No group available!";
PROJECT_SUMMARY = "No summary available!";
PROJECT_RELEASE = "0.1";
PROJECT_COPYRIGHT = "Copyright (C) 200x";
PROJECT_COPYRIGHT_DESC = "Released under ...";

View file

@ -1,6 +1,5 @@
{
APPLICATIONICON = "";
BUILDTOOL = "/usr/bin/make";
CLASS_FILES = ("AppController.m");
COMPILEROPTIONS = "";
CPPOPTIONS = "";
@ -25,10 +24,10 @@
PRINCIPAL_CLASS = "NSApplication";
PROJECT_AUTHORS = ();
PROJECT_CREATOR = "";
PROJECT_DESCRIPTION = "No description avaliable!";
PROJECT_DESCRIPTION = "No description available!";
PROJECT_DOCUMENTEXTENSIONS = ();
PROJECT_GROUP = "No group avaliable!";
PROJECT_SUMMARY = "No summary avaliable!";
PROJECT_GROUP = "No group available!";
PROJECT_SUMMARY = "No summary available!";
PROJECT_RELEASE = "0.1";
PROJECT_COPYRIGHT = "Copyright (C) 200x";
PROJECT_COPYRIGHT_DESC = "Released under ...";

View file

@ -1,5 +1,4 @@
{
BUILDTOOL = "/usr/bin/make";
CLASS_FILES = ();
COMPILEROPTIONS = "";
CPPOPTIONS = "";
@ -21,9 +20,9 @@
OTHER_SOURCES = ("main.m");
PROJECT_AUTHORS = ();
PROJECT_CREATOR = "";
PROJECT_DESCRIPTION = "No description avaliable!";
PROJECT_GROUP = "No group avaliable!";
PROJECT_SUMMARY = "No summary avaliable!";
PROJECT_DESCRIPTION = "No description available!";
PROJECT_GROUP = "No group available!";
PROJECT_SUMMARY = "No summary available!";
PROJECT_RELEASE = "0.1";
PROJECT_COPYRIGHT = "Copyright (C) 200x";
PROJECT_COPYRIGHT_DESC = "Released under ...";

View file

@ -60,6 +60,7 @@
IBOutlet NSButton *promptWhenQuit;
IBOutlet NSButton *deleteCache;
IBOutlet NSButton *fullPathInFilePanels;
IBOutlet NSTextField *buildToolField;
IBOutlet NSTextField *debuggerField;
IBOutlet NSTextField *editorField;

View file

@ -120,6 +120,7 @@ static PCPrefController *_prefCtrllr = nil;
[preferencesDict setObject:@"YES" forKey:PromptOnQuit];
[preferencesDict setObject:@"YES" forKey:DeleteCacheWhenQuitting];
[preferencesDict setObject:@"YES" forKey:FullPathInFilePanels];
[preferencesDict setObject:@"/usr/bin/make" forKey:BuildTool];
[preferencesDict setObject:@"/usr/bin/gdb" forKey:Debugger];
[preferencesDict setObject:@"ProjectCenter" forKey:Editor];
@ -207,6 +208,8 @@ static PCPrefController *_prefCtrllr = nil;
([[preferencesDict objectForKey: FullPathInFilePanels]
isEqualToString:@"YES"]) ? NSOnState : NSOffState];
[buildToolField setStringValue:
(val = [preferencesDict objectForKey:BuildTool]) ? val : @"/usr/bin/make"];
[debuggerField setStringValue:
(val = [preferencesDict objectForKey: Debugger]) ? val : @"/usr/bin/gdb"];
[editorField setStringValue:
@ -656,6 +659,27 @@ static PCPrefController *_prefCtrllr = nil;
forKey:FullPathInFilePanels];
}
- (void)setBuildTool:(id)sender
{
NSString *path = [buildToolField stringValue];
if ([path isEqualToString:@""] || !path)
{
[buildToolField setStringValue:@"/usr/bin/make"];
path = [buildToolField stringValue];
}
else if (!path || ![[NSFileManager defaultManager] fileExistsAtPath:path])
{
[buildToolField selectText:self];
NSRunAlertPanel(@"Build Tool not found!",
@"File %@ doesn't exist!",
@"OK", nil, nil, path);
}
[[NSUserDefaults standardUserDefaults] setObject:path forKey:BuildTool];
[preferencesDict setObject:path forKey:BuildTool];
}
- (void)setDebugger:(id)sender
{
NSString *path = [debuggerField stringValue];

View file

@ -1,142 +1,42 @@
{
"## Comment" = "Do NOT change this file, Gorm maintains it";
FirstResponder = {
Actions = (
"activateContextHelpMode:",
"alignCenter:",
"alignJustified:",
"alignLeft:",
"alignRight:",
"arrangeInFront:",
"cancel:",
"capitalizeWord:",
"changeColor:",
"checkSpelling:",
"close:",
"complete:",
"copy:",
"copyFont:",
"copyRuler:",
"cut:",
"delete:",
"deleteBackward:",
"deleteForward:",
"deleteToBeginningOfLine:",
"deleteToBeginningOfParagraph:",
"deleteToEndOfLine:",
"deleteToEndOfParagraph:",
"deleteToMark:",
"deleteWordBackward:",
"deleteWordForward:",
"deminiaturize:",
"deselectAll:",
"fax:",
"hide:",
"hideOtherApplications:",
"indent:",
"loosenKerning:",
"lowerBaseline:",
"lowercaseWord:",
"makeKeyAndOrderFront:",
"miniaturize:",
"miniaturizeAll:",
"moveBackward:",
"moveBackwardAndModifySelection:",
"moveDown:",
"moveDownAndModifySelection:",
"moveForward:",
"moveForwardAndModifySelection:",
"moveLeft:",
"moveRight:",
"moveToBeginningOfDocument:",
"moveToBeginningOfLine:",
"moveToBeginningOfParagraph:",
"moveToEndOfDocument:",
"moveToEndOfLine:",
"moveToEndOfParagraph:",
"moveUp:",
"moveUpAndModifySelection:",
"moveWordBackward:",
"moveWordBackwardAndModifySelection:",
"moveWordForward:",
"moveWordForwardAndModifySelection:",
"newDocument:",
"ok:",
"open:",
"openDocument:",
"orderBack:",
"orderFront:",
"orderFrontColorPanel:",
"orderFrontDataLinkPanel:",
"orderFrontHelpPanel:",
"orderFrontStandardAboutPanel:",
"orderFrontStandardInfoPanel:",
"orderOut:",
"pageDown:",
"pageUp:",
"paste:",
"pasteAsPlainText:",
"pasteAsRichText:",
"pasteFont:",
"pasteRuler:",
"performClose:",
"performMiniaturize:",
"performZoom:",
"print:",
"raiseBaseline:",
"revertDocumentToSaved:",
"runPageLayout:",
"runToolbarCustomizationPalette:",
"saveAllDocuments:",
"saveDocument:",
"saveDocumentAs:",
"saveDocumentTo:",
"scrollLineDown:",
"scrollLineUp:",
"scrollPageDown:",
"scrollPageUp:",
"scrollViaScroller:",
"selectAll:",
"selectLine:",
"selectNextKeyView:",
"selectParagraph:",
"selectPreviousKeyView:",
"selectText:",
"selectToMark:",
"selectWord:",
"showContextHelp:",
"showGuessPanel:",
"showHelp:",
"showWindow:",
"stop:",
"subscript:",
"superscript:",
"swapWithMark:",
"takeDoubleValueFrom:",
"takeFloatValueFrom:",
"takeIntValueFrom:",
"takeObjectValueFrom:",
"takeStringValueFrom:",
"terminate:",
"tightenKerning:",
"toggle:",
"toggleContinuousSpellChecking:",
"toggleRuler:",
"toggleToolbarShown:",
"toggleTraditionalCharacterShape:",
"transpose:",
"transposeWords:",
"turnOffKerning:",
"turnOffLigatures:",
"underline:",
"unhide:",
"unhideAllApplications:",
"unscript:",
"uppercaseWord:",
"useAllLigatures:",
"useStandardKerning:",
"useStandardLigatures:",
"yank:",
"zoom:"
"zoom:",
"setBuildTool:"
);
Super = NSObject;
};
@ -160,7 +60,8 @@
"setFullPathInFilePanels:",
"setRememberWindows:",
"setEditorSize:",
"setDisplayLog:"
"setDisplayLog:",
"setBuildTool:"
);
Outlets = (
panel,
@ -196,7 +97,8 @@
rootBuildDirButton,
editorColumnsField,
editorLinesField,
displayLog
displayLog,
buildToolField
);
Super = NSObject;
};

Binary file not shown.