mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-22 17:52:42 +00:00
Fix for decoding issue.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@18368 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
53bf81fa36
commit
e5ca42f61a
2 changed files with 27 additions and 2 deletions
|
@ -1,3 +1,12 @@
|
|||
2004-01-10 18:53 Gregory John Casamento <greg_casamento@yahoo.com>
|
||||
|
||||
* Source/GSNibTemplates.m: The unarchiver was failing when
|
||||
decoding objects which contain references to themselves
|
||||
(e.g. NSTabView). When an object contains a class/item which
|
||||
refers to it's parent it should receive the new object and not
|
||||
the template. I modified the initWithCoder: method of GSClassSwapper
|
||||
to correct the issue.
|
||||
|
||||
2004-01-10 Adam Fedor <fedor@gnu.org>
|
||||
|
||||
* orderFront fixes
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
#include <Foundation/NSUserDefaults.h>
|
||||
#include <Foundation/NSKeyValueCoding.h>
|
||||
#include <Foundation/NSNotification.h>
|
||||
#include <Foundation/NSArchiver.h>
|
||||
#include <AppKit/NSMenu.h>
|
||||
#include <AppKit/NSView.h>
|
||||
#include <AppKit/NSTextView.h>
|
||||
|
@ -519,6 +520,8 @@ static const int currentVersion = 1; // GSNibItem version number...
|
|||
{
|
||||
if((self = [super init]) != nil)
|
||||
{
|
||||
NSUnarchiver *unarchiver = (NSUnarchiver *)coder;
|
||||
|
||||
// decode class/superclass...
|
||||
[coder decodeValueOfObjCType: @encode(id) at: &_className];
|
||||
[coder decodeValueOfObjCType: @encode(Class) at: &_superClass];
|
||||
|
@ -527,7 +530,7 @@ static const int currentVersion = 1; // GSNibItem version number...
|
|||
// morph into the subclass.
|
||||
if([self respondsToSelector: @selector(isInInterfaceBuilder)])
|
||||
{
|
||||
obj = [[_superClass alloc] initWithCoder: coder]; // unarchive the object...
|
||||
obj = [_superClass alloc];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -540,8 +543,12 @@ static const int currentVersion = 1; // GSNibItem version number...
|
|||
|
||||
// Initialize the object... dont call decode, since this wont
|
||||
// allow us to instantiate the class we want.
|
||||
obj = [[aClass alloc] initWithCoder: coder]; // unarchive the object...
|
||||
obj = [aClass alloc];
|
||||
}
|
||||
|
||||
// inform the coder that this object is to replace the template in all cases.
|
||||
[unarchiver replaceObject: self withObject: obj];
|
||||
obj = [obj initWithCoder: coder]; // unarchive the object...
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -651,6 +658,15 @@ static const int currentVersion = 1; // GSNibItem version number...
|
|||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
/*
|
||||
- (NSFont *)font
|
||||
{
|
||||
NSLog(@"Whose calling me...");
|
||||
return nil;
|
||||
}
|
||||
*/
|
||||
|
||||
@end
|
||||
|
||||
// Template for any classes which derive from NSText
|
||||
|
|
Loading…
Reference in a new issue