Correction for crash.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/gorm/trunk@21632 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Gregory John Casamento 2005-08-12 05:13:50 +00:00
parent b471f14c0b
commit 7eea631946
2 changed files with 64 additions and 62 deletions

View file

@ -1,3 +1,8 @@
2005-08-12 01:23 Gregory John Casamento <greg_casamento@yahoo.com>
* GormCore/GormClassEditor.m: Correction for crash when loading
.gorm files via [NSApplication openFile:...].
2005-08-11 23:00 Gregory John Casamento <greg_casamento@yahoo.com>
* GormCore/GormInspectorsManager.m: Removed explicit check for table

View file

@ -275,71 +275,68 @@ NSString *GormSwitchViewPreferencesNotification = @"GormSwitchViewPreferencesNot
int row = 0;
int col = 0;
if ( ( className == nil )
|| ( [className isEqual: @"CustomView"] )
|| ( [className isEqual: @"GormSound"] )
|| ( [className isEqual: @"GormImage"] )
|| ( [outlineView isEditing] ) )
if ( ( className != nil )
&& ( [className isEqual: @"CustomView"] == NO )
&& ( [className isEqual: @"GormSound"] == NO )
&& ( [className isEqual: @"GormImage"] == NO )
&& ( [outlineView isEditing] == NO ) )
{
return;
}
classes = [classManager allSuperClassesOf: className];
en = [classes objectEnumerator];
// open the items...
while ((currentClass = [en nextObject]) != nil)
{
[outlineView expandItem: currentClass];
}
// select the item in the outline view...
row = [outlineView rowForItem: className];
if (row != -1)
{
[outlineView selectRow: row byExtendingSelection: NO];
[outlineView scrollRowToVisible: row];
}
// select class in browser...
subClassesArray = [NSMutableArray arrayWithArray: [classManager allSuperClassesOf: className]];
if ((subClassesArray == nil || [subClassesArray count] == 0) &&
[classManager isRootClass: className] == NO)
{
return;
}
[subClassesArray addObject: className]; // include in the list.
// Get the super class position in the browser. Passing "nil" to subClassesOf causes it
// to get all of the root classes.
col = 0;
row = [[classManager subClassesOf: nil] indexOfObject: [subClassesArray objectAtIndex: 0]];
// reset the enumerator...
currentClass = nil;
[browserView reloadColumn:col];
// if row is not NSNotFound, then we found something.
if(row != -1)
{
[browserView selectRow: row inColumn: col];
en = [subClassesArray objectEnumerator];
[en nextObject]; // skip the first one.
while((currentClass = [en nextObject]) != nil)
classes = [classManager allSuperClassesOf: className];
en = [classes objectEnumerator];
// open the items...
while ((currentClass = [en nextObject]) != nil)
{
NSString *prevClass = [[browserView selectedCellInColumn: col] stringValue];
subclasses = [classManager subClassesOf: prevClass];
row = [subclasses indexOfObject: currentClass];
col++;
[browserView selectRow:row inColumn:col];
[outlineView expandItem: currentClass];
}
// select the item in the outline view...
row = [outlineView rowForItem: className];
if (row != -1)
{
[outlineView selectRow: row byExtendingSelection: NO];
[outlineView scrollRowToVisible: row];
}
// select class in browser...
subClassesArray = [NSMutableArray arrayWithArray: [classManager allSuperClassesOf: className]];
if ((subClassesArray != nil && [subClassesArray count] != 0) ||
[classManager isRootClass: className] == YES)
{
[subClassesArray addObject: className]; // include in the list.
// Get the super class position in the browser. Passing "nil" to subClassesOf causes it
// to get all of the root classes.
col = 0;
row = [[classManager subClassesOf: nil] indexOfObject: [subClassesArray objectAtIndex: 0]];
// reset the enumerator...
currentClass = nil;
[browserView reloadColumn:col];
// if row is not NSNotFound, then we found something.
if(row != -1)
{
[browserView selectRow: row inColumn: col];
en = [subClassesArray objectEnumerator];
[en nextObject]; // skip the first one.
while((currentClass = [en nextObject]) != nil)
{
NSString *prevClass = [[browserView selectedCellInColumn: col] stringValue];
subclasses = [classManager subClassesOf: prevClass];
row = [subclasses indexOfObject: currentClass];
col++;
[browserView selectRow:row inColumn:col];
}
}
ASSIGN(selectedClass, className);
if(flag)
{
// set the editor...
[document setSelectionFromEditor: (id)self];
}
}
}
ASSIGN(selectedClass, className);
if(flag)
{
// set the editor...
[document setSelectionFromEditor: (id)self];
}
}
NS_HANDLER