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

Reply via email to