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 Skim-app-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/skim-app-commit