Actual fix for pasteboard exception for strings.

Reviewed by me.
This commit is contained in:
Francisco Ryan Tolmasky I committed 2010-02-13 14:39:44 -08:00
1 parent 73babcd7d6
commit 474d4281f1
5 files changed
+43 -20

No files matched your search

+6 -6
View File
@@ -233,7 +233,7 @@ var CPPasteboards = nil,
*/
- (BOOL)setPropertyList:(id)aPropertyList forType:(CPString)aType
{
return [self setData:[CPPropertyListSerialization dataFromPropertyList:aPropertyList format:CPPropertyListXMLFormat_v1_0 errorDescription:nil] forType:aType];
return [self setData:[CPPropertyListSerialization dataFromPropertyList:aPropertyList format:CPPropertyList280NorthFormat_v1_0] forType:aType];
}
/*!
@@ -244,7 +244,7 @@ var CPPasteboards = nil,
*/
- (void)setString:(CPString)aString forType:(CPString)aType
{
[self setData:[CPKeyedArchiver archivedDataWithRootObject:aString] forType:aType];
[self setPropertyList:aString forType:aType];
}
// Determining Types
@@ -343,7 +343,7 @@ var CPPasteboards = nil,
var data = [self dataForType:aType];
if (data)
return [CPPropertyListSerialization propertyListFromData:data format:CPPropertyListXMLFormat_v1_0 errorDescription:nil];
return [CPPropertyListSerialization propertyListFromData:data format:CPPropertyList280NorthFormat_v1_0];
return nil;
}
@@ -355,7 +355,7 @@ var CPPasteboards = nil,
*/
- (CPString)stringForType:(CPString)aType
{
return [CPKeyedUnarchiver unarchiveObjectWithData:[self dataForType:aType]];
return [self propertyListForType:aType];
}
/* @ignore */
@@ -429,7 +429,7 @@ var DOMDataTransferPasteboard = nil;
var dataString = _dataTransfer.getData(aType);
if (aType === CPStringPboardType)
return [CPData dataFromPropertyList:dataString format:kCFPropertyList280NorthFormat_v1_0 errorDescription:0];
return [CPData dataFromPropertyList:dataString format:kCFPropertyList280NorthFormat_v1_0];
return [CPData dataWithEncodedString:dataString];
}
@@ -439,7 +439,7 @@ var DOMDataTransferPasteboard = nil;
if (aType === CPStringPboardType)
return _dataTransfer.getData(aType);
return [CPPropertyListSerialization propertyListFromData:[self dataForType:aType] format:CPPropertyListUnknownFormat errorDescription:nil];
return [CPPropertyListSerialization propertyListFromData:[self dataForType:aType] format:CPPropertyListUnknownFormat];
}
@end
+5
View File
@@ -200,3 +200,8 @@ function _CPRaiseInvalidAbstractInvocation(anObject, aSelector)
{
[CPException raise:CPInvalidArgumentException reason:@"*** -" + sel_getName(aSelector) + @" cannot be sent to an abstract object of class " + [anObject className] + @": Create a concrete instance!"];
}
function _CPReportLenientDeprecation(/*Class*/ aClass, /*SEL*/ oldSelector, /*SEL*/ newSelector)
{
console.warn("[" + CPStringFromClass(aClass) + " " + CPStringFromSelector(oldSelector) + "] is deprecated, using " + CPStringFromSelector(newSelector) + " instead.");
}
+20 -2
View File
@@ -33,14 +33,32 @@ CPPropertyList280NorthFormat_v1_0 = kCFPropertyList280NorthFormat_v1_0;
{
}
+ (CPData)dataFromPropertyList:(id)aPlist format:(CPPropertyListFormat)aFormat errorDescription:({CPString})anErrorString
+ (CPData)dataFromPropertyList:(id)aPlist format:(CPPropertyListFormat)aFormat
{
return CPPropertyListCreateData(aPlist, aFormat);
}
+ (id)propertyListFromData:(CPData)data format:(CSPropertyListFormat)aFormat errorDescription:({CPString})errorString
+ (id)propertyListFromData:(CPData)data format:(CPPropertyListFormat)aFormat
{
return CPPropertyListCreateFromData(data, aFormat);
}
@end
@implementation CPPropertyListSerialization (Deprecated)
+ (CPData)dataFromPropertyList:(id)aPlist format:(CPPropertyListFormat)aFormat errorDescription:(id)anErrorString
{
_CPReportLenientDeprecation(self, _cmd, @selector(dataFromPropertyList:format:));
return [self dataFromPropertyList:aPlist format:aFormat];
}
+ (id)propertyListFromData:(CPData)data format:(CPPropertyListFormat)aFormat errorDescription:(id)errorString
{
_CPReportLenientDeprecation(self, _cmd, @selector(propertyListFromData:format:));
return [self propertyListFromData:data format:aFormat];
}
@end
+3 -3
View File
@@ -278,16 +278,16 @@ var CPURLConnectionDelegate = nil;
@implementation CPURLConnection (Deprecated)
+ (CPData)sendSynchronousRequest:(CPURLRequest)aRequest returningResponse:({CPURLResponse})aURLResponse error:({CPError})anError
+ (CPData)sendSynchronousRequest:(CPURLRequest)aRequest returningResponse:({CPURLResponse})aURLResponse error:(id)anError
{
CPLog.warn("[CPURLConnecton sendSynchronousRequest:returningResponse:error:] is deprecated, using [CPURLConnecton sendSynchronousRequest:returningResponse:] instead.");
_CPReportLenientDeprecation(self, _cmd, @selector(sendSynchronousRequest:returningResponse:));
return [self sendSynchronousRequest:aRequest returningResponse:aURLResponse];
}
- (HTTPRequest)_XMLHTTPRequest
{
CPLog.warn("[CPURLConnecton _XMLHTTPRequest] is deprecated, using _HTTPRequest instead.");
_CPReportLenientDeprecation(self, _cmd, @selector(_HTTPRequest));
return [self _HTTPRequest];
}
+9 -9
View File
@@ -332,7 +332,7 @@ var _plist_traverseNextNode = function(anXMLNode, stayWithin, stack)
return NULL;
}
CFPropertyList.propertyListFromData = function(/*Data*/ aData)
CFPropertyList.propertyListFromData = function(/*Data*/ aData, /*Format*/ aFormat)
{
return CFPropertyList.propertyListFromString(aData.encodedString(), aFormat);
}
@@ -566,30 +566,30 @@ exports.kCFPropertyList280NorthFormat_v1_0 = CFPropertyList.Format280North_v1_
exports.CFPropertyListCreateFromXMLData = function(/*Data*/ data)
{
return CFPropertyList.createFromDataWithFormat(data, CFPropertyList.FormatXML_v1_0);
return CFPropertyList.propertyListFromData(data, CFPropertyList.FormatXML_v1_0);
}
exports.CFPropertyListCreateXMLData = function(/*PropertyList*/ aPropertyList)
{
return aPropertyList.createDataWithFormat(CFPropertyList.FormatXML_v1_0);
return CFPropertyList.dataFromPropertyList(aPropertyList, CFPropertyList.FormatXML_v1_0);
}
exports.CFPropertyListCreateFrom280NorthData = function(/*Data*/ data)
{
return CFPropertyList.createFromDataWithFormat(data, CFPropertyList.Format280North_v1_0);
return CFPropertyList.propertyListFromData(data, CFPropertyList.Format280North_v1_0);
}
exports.CFPropertyListCreate280NorthData = function(/*PropertyList*/ aPropertyList)
{
return aPropertyList.createDataWithFormat(CFPropertyList.Format280North_v1_0);
return CFPropertyList.dataFromPropertyList(aPropertyList, CFPropertyList.Format280North_v1_0);
}
exports.CPPropertyListCreateFromData = function(/*PropertyList*/ aPropertyList)
exports.CPPropertyListCreateFromData = function(/*CFData*/ data, /*Format*/ aFormat)
{
return CFPropertyList.createFromDataWithFormat(aPropertyList);
return CFPropertyList.propertyListFromData(data, aFormat);
}
exports.CPPropertyListCreateData = function(/*PropertyList*/ aPropertyList)
exports.CPPropertyListCreateData = function(/*PropertyList*/ aPropertyList, /*Format*/ aFormat)
{
return aPropertyList.createDataWithFormat(aPropertyList)
return CFPropertyList.dataFromPropertyList(aPropertyList, aFormat);
}