Corrected a connections issue. Report #9461.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/gorm/trunk@19624 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Gregory John Casamento 2004-06-26 12:19:18 +00:00
parent 2b6a9b80aa
commit f5bafcc089
4 changed files with 26 additions and 11 deletions

View file

@ -1,3 +1,14 @@
2004-06-26 08:25 Gregory John Casamento <greg_casamento@yahoo.com>
* GormPalettesManager.m: There was problem which crops up when the
user has many connections to the same object both action/outlet
in the same list. When disconnecting it the inspector,
because of a memory leak, was deleting the outlet & the
action following it. This was happening inconsistently and
would cause a blank line to appear in the connections inspector
when the user would click on the object. This was reported as
Bug #9461.
2004-06-25 01:33 Gregory John Casamento <greg_casamento@yahoo.com>
* GormDocument.m: [GormDocument(GormOutlineDataSource)

View file

@ -568,7 +568,7 @@
}
[info setObject: allActions forKey: @"AllActions"];
}
return [allActions copy];
return AUTORELEASE([allActions copy]);
}
return nil;
}

View file

@ -46,17 +46,18 @@
}
@end
@interface NSNibControlConnector (GormExtension)
@interface NSNibConnector (GormExtension)
- (BOOL) isEqual: (id)object;
@end
@implementation NSNibControlConnector (GormExtension)
@implementation NSNibConnector (GormExtension)
- (BOOL) isEqual: (id)object
{
BOOL result = NO;
if([[self source] isEqual: [object source]] &&
[[self destination] isEqual: [object destination]] &&
[[self label] isEqual: [object label]])
[[self label] isEqual: [object label]] &&
([self class] == [object class]))
{
result = YES;
}

View file

@ -1074,17 +1074,20 @@ selectCellWithString: (NSString*)title
}
else if ([connectors containsObject: currentConnector] == YES)
{
[[(id<IB>)NSApp activeDocument] removeConnector: currentConnector];
if ([currentConnector isKindOfClass: [NSNibOutletConnector class]])
id con = currentConnector;
RETAIN(con);
[[(id<IB>)NSApp activeDocument] removeConnector: con];
if ([con isKindOfClass: [NSNibOutletConnector class]])
{
[currentConnector setDestination: nil];
[con setDestination: nil];
}
if ([currentConnector isKindOfClass: [NSNibControlConnector class]])
if ([con isKindOfClass: [NSNibControlConnector class]])
{
[currentConnector setDestination: nil];
[currentConnector setLabel: nil];
[con setDestination: nil];
[con setLabel: nil];
}
[connectors removeObject: currentConnector];
[connectors removeObject: con];
RELEASE(con);
[oldBrowser loadColumnZero];
}
else