Revision: 2640
http://skim-app.svn.sourceforge.net/skim-app/?rev=2640&view=rev
Author: hofman
Date: 2007-08-12 16:12:01 -0700 (Sun, 12 Aug 2007)
Log Message:
-----------
Allow URL or path as a string on the pasteboard.
Modified Paths:
--------------
trunk/SKDocumentController.m
trunk/SKDownloadController.m
Modified: trunk/SKDocumentController.m
===================================================================
--- trunk/SKDocumentController.m 2007-08-12 14:44:55 UTC (rev 2639)
+++ trunk/SKDocumentController.m 2007-08-12 23:12:01 UTC (rev 2640)
@@ -138,7 +138,7 @@
- (id)openDocumentWithContentsOfPasteboard:(NSPasteboard *)pboard
error:(NSError **)outError {
// allow any filter services to convert to TIFF data if we can't get PDF
or PS directly
pboard = [NSPasteboard pasteboardByFilteringTypesInPasteboard:pboard];
- NSString *pboardType = [pboard availableTypeFromArray:[NSArray
arrayWithObjects:NSPDFPboardType, NSPostScriptPboardType, NSTIFFPboardType,
NSURLPboardType, SKWeblocFilePboardType, nil]];
+ NSString *pboardType = [pboard availableTypeFromArray:[NSArray
arrayWithObjects:NSPDFPboardType, NSPostScriptPboardType, NSTIFFPboardType,
NSURLPboardType, SKWeblocFilePboardType, NSStringPboardType, nil]];
id document = nil;
if ([pboardType isEqualToString:NSPDFPboardType] || [pboardType
isEqualToString:NSPostScriptPboardType] || [pboardType
isEqualToString:NSTIFFPboardType]) {
@@ -166,13 +166,18 @@
*outError = error;
}
- } else if ([pboardType isEqualToString:NSURLPboardType] || [pboardType
isEqualToString:SKWeblocFilePboardType]) {
+ } else if ([pboardType isEqualToString:NSURLPboardType] || [pboardType
isEqualToString:SKWeblocFilePboardType] || [pboardType
isEqualToString:NSStringPboardType]) {
NSURL *theURL = nil;
if ([pboardType isEqualToString:NSURLPboardType]) {
theURL = [NSURL URLFromPasteboard:pboard];
} else if ([pboardType isEqualToString:SKWeblocFilePboardType]) {
theURL = [NSURL URLWithString:[pboard
stringForType:SKWeblocFilePboardType]];
+ } else if ([pboardType isEqualToString:NSStringPboardType]) {
+ NSString *string = [pboard stringForType:NSStringPboardType];
+ theURL = [NSURL URLWithString:string];
+ if (theURL == nil && [[NSFileManager defaultManager]
fileExistsAtPath:string])
+ theURL = [NSURL fileURLWithPath:string];
}
if ([theURL isFileURL]) {
document = [self openDocumentWithContentsOfURL:theURL display:YES
error:outError];
@@ -217,7 +222,7 @@
- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)anItem {
if ([anItem action] == @selector(newDocumentFromClipboard:)) {
NSPasteboard *pboard = [NSPasteboard
pasteboardByFilteringTypesInPasteboard:[NSPasteboard generalPasteboard]];
- return ([[pboard types] firstObjectCommonWithArray:[NSArray
arrayWithObjects:NSPDFPboardType, NSPostScriptPboardType, NSTIFFPboardType,
nil]] != nil);
+ return ([pboard availableTypeFromArray:[NSArray
arrayWithObjects:NSPDFPboardType, NSPostScriptPboardType, NSTIFFPboardType,
NSURLPboardType, SKWeblocFilePboardType, NSStringPboardType, nil]] != nil);
} else if ([super respondsToSelector:_cmd]) {
return [super validateUserInterfaceItem:anItem];
} else
Modified: trunk/SKDownloadController.m
===================================================================
--- trunk/SKDownloadController.m 2007-08-12 14:44:55 UTC (rev 2639)
+++ trunk/SKDownloadController.m 2007-08-12 23:12:01 UTC (rev 2640)
@@ -186,7 +186,7 @@
- (NSDragOperation)tableView:(NSTableView*)tv validateDrop:(id
<NSDraggingInfo>)info proposedRow:(int)row
proposedDropOperation:(NSTableViewDropOperation)op {
NSPasteboard *pboard = [info draggingPasteboard];
- NSString *type = [pboard availableTypeFromArray:[NSArray
arrayWithObjects:NSURLPboardType, SKWeblocFilePboardType, nil]];
+ NSString *type = [pboard availableTypeFromArray:[NSArray
arrayWithObjects:NSURLPboardType, SKWeblocFilePboardType, NSStringPboardType,
nil]];
if (type) {
[tv setDropRow:-1 dropOperation:NSTableViewDropOn];
@@ -197,13 +197,18 @@
- (BOOL)tableView:(NSTableView*)tv acceptDrop:(id <NSDraggingInfo>)info
row:(int)row dropOperation:(NSTableViewDropOperation)op {
NSPasteboard *pboard = [info draggingPasteboard];
- NSString *type = [pboard availableTypeFromArray:[NSArray
arrayWithObjects:NSURLPboardType, SKWeblocFilePboardType, nil]];
+ NSString *type = [pboard availableTypeFromArray:[NSArray
arrayWithObjects:NSURLPboardType, SKWeblocFilePboardType, NSStringPboardType,
nil]];
NSURL *theURL;
if ([type isEqualToString:NSURLPboardType]) {
theURL = [NSURL URLFromPasteboard:pboard];
} else if ([type isEqualToString:SKWeblocFilePboardType]) {
theURL = [NSURL URLWithString:[pboard
stringForType:SKWeblocFilePboardType]];
+ } else if ([type isEqualToString:NSStringPboardType]) {
+ NSString *string = [pboard stringForType:NSStringPboardType];
+ theURL = [NSURL URLWithString:string];
+ if (theURL == nil && [[NSFileManager defaultManager]
fileExistsAtPath:string])
+ theURL = [NSURL fileURLWithPath:string];
}
if ([theURL isFileURL]) {
if ([[NSDocumentController sharedDocumentController]
openDocumentWithContentsOfURL:theURL display:YES error:NULL])
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit