Changed Font/Ruler pasting to use an Archiver

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@6850 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
FredKiefer 2000-07-01 12:09:57 +00:00
parent c0682eab39
commit b470173520

View file

@ -3054,7 +3054,12 @@ of characters (if any) to be replaced by the new data.
// font pasting // font pasting
if ([type isEqualToString: NSFontPboardType]) if ([type isEqualToString: NSFontPboardType])
{ {
NSDictionary *dict = [pboard propertyListForType: NSFontPboardType]; // FIXME - This should use a serializer. To get that working a helper object
// is needed that implements the NSObjCTypeSerializationCallBack protocol.
// We should add this later, currently the NSArchiver is used.
// Thanks to Richard, for pointing this out.
NSData *data = [pboard dataForType: NSFontPboardType];
NSDictionary *dict = [NSUnarchiver unarchiveObjectWithData: data];
if (dict != nil) if (dict != nil)
{ {
@ -3068,7 +3073,9 @@ of characters (if any) to be replaced by the new data.
// ruler pasting // ruler pasting
if ([type isEqualToString: NSRulerPboardType]) if ([type isEqualToString: NSRulerPboardType])
{ {
NSDictionary *dict = [pboard propertyListForType: NSRulerPboardType]; // FIXME: see NSFontPboardType above
NSData *data = [pboard dataForType: NSRulerPboardType];
NSDictionary *dict = [NSUnarchiver unarchiveObjectWithData: data];
if (dict != nil) if (dict != nil)
{ {
@ -3181,7 +3188,12 @@ other than copy/paste or dragging. */
if (dict != nil) if (dict != nil)
{ {
[pboard setPropertyList: dict forType: NSFontPboardType]; // FIXME - This should use a serializer. To get that working a helper object
// is needed that implements the NSObjCTypeSerializationCallBack protocol.
// We should add this later, currently the NSArchiver is used.
// Thanks to Richard, for pointing this out.
[pboard setData: [NSArchiver archivedDataWithRootObject: dict]
forType: NSFontPboardType];
ret = YES; ret = YES;
} }
} }
@ -3192,7 +3204,9 @@ other than copy/paste or dragging. */
if (dict != nil) if (dict != nil)
{ {
[pboard setPropertyList: dict forType: NSRulerPboardType]; //FIXME: see NSFontPboardType above
[pboard setData: [NSArchiver archivedDataWithRootObject: dict]
forType: NSRulerPboardType];
ret = YES; ret = YES;
} }
} }
@ -3232,7 +3246,7 @@ other than copy/paste or dragging. */
id val; id val;
NSEnumerator *enumerator = [attributes keyEnumerator]; NSEnumerator *enumerator = [attributes keyEnumerator];
if (aRange.location != NSNotFound) if (aRange.location == NSNotFound)
return; return;
if (![self shouldChangeTextInRange: aRange if (![self shouldChangeTextInRange: aRange
replacementString: nil]) replacementString: nil])