Revision: 7810
          http://skim-app.svn.sourceforge.net/skim-app/?rev=7810&view=rev
Author:   hofman
Date:     2012-12-06 12:38:41 +0000 (Thu, 06 Dec 2012)
Log Message:
-----------
Use newer NSURL method to check for file existence. Move unqiueFileURL to NSURL 
category. Some more replacement of path based code to URL based code.

Modified Paths:
--------------
    trunk/NSDocument_SKExtensions.m
    trunk/NSFileManager_SKExtensions.h
    trunk/NSFileManager_SKExtensions.m
    trunk/NSURL_SKExtensions.h
    trunk/NSURL_SKExtensions.m
    trunk/SKAttachmentEmailer.m
    trunk/SKBookmark.m
    trunk/SKConversionProgressController.h
    trunk/SKConversionProgressController.m
    trunk/SKDocumentController.m
    trunk/SKDownloadController.m
    trunk/SKDragImageView.m
    trunk/SKFileUpdateChecker.m
    trunk/SKMainDocument.m
    trunk/SKMainWindowController_UI.m
    trunk/SKNoteWindowController.m
    trunk/SKNotesDocument.m
    trunk/SKTemplateManager.m

Modified: trunk/NSDocument_SKExtensions.m
===================================================================
--- trunk/NSDocument_SKExtensions.m     2012-11-30 16:26:30 UTC (rev 7809)
+++ trunk/NSDocument_SKExtensions.m     2012-12-06 12:38:41 UTC (rev 7810)
@@ -290,7 +290,7 @@
 - (BOOL)isPDFDocument { return NO; }
 
 - (void)handleRevertScriptCommand:(NSScriptCommand *)command {
-    if ([self fileURL] && [[NSFileManager defaultManager] 
fileExistsAtURL:[self fileURL]]) {
+    if ([self fileURL] && [[self fileURL] 
checkResourceIsReachableAndReturnError:NULL]) {
         if ([self revertToContentsOfURL:[self fileURL] ofType:[self fileType] 
error:NULL] == NO) {
             [command setScriptErrorNumber:NSInternalScriptError];
             [command setScriptErrorString:@"Revert failed."];

Modified: trunk/NSFileManager_SKExtensions.h
===================================================================
--- trunk/NSFileManager_SKExtensions.h  2012-11-30 16:26:30 UTC (rev 7809)
+++ trunk/NSFileManager_SKExtensions.h  2012-12-06 12:38:41 UTC (rev 7810)
@@ -41,13 +41,10 @@
 
 @interface NSFileManager (SKExtensions)
 
-- (BOOL)fileExistsAtURL:(NSURL *)aURL;
-
 - (BOOL)isTrashedFileAtURL:(NSURL *)aURL;
 
 - (NSArray *)applicationSupportDirectoryURLs;
 
-- (NSURL *)uniqueFileURL:(NSURL *)fileURL;
 - (NSURL *)uniqueChewableItemsDirectoryURL;
 - (NSURL *)temporaryDirectoryURL;
 

Modified: trunk/NSFileManager_SKExtensions.m
===================================================================
--- trunk/NSFileManager_SKExtensions.m  2012-11-30 16:26:30 UTC (rev 7809)
+++ trunk/NSFileManager_SKExtensions.m  2012-12-06 12:38:41 UTC (rev 7810)
@@ -41,10 +41,6 @@
 
 @implementation NSFileManager (SKExtensions)
 
-- (BOOL)fileExistsAtURL:(NSURL *)aURL {
-    return [self fileExistsAtPath:[aURL path]];
-}
-
 - (BOOL)isTrashedFileAtURL:(NSURL *)aURL {
     NSCParameterAssert([aURL isFileURL]);    
     FSRef fileRef;
@@ -62,24 +58,13 @@
     if (applicationSupportDirectoryURLs == nil) {
         NSMutableArray *urlArray = [NSMutableArray array];
         NSString *appName = [[NSBundle mainBundle] 
objectForInfoDictionaryKey:(NSString *)kCFBundleNameKey];
-        for (NSURL *url in [[NSFileManager defaultManager] 
URLsForDirectory:NSApplicationSupportDirectory inDomains:NSAllDomainsMask])
+        for (NSURL *url in [self 
URLsForDirectory:NSApplicationSupportDirectory inDomains:NSAllDomainsMask])
             [urlArray addObject:[url URLByAppendingPathComponent:appName]];
         applicationSupportDirectoryURLs = [urlArray copy];
     }
     return applicationSupportDirectoryURLs;
 }
 
-- (NSURL *)uniqueFileURL:(NSURL *)fileURL {
-    NSURL *uniqueFileURL = fileURL;
-    NSURL *baseURL = [fileURL URLByDeletingLastPathComponent];
-    NSString *baseName = [[fileURL lastPathComponent] 
stringByDeletingPathExtension];
-    NSString *extension = [fileURL pathExtension];
-    NSInteger i = 0;
-    while ([self fileExistsAtURL:uniqueFileURL])
-        uniqueFileURL = [baseURL URLByAppendingPathComponent:[[baseName 
stringByAppendingFormat:@"-%ld", (long)++i] 
stringByAppendingPathExtension:extension]];
-    return uniqueFileURL;
-}
-
 - (NSURL *)uniqueChewableItemsDirectoryURL {
     // chewable items are automatically cleaned up at restart, and it's hidden 
from the user
     static NSURL *chewableItemsDirectoryURL = nil;
@@ -89,7 +74,7 @@
             NSURL *chewableURL = (NSURL 
*)CFURLCreateFromFSRef(kCFAllocatorDefault, &chewableRef);
             NSString *appName = [[NSBundle mainBundle] 
objectForInfoDictionaryKey:(NSString *)kCFBundleNameKey];
             chewableItemsDirectoryURL = [[chewableURL 
URLByAppendingPathComponent:appName] copy];
-            if ([self fileExistsAtURL:chewableItemsDirectoryURL] == NO)
+            if ([chewableItemsDirectoryURL 
checkResourceIsReachableAndReturnError:NULL] == NO)
                 [self createDirectoryAtPath:[chewableItemsDirectoryURL path] 
withIntermediateDirectories:NO attributes:nil error:NULL];
             [chewableURL release];
        }
@@ -101,7 +86,7 @@
         CFUUIDRef uuid = CFUUIDCreate(NULL);
         uniqueURL = [chewableItemsDirectoryURL 
URLByAppendingPathComponent:[(NSString *)CFUUIDCreateString(NULL, uuid) 
autorelease]];
         CFRelease(uuid);
-    } while ([self fileExistsAtURL:uniqueURL]);
+    } while ([uniqueURL checkResourceIsReachableAndReturnError:NULL]);
     
     [self createDirectoryAtPath:[uniqueURL path] 
withIntermediateDirectories:NO attributes:nil error:NULL];
    
@@ -116,7 +101,7 @@
         temporaryDirectoryURL = [[NSURL alloc] initFileURLWithPath:[self 
stringWithFileSystemRepresentation:tempPath length:strlen(tempPath)] ];
         free(template);
     }
-    if ([self fileExistsAtURL:temporaryDirectoryURL] == NO)
+    if ([temporaryDirectoryURL checkResourceIsReachableAndReturnError:NULL] == 
NO)
         [self createDirectoryAtPath:[temporaryDirectoryURL path] 
withIntermediateDirectories:YES attributes:nil error:NULL];
     return temporaryDirectoryURL;
 }

Modified: trunk/NSURL_SKExtensions.h
===================================================================
--- trunk/NSURL_SKExtensions.h  2012-11-30 16:26:30 UTC (rev 7809)
+++ trunk/NSURL_SKExtensions.h  2012-12-06 12:38:41 UTC (rev 7810)
@@ -49,6 +49,8 @@
 - (NSURL *)URLReplacingPathExtension:(NSString *)ext;
 - (NSString *)lastPathComponentReplacingPathExtension:(NSString *)ext;
 
+- (NSURL *)uniqueFileURL;
+
 - (NSAttributedString *)icon;
 - (NSAttributedString *)smallIcon;
 

Modified: trunk/NSURL_SKExtensions.m
===================================================================
--- trunk/NSURL_SKExtensions.m  2012-11-30 16:26:30 UTC (rev 7809)
+++ trunk/NSURL_SKExtensions.m  2012-12-06 12:38:41 UTC (rev 7810)
@@ -117,6 +117,17 @@
     return [[self URLReplacingPathExtension:ext] lastPathComponent];
 }
 
+- (NSURL *)uniqueFileURL {
+    NSURL *uniqueFileURL = self;
+    NSURL *baseURL = [self URLByDeletingLastPathComponent];
+    NSString *baseName = [[self lastPathComponent] 
stringByDeletingPathExtension];
+    NSString *extension = [self pathExtension];
+    NSInteger i = 0;
+    while ([uniqueFileURL checkResourceIsReachableAndReturnError:NULL])
+        uniqueFileURL = [baseURL URLByAppendingPathComponent:[[baseName 
stringByAppendingFormat:@"-%ld", (long)++i] 
stringByAppendingPathExtension:extension]];
+    return uniqueFileURL;
+}
+
 - (NSAttributedString *)icon {
     NSAttributedString *attrString = nil;
     

Modified: trunk/SKAttachmentEmailer.m
===================================================================
--- trunk/SKAttachmentEmailer.m 2012-11-30 16:26:30 UTC (rev 7809)
+++ trunk/SKAttachmentEmailer.m 2012-12-06 12:38:41 UTC (rev 7810)
@@ -126,7 +126,7 @@
 }
 
 - (void)taskFinished:(NSNotification *)notification {
-    if ([[NSFileManager defaultManager] fileExistsAtURL:fileURL] && 
[[notification object] terminationStatus] == 0)
+    if ([fileURL checkResourceIsReachableAndReturnError:NULL] && 
[[notification object] terminationStatus] == 0)
         [self emailAttachmentFile];
     else
         NSBeep();

Modified: trunk/SKBookmark.m
===================================================================
--- trunk/SKBookmark.m  2012-11-30 16:26:30 UTC (rev 7809)
+++ trunk/SKBookmark.m  2012-12-06 12:38:41 UTC (rev 7810)
@@ -632,7 +632,7 @@
                 if (aURL == nil) {
                     [[NSScriptCommand currentCommand] 
setScriptErrorNumber:NSRequiredArgumentsMissingScriptError];
                     [[NSScriptCommand currentCommand] 
setScriptErrorString:@"New file bookmark requires a file."];
-                } else if ([[NSFileManager defaultManager] 
fileExistsAtURL:aURL] == NO) {
+                } else if ([aURL checkResourceIsReachableAndReturnError:NULL] 
== NO) {
                     [[NSScriptCommand currentCommand] 
setScriptErrorNumber:NSArgumentsWrongScriptError];
                     [[NSScriptCommand currentCommand] 
setScriptErrorString:@"New file bookmark requires an existing file."];
                 } else if ((docClass = [[NSDocumentController 
sharedDocumentController] documentClassForContentsOfURL:aURL])) {

Modified: trunk/SKConversionProgressController.h
===================================================================
--- trunk/SKConversionProgressController.h      2012-11-30 16:26:30 UTC (rev 
7809)
+++ trunk/SKConversionProgressController.h      2012-12-06 12:38:41 UTC (rev 
7810)
@@ -46,7 +46,7 @@
     NSString *fileType;
     CGPSConverterRef converter;
     NSTask *task;
-    NSString *outputFile;
+    NSURL *outputFileURL;
     NSData *outputData;
     BOOL cancelled;
 }

Modified: trunk/SKConversionProgressController.m
===================================================================
--- trunk/SKConversionProgressController.m      2012-11-30 16:26:30 UTC (rev 
7809)
+++ trunk/SKConversionProgressController.m      2012-12-06 12:38:41 UTC (rev 
7810)
@@ -136,7 +136,7 @@
 
 - (void)dealloc {
     SKCFDESTROY(converter);
-    SKDESTROY(outputFile);
+    SKDESTROY(outputFileURL);
     SKDESTROY(outputData);
     SKDESTROY(task);
     SKDESTROY(cancelButton);
@@ -310,15 +310,15 @@
 - (void)taskFinished:(NSNotification *)notification {
     NSData *outData = nil;
     BOOL success = [[notification object] terminationStatus] == 0 &&
-                   [[NSFileManager defaultManager] 
fileExistsAtPath:outputFile] &&
+                   [outputFileURL checkResourceIsReachableAndReturnError:NULL] 
&&
                    cancelled == NO;
     
     SKDESTROY(task);
     
     if (success)
-        outData = [NSData dataWithContentsOfFile:outputFile];
+        outData = [NSData dataWithContentsOfURL:outputFileURL];
     
-    if ([[outputFile pathExtension] isCaseInsensitiveEqual:@"ps"]) {
+    if ([[outputFileURL pathExtension] isCaseInsensitiveEqual:@"ps"]) {
         [self convertPostScriptData:outData];
     } else {
         if (success)
@@ -335,23 +335,22 @@
     cancelled = NO;
     
     NSFileManager *fm = [NSFileManager defaultManager];
-    NSString *dviFile = [dviURL path];
     NSString *commandName = [toolPath lastPathComponent];
     NSURL *tmpDirURL = [fm URLForDirectory:NSItemReplacementDirectory 
inDomain:NSUserDomainMask appropriateForURL:dviURL create:YES error:NULL];
     BOOL outputPS = [commandName isEqualToString:@"dvips"];
-    NSString *outFile = [[tmpDirURL URLByAppendingPathComponent:[dviURL 
lastPathComponentReplacingPathExtension:outputPS ? @"ps" : @"pdf"]] path];
-    NSArray *arguments = [commandName isEqualToString:@"dvipdf"] ? [NSArray 
arrayWithObjects:dviFile, outFile, nil] : [NSArray arrayWithObjects:@"-o", 
outFile, dviFile, nil];
+    NSURL *outFileURL = [tmpDirURL URLByAppendingPathComponent:[dviURL 
lastPathComponentReplacingPathExtension:outputPS ? @"ps" : @"pdf"]];
+    NSArray *arguments = [commandName isEqualToString:@"dvipdf"] ? [NSArray 
arrayWithObjects:[dviURL path], [outFileURL path], nil] : [NSArray 
arrayWithObjects:@"-o", [outFileURL path], [dviURL path], nil];
     
     task = [[NSTask alloc] init];
     [task setLaunchPath:toolPath];
     [task setArguments:arguments];
-    [task setCurrentDirectoryPath:[dviFile stringByDeletingLastPathComponent]];
+    [task setCurrentDirectoryPath:[[dviURL URLByDeletingLastPathComponent] 
path]];
     [task setStandardOutput:[NSFileHandle fileHandleWithNullDevice]];
     [task setStandardError:[NSFileHandle fileHandleWithNullDevice]];
     
     [[NSNotificationCenter defaultCenter] addObserver:self 
selector:@selector(taskFinished:) name:NSTaskDidTerminateNotification 
object:task];
     
-    outputFile = [outFile retain];
+    outputFileURL = [outFileURL retain];
     
     NSInteger rv = [self runModalBlock:^{
         @try {

Modified: trunk/SKDocumentController.m
===================================================================
--- trunk/SKDocumentController.m        2012-11-30 16:26:30 UTC (rev 7809)
+++ trunk/SKDocumentController.m        2012-12-06 12:38:41 UTC (rev 7810)
@@ -314,7 +314,7 @@
     NSURL *fileURL = [[BDAlias aliasWithData:[setup 
objectForKey:SKDocumentSetupAliasKey]] fileURL];
     if(fileURL == nil && [setup objectForKey:SKDocumentSetupFileNameKey])
         fileURL = [NSURL fileURLWithPath:[setup 
objectForKey:SKDocumentSetupFileNameKey]];
-    if(fileURL && [[NSFileManager defaultManager] fileExistsAtURL:fileURL] && 
NO == [[NSFileManager defaultManager] isTrashedFileAtURL:fileURL]) {
+    if(fileURL && [fileURL checkResourceIsReachableAndReturnError:NULL] && NO 
== [[NSFileManager defaultManager] isTrashedFileAtURL:fileURL]) {
         if ((document = [self documentForURL:fileURL])) {
             // the document was already open, don't call makeWindowControllers 
because that adds new empty windows
             [document applySetup:setup];
@@ -344,7 +344,7 @@
         NSAppleEventDescriptor *event = [[NSAppleEventManager 
sharedAppleEventManager] currentAppleEvent];
         if ([event eventID] == kAEOpenDocuments && [event 
descriptorForKeyword:keyAESearchText]) {
             NSURL *pdfURL = [absoluteURL URLReplacingPathExtension:@"pdf"];
-            if ([[NSFileManager defaultManager] fileExistsAtURL:pdfURL])
+            if ([pdfURL checkResourceIsReachableAndReturnError:NULL])
                 absoluteURL = pdfURL;
         }
     } else if ([ws type:type conformsToType:SKFolderDocumentType]) {

Modified: trunk/SKDownloadController.m
===================================================================
--- trunk/SKDownloadController.m        2012-11-30 16:26:30 UTC (rev 7809)
+++ trunk/SKDownloadController.m        2012-12-06 12:38:41 UTC (rev 7810)
@@ -481,7 +481,7 @@
             menuItem = [menu addItemWithTitle:NSLocalizedString(@"Resume", 
@"Menu item title") action:@selector(resumeDownload:) target:self];
             [menuItem setRepresentedObject:download];
         }
-        if ([download status] == SKDownloadStatusFinished && [[NSFileManager 
defaultManager] fileExistsAtURL:[download fileURL]]) {
+        if ([download status] == SKDownloadStatusFinished && [[download 
fileURL] checkResourceIsReachableAndReturnError:NULL]) {
             menuItem = [menu addItemWithTitle:[NSLocalizedString(@"Open", 
@"Menu item title") stringByAppendingEllipsis] 
action:@selector(openDownloadedFile:) target:self];
             [menuItem setRepresentedObject:download];
             

Modified: trunk/SKDragImageView.m
===================================================================
--- trunk/SKDragImageView.m     2012-11-30 16:26:30 UTC (rev 7809)
+++ trunk/SKDragImageView.m     2012-12-06 12:38:41 UTC (rev 7810)
@@ -40,6 +40,7 @@
 #import "NSMenu_SKExtensions.h"
 #import "NSEvent_SKExtensions.h"
 #import "NSFileManager_SKExtensions.h"
+#import "NSURL_SKExtensions.h"
 
 @implementation SKDragImageView
 
@@ -57,7 +58,7 @@
     
     NSFileManager *fm = [NSFileManager defaultManager];
     NSURL *fileURL = [[fm temporaryDirectoryURL] 
URLByAppendingPathComponent:@"SkimNote.tiff"];
-    fileURL = [fm uniqueFileURL:fileURL];
+    fileURL = [fileURL uniqueFileURL];
     [[image TIFFRepresentation] writeToURL:fileURL atomically:YES];
     [[NSWorkspace sharedWorkspace] openURL:fileURL];
 }

Modified: trunk/SKFileUpdateChecker.m
===================================================================
--- trunk/SKFileUpdateChecker.m 2012-11-30 16:26:30 UTC (rev 7809)
+++ trunk/SKFileUpdateChecker.m 2012-12-06 12:38:41 UTC (rev 7810)
@@ -181,22 +181,23 @@
     fucFlags.receivedFileUpdateNotification = NO;
 }
 
-- (BOOL)canUpdateFromFile:(NSString *)fileName {
-    NSString *extension = [fileName pathExtension];
+- (BOOL)canUpdateFromURL:(NSURL *)fileURL {
+    NSString *extension = [fileURL pathExtension];
     BOOL isDVI = NO;
     if (extension) {
         NSWorkspace *ws = [NSWorkspace sharedWorkspace];
-        NSString *theUTI = [ws typeOfFile:[[fileName 
stringByStandardizingPath] stringByResolvingSymlinksInPath] error:NULL];
+        NSString *theUTI = [ws typeOfFile:[[[fileURL URLByStandardizingPath] 
URLByResolvingSymlinksInPath] path] error:NULL];
         if ([extension isCaseInsensitiveEqual:@"pdfd"] || [ws type:theUTI 
conformsToType:@"net.sourceforge.skim-app.pdfd"]) {
-            fileName = [[NSFileManager defaultManager] 
bundledFileWithExtension:@"pdf" inPDFBundleAtPath:fileName error:NULL];
+            NSString *fileName = [[NSFileManager defaultManager] 
bundledFileWithExtension:@"pdf" inPDFBundleAtPath:[fileURL path] error:NULL];
             if (fileName == nil)
                 return NO;
+            fileURL = [NSURL fileURLWithPath:fileName];
         } else if ([extension isCaseInsensitiveEqual:@"dvi"] || [extension 
isCaseInsensitiveEqual:@"xdv"]) {
             isDVI = YES;
         }
     }
     
-    NSFileHandle *fh = [NSFileHandle fileHandleForReadingAtPath:fileName];
+    NSFileHandle *fh = [NSFileHandle fileHandleForReadingFromURL:fileURL 
error:NULL];
     
     // read the last 1024 bytes of the file (or entire file); Adobe's spec 
says they allow %%EOF anywhere in that range
     unsigned long long fileEnd = [fh seekToEndOfFile];
@@ -216,14 +217,14 @@
 }
 
 - (void)fileUpdated {
-    NSString *fileName = [[document fileURL] path];
+    NSURL *fileURL = [document fileURL];
     
     // should never happen
     if (fucFlags.isUpdatingFile)
-        NSLog(@"*** already busy updating file %@", fileName);
+        NSLog(@"*** already busy updating file %@", [fileURL path]);
     
     if ([[NSUserDefaults standardUserDefaults] 
boolForKey:SKAutoCheckFileUpdateKey] &&
-        [[NSFileManager defaultManager] fileExistsAtPath:fileName]) {
+        [fileURL checkResourceIsReachableAndReturnError:NULL]) {
         
         fucFlags.fileChangedOnDisk = YES;
         
@@ -236,7 +237,7 @@
         if ([docWindow attachedSheet]) {
             [[NSNotificationCenter defaultCenter] addObserver:self 
selector:@selector(handleWindowDidEndSheetNotification:) 
                                                          
name:NSWindowDidEndSheetNotification object:docWindow];
-        } else if ([self canUpdateFromFile:fileName]) {
+        } else if ([self canUpdateFromURL:fileURL]) {
             BOOL shouldAutoUpdate = fucFlags.autoUpdate || [[NSUserDefaults 
standardUserDefaults] boolForKey:SKAutoReloadFileUpdateKey];
             BOOL documentHasEdits = [document isDocumentEdited] || [[document 
notes] count] > 0;
             if (fucFlags.disableAutoReload == NO && shouldAutoUpdate && 
documentHasEdits == NO) {

Modified: trunk/SKMainDocument.m
===================================================================
--- trunk/SKMainDocument.m      2012-11-30 16:26:30 UTC (rev 7809)
+++ trunk/SKMainDocument.m      2012-12-06 12:38:41 UTC (rev 7810)
@@ -424,7 +424,7 @@
     
     if ([[NSUserDefaults standardUserDefaults] 
boolForKey:SKAutoSaveSkimNotesKey]) {
         NSURL *notesURL = [absoluteURL URLReplacingPathExtension:@"skim"];
-        BOOL fileExists = [fm fileExistsAtURL:notesURL];
+        BOOL fileExists = [notesURL 
checkResourceIsReachableAndReturnError:NULL];
         
         if (fileExists && (saveOperation == NSSaveAsOperation || saveOperation 
== NSSaveToOperation)) {
             NSAlert *alert = [NSAlert alertWithMessageText:[NSString 
stringWithFormat:NSLocalizedString(@"\"%@\" already exists. Do you want to 
replace it?", @"Message in alert dialog"), [notesURL lastPathComponent]]
@@ -831,7 +831,7 @@
                 }
                 if (pdfDoc) {
                     NSURL *url = [absoluteURL 
URLReplacingPathExtension:@"skim"];
-                    if ([[NSFileManager defaultManager] fileExistsAtURL:url]) {
+                    if ([url checkResourceIsReachableAndReturnError:NULL]) {
                         NSInteger readOption = [[NSUserDefaults 
standardUserDefaults] integerForKey:SKReadMissingNotesFromSkimFileOptionKey];
                         if (readOption == NSAlertOtherReturn) {
                             NSAlert *alert = [NSAlert 
alertWithMessageText:NSLocalizedString(@"Found Separate Notes", @"Message in 
alert dialog") 
@@ -1153,7 +1153,7 @@
 
 - (IBAction)saveArchive:(id)sender {
     NSURL *fileURL = [self fileURL];
-    if (fileURL && [[NSFileManager defaultManager] fileExistsAtURL:fileURL] && 
[self isDocumentEdited] == NO) {
+    if (fileURL && [fileURL checkResourceIsReachableAndReturnError:NULL] && 
[self isDocumentEdited] == NO) {
         NSSavePanel *sp = [NSSavePanel savePanel];
         [sp setAllowedFileTypes:[NSArray arrayWithObjects:@"tgz", nil]];
         [sp setCanCreateDirectories:YES];
@@ -1169,8 +1169,8 @@
 }
 
 - (IBAction)emailArchive:(id)sender {
-    NSString *path = [[self fileURL] path];
-    if (path && [[NSFileManager defaultManager] fileExistsAtPath:path] && 
[self isDocumentEdited] == NO) {
+    NSURL *fileURL = [self fileURL];
+    if ([fileURL checkResourceIsReachableAndReturnError:NULL] && [self 
isDocumentEdited] == NO) {
         NSURL *tmpDirURL = [[NSFileManager defaultManager] 
uniqueChewableItemsDirectoryURL];
         NSURL *tmpFileURL = [tmpDirURL URLByAppendingPathComponent:[[self 
fileURL] lastPathComponentReplacingPathExtension:@"tgz"]];
         [self saveArchiveToURL:tmpFileURL email:YES];
@@ -1202,7 +1202,7 @@
 
 - (IBAction)saveDiskImage:(id)sender {
     NSURL *fileURL = [self fileURL];
-    if (fileURL && [[NSFileManager defaultManager] fileExistsAtURL:fileURL] && 
[self isDocumentEdited] == NO) {
+    if (fileURL && [fileURL checkResourceIsReachableAndReturnError:NULL] && 
[self isDocumentEdited] == NO) {
         NSSavePanel *sp = [NSSavePanel savePanel];
         [sp setAllowedFileTypes:[NSArray arrayWithObjects:@"dmg", nil]];
         [sp setCanCreateDirectories:YES];
@@ -1218,8 +1218,8 @@
 }
 
 - (IBAction)emailDiskImage:(id)sender {
-    NSString *path = [[self fileURL] path];
-    if (path && [[NSFileManager defaultManager] fileExistsAtPath:path] && 
[self isDocumentEdited] == NO) {
+    NSURL *fileURL = [self fileURL];
+    if ([fileURL checkResourceIsReachableAndReturnError:NULL] && [self 
isDocumentEdited] == NO) {
         NSURL *tmpDirURL = [[NSFileManager defaultManager] 
uniqueChewableItemsDirectoryURL];
         NSURL *tmpFileURL = [tmpDirURL URLByAppendingPathComponent:[[self 
fileURL] lastPathComponentReplacingPathExtension:@"dmg"]];
         [self saveDiskImageToURL:tmpFileURL email:YES];
@@ -1231,7 +1231,7 @@
 
 - (IBAction)moveToTrash:(id)sender {
     NSURL *fileURL = [self fileURL];
-    if ([[NSFileManager defaultManager] fileExistsAtURL:fileURL]) {
+    if ([fileURL checkResourceIsReachableAndReturnError:NULL]) {
         NSURL *folderURL = [fileURL URLByDeletingLastPathComponent];
         NSString *fileName = [fileURL lastPathComponent];
         NSInteger tag = 0;
@@ -1276,7 +1276,7 @@
 
 - (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)anItem {
        if ([anItem action] == @selector(revertDocumentToSaved:)) {
-        if ([self fileURL] == nil || [[NSFileManager defaultManager] 
fileExistsAtURL:[self fileURL]] == NO)
+        if ([self fileURL] == nil || [[self fileURL] 
checkResourceIsReachableAndReturnError:NULL] == NO)
             return NO;
         return [self isDocumentEdited] || [fileUpdateChecker 
fileChangedOnDisk] ||
                NSOrderedAscending == [[self fileModificationDate] 
compare:[[[NSFileManager defaultManager] attributesOfItemAtPath:[[self fileURL] 
path] error:NULL] fileModificationDate]];
@@ -1285,9 +1285,9 @@
     } else if ([anItem action] == @selector(convertNotes:)) {
         return [[NSWorkspace sharedWorkspace] type:[self fileType] 
conformsToType:SKPDFDocumentType] && [[self pdfDocument] isLocked] == NO;
     } else if ([anItem action] == @selector(saveArchive:) || [anItem action] 
== @selector(saveDiskImage:) || [anItem action] == @selector(emailArchive:) || 
[anItem action] == @selector(emailDiskImage:)) {
-        return [self fileURL] && [[NSFileManager defaultManager] 
fileExistsAtURL:[self fileURL]] && [self isDocumentEdited] == NO;
+        return [self fileURL] && [[self fileURL] 
checkResourceIsReachableAndReturnError:NULL] && [self isDocumentEdited] == NO;
     } else if ([anItem action] == @selector(moveToTrash:)) {
-        return [self fileURL] && [[NSFileManager defaultManager] 
fileExistsAtURL:[self fileURL]];
+        return [self fileURL] && [[self fileURL] 
checkResourceIsReachableAndReturnError:NULL];
     }
     return [super validateUserInterfaceItem:anItem];
 }
@@ -1905,7 +1905,7 @@
 }
 
 - (void)handleRevertScriptCommand:(NSScriptCommand *)command {
-    if ([self fileURL] && [[NSFileManager defaultManager] 
fileExistsAtURL:[self fileURL]]) {
+    if ([self fileURL] && [[self fileURL] 
checkResourceIsReachableAndReturnError:NULL]) {
         if ([fileUpdateChecker isUpdatingFile] == NO && [self 
revertToContentsOfURL:[self fileURL] ofType:[self fileType] error:NULL] == NO) {
             [command setScriptErrorNumber:NSInternalScriptError];
             [command setScriptErrorString:@"Revert failed."];

Modified: trunk/SKMainWindowController_UI.m
===================================================================
--- trunk/SKMainWindowController_UI.m   2012-11-30 16:26:30 UTC (rev 7809)
+++ trunk/SKMainWindowController_UI.m   2012-12-06 12:38:41 UTC (rev 7810)
@@ -75,7 +75,7 @@
 #import "NSError_SKExtensions.h"
 #import "PDFView_SKExtensions.h"
 #import "NSInvocation_SKExtensions.h"
-#import "NSFileManager_SKExtensions.h"
+#import "NSURL_SKExtensions.h"
 
 #define NOTES_KEY       @"notes"
 #define SNAPSHOTS_KEY   @"snapshots"
@@ -346,7 +346,7 @@
                 data = [page TIFFDataForRect:[page boundsForBox:[pdfView 
displayBox]]];
             }
             
-            fileURL = [[NSFileManager defaultManager] uniqueFileURL:[fileURL 
URLByAppendingPathExtension:pathExt]];
+            fileURL = [[fileURL URLByAppendingPathExtension:pathExt] 
uniqueFileURL];
             if ([data writeToURL:fileURL atomically:YES])
                 return [NSArray arrayWithObjects:[fileURL lastPathComponent], 
nil];
         }
@@ -356,7 +356,7 @@
             SKSnapshotWindowController *snapshot = [self 
objectInSnapshotsAtIndex:idx];
             PDFPage *page = [[pdfView document] pageAtIndex:[snapshot 
pageIndex]];
             NSURL *fileURL = [[dropDestination 
URLByAppendingPathComponent:[self draggedFileNameForPage:page]] 
URLByAppendingPathExtension:@"tiff"];
-            fileURL = [[NSFileManager defaultManager] uniqueFileURL:fileURL];
+            fileURL = [fileURL uniqueFileURL];
             if ([[[snapshot thumbnailWithSize:0.0] TIFFRepresentation] 
writeToURL:fileURL atomically:YES])
                 return [NSArray arrayWithObjects:[fileURL lastPathComponent], 
nil];
         }

Modified: trunk/SKNoteWindowController.m
===================================================================
--- trunk/SKNoteWindowController.m      2012-11-30 16:26:30 UTC (rev 7809)
+++ trunk/SKNoteWindowController.m      2012-12-06 12:38:41 UTC (rev 7810)
@@ -55,7 +55,7 @@
 #import "NSGraphics_SKExtensions.h"
 #import "SKNoteTextView.h"
 #import "NSInvocation_SKExtensions.h"
-#import "NSFileManager_SKExtensions.h"
+#import "NSURL_SKExtensions.h"
 
 #define EM_DASH_CHARACTER (unichar)0x2014
 
@@ -348,7 +348,7 @@
             name = @"NoteImage";
         name = [name stringByAppendingPathExtension:@"tiff"];
         NSURL *fileURL = [[dropDestination URLByAppendingPathComponent:name] 
URLByAppendingPathExtension:@"tiff"];
-        fileURL = [[NSFileManager defaultManager] uniqueFileURL:fileURL];
+        fileURL = [fileURL uniqueFileURL];
         if ([[image TIFFRepresentation] writeToURL:fileURL atomically:YES])
             return [NSArray arrayWithObjects:[fileURL lastPathComponent], nil];
     }

Modified: trunk/SKNotesDocument.m
===================================================================
--- trunk/SKNotesDocument.m     2012-11-30 16:26:30 UTC (rev 7809)
+++ trunk/SKNotesDocument.m     2012-12-06 12:38:41 UTC (rev 7810)
@@ -284,7 +284,7 @@
     } else if ([ws type:SKNotesFDFDocumentType conformsToType:typeName]) {
         NSString *filename = nil;
         NSURL *pdfURL = [[self fileURL] URLReplacingPathExtension:@"pdf"];
-        if ([[NSFileManager defaultManager] fileExistsAtURL:pdfURL])
+        if ([pdfURL checkResourceIsReachableAndReturnError:NULL])
             filename = [pdfURL lastPathComponent];
         data = [self notesFDFDataForFile:filename fileIDStrings:nil];
     } else {
@@ -440,7 +440,7 @@
 - (IBAction)openPDF:(id)sender {
     NSURL *url = sourceFileURL ?: [[self fileURL] 
URLReplacingPathExtension:@"pdf"];
     NSError *error = nil;
-    if ([[NSFileManager defaultManager] fileExistsAtURL:url]) {
+    if ([url checkResourceIsReachableAndReturnError:NULL]) {
         // resolve symlinks and aliases
         NSNumber *isAlias = nil;
         url = [url URLByResolvingSymlinksInPath];
@@ -830,7 +830,7 @@
     if ([[[[[self windowControllers] objectAtIndex:0] window] toolbar] 
customizationPaletteIsRunning])
         return NO;
     else if ([[toolbarItem itemIdentifier] 
isEqualToString:SKNotesDocumentOpenPDFToolbarItemIdentifier])
-        return [[NSFileManager defaultManager] fileExistsAtURL:(sourceFileURL 
?: [[self fileURL] URLReplacingPathExtension:@"pdf"])];
+        return [(sourceFileURL ?: [[self fileURL] 
URLReplacingPathExtension:@"pdf"]) checkResourceIsReachableAndReturnError:NULL];
     return YES;
 }
 

Modified: trunk/SKTemplateManager.m
===================================================================
--- trunk/SKTemplateManager.m   2012-11-30 16:26:30 UTC (rev 7809)
+++ trunk/SKTemplateManager.m   2012-12-06 12:38:41 UTC (rev 7810)
@@ -91,7 +91,7 @@
     
     for (NSURL *appSupportURL in [[fm applicationSupportDirectoryURLs] 
arrayByAddingObject:[[NSBundle mainBundle] sharedSupportPath]]) {
         url = [[appSupportURL URLByAppendingPathComponent:TEMPLATES_DIRECTORY] 
URLByAppendingPathComponent:typeName];
-        if ([fm fileExistsAtURL:url] == NO)
+        if ([url checkResourceIsReachableAndReturnError:NULL] == NO)
             url = nil;
         else break;
     }

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to