Correction for a few recently discovered bugs.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/gorm/trunk@19187 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Gregory John Casamento 2004-04-26 03:26:23 +00:00
parent 332d994eca
commit ace7f1b036
7 changed files with 49 additions and 16 deletions

View file

@ -1,3 +1,23 @@
2004-04-25 23:24 Gregory John Casamento <greg_casamento@yahoo.com>
* GormClassInspector.m: removeOutlet: and removeAction: check for
i >= 0 to allow deletion of last element. This was an issue
introduced in the previous commit. Also made the tables deselect
the previous selection so that it would allow deselection of all
rows.
* GormClassInspector.gorm: Made both tables capable of having an
empty selection. This corrected an issue with deleting the last
element.
* GormDocument.m: Added back, in handleNotification:, handling of
GormDidModifyClassNotification. Previously this was removed since
there were no other places where the classes were being modified.
This is no longer the case.
2004-04-25 06:34 Gregory John Casamento <greg_casamento@yahoo.com>
* GormClassInspector.m: removeOutlet: and removeAction: check for
i > 0 to prevent and out of range exception if nothing is selected.
2004-04-18 08:30 Gregory John Casamento <greg_casamento@yahoo.com>
* GormPrefsController.m: Added dealloc to prevent any memory

2
Gorm.m
View file

@ -4,7 +4,7 @@
*
* Author: Richard Frith-Macdonald <richard@brainstrom.co.uk>
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 1999, 2003
* Date: 1999, 2003, 2004
*
* This file is part of GNUstep.
*

View file

@ -38,6 +38,7 @@ NSNotificationCenter *nc = nil;
// interfaces
@interface GormDocument (GormClassInspectorAdditions)
- (void) collapseClass: (NSString *)className;
- (void) reloadClasses;
@end
// the data source classes for each of the tables...
@ -70,6 +71,11 @@ NSNotificationCenter *nc = nil;
[classesView expandItem: className];
[classesView collapseItem: className];
}
- (void) reloadClasses
{
[classesView reloadData];
}
@end
@implementation GormOutletDataSource
@ -320,8 +326,9 @@ objectValueForTableColumn: (NSTableColumn *)tc
NSString *name = nil;
// check the count...
if([list count] > 0)
if([list count] > 0 && i >= 0 && i < [list count])
{
[actionTable deselectAll: self];
name = [list objectAtIndex: i];
removed = [(GormDocument *)[(id <IB>)NSApp activeDocument]
removeConnectionsWithLabel: name
@ -332,7 +339,6 @@ objectValueForTableColumn: (NSTableColumn *)tc
if(removed)
{
[classManager removeAction: name fromClassNamed: className];
[nc postNotificationName: IBInspectorDidModifyObjectNotification
object: classManager];
[actionTable reloadData];
@ -348,8 +354,9 @@ objectValueForTableColumn: (NSTableColumn *)tc
NSString *name = nil;
// check the count...
if([list count] > 0)
if([list count] > 0 && i >= 0 && i < [list count])
{
[outletTable deselectAll: self];
name = [list objectAtIndex: i];
removed = [(GormDocument *)[(id <IB>)NSApp activeDocument]
removeConnectionsWithLabel: name
@ -408,6 +415,7 @@ objectValueForTableColumn: (NSTableColumn *)tc
object: classManager];
[(GormDocument *)[(id <IB>)NSApp activeDocument] collapseClass: oldSuper];
[(GormDocument *)[(id <IB>)NSApp activeDocument] collapseClass: name];
[(GormDocument *)[(id <IB>)NSApp activeDocument] reloadClasses];
}
}

View file

@ -5,7 +5,7 @@
* Author: Richard Frith-Macdonald <richard@brainstrom.co.uk>
* Date: 1999
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
* Date: 2002
* Date: 2002,2003,2004
*
* This file is part of GNUstep.
*
@ -1150,6 +1150,7 @@ static NSImage *classesImage = nil;
{
id anitem;
int i = [classesView selectedRow];
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
// if no selection, then return.
if (i == -1)
@ -1161,7 +1162,6 @@ static NSImage *classesImage = nil;
if ([anitem isKindOfClass: [GormOutletActionHolder class]])
{
id itemBeingEdited = [classesView itemBeingEdited];
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
// if the class being edited is a custom class, then allow the deletion...
if ([classManager isCustomClass: itemBeingEdited])
@ -1224,6 +1224,8 @@ static NSImage *classesImage = nil;
{
[classManager removeClassNamed: anitem];
[classesView reloadData];
[nc postNotificationName: GormDidModifyClassNotification
object: classManager];
}
}
}
@ -1595,6 +1597,14 @@ static NSImage *classesImage = nil;
[classesView reloadData];
}
}
else if ([name isEqual: GormDidModifyClassNotification] == YES)
{
if ([aNotification object] == classManager && [classesView isEditing] == NO)
{
// NSLog(@"Reloading classesview");
[classesView reloadData];
}
}
}
- (id) init
@ -1669,12 +1679,10 @@ static NSImage *classesImage = nil;
selector: @selector(handleNotification:)
name: IBInspectorDidModifyObjectNotification
object: nil];
/*
[nc addObserver: self
selector: @selector(handleNotification:)
name: GormDidModifyClassNotification
object: nil];
*/
selectionView = [[NSMatrix alloc] initWithFrame: selectionRect
mode: NSRadioModeMatrix
cellClass: [GormDisplayCell class]

View file

@ -49,6 +49,11 @@
@end
@implementation GormNSMenuWindow
- (BOOL)isExcludedFromWindowsMenu
{
return YES;
}
- (BOOL)canBecomeMainWindow
{
return YES;

8
TODO
View file

@ -4,13 +4,6 @@ This is my personal TO DO list based on feature requests that I am
hearing from users of Gorm. Currently a number of requests are on the
table which seem intersting:
* Add support for Font Aliases so that fonts are not archived into the
.gorm file. This will allow the application to use the fonts as
defined by the user, not as archived in .gorm. (fabien) (DONE!)
* Set up defaults to allow Gorm to "preload" headers each time it starts
up. (cbv) (DONE!)
* Look into automatic "localization" of .gorm files for applications.
(martin)
@ -22,7 +15,6 @@ table which seem intersting:
without windows so that the developer doesn't need to create a "dummy"
window to hold them. (fabien)
* Add Feature to automatically add actions to FirstResponder. (DONE!)
--
Gregory John Casamento