Revision: 7762
http://skim-app.svn.sourceforge.net/skim-app/?rev=7762&view=rev
Author: hofman
Date: 2012-11-01 13:09:50 +0000 (Thu, 01 Nov 2012)
Log Message:
-----------
use URL instead of path for file bookmarks
Modified Paths:
--------------
trunk/NSDocument_SKExtensions.m
trunk/SKBookmark.h
trunk/SKBookmark.m
trunk/SKBookmarkController.m
Modified: trunk/NSDocument_SKExtensions.m
===================================================================
--- trunk/NSDocument_SKExtensions.m 2012-10-31 00:34:24 UTC (rev 7761)
+++ trunk/NSDocument_SKExtensions.m 2012-11-01 13:09:50 UTC (rev 7762)
@@ -101,10 +101,9 @@
switch (addBookmarkType) {
case SKAddBookmarkTypeBookmark:
{
- NSString *path = [[self fileURL] path];
PDFPage *page = [self currentPage];
NSUInteger pageIndex = page ? [page pageIndex] :
NSNotFound;
- bookmark = [SKBookmark bookmarkWithPath:path
pageIndex:pageIndex label:label];
+ bookmark = [SKBookmark bookmarkWithURL:[self fileURL]
pageIndex:pageIndex label:label];
break;
}
case SKAddBookmarkTypeSetup:
Modified: trunk/SKBookmark.h
===================================================================
--- trunk/SKBookmark.h 2012-10-31 00:34:24 UTC (rev 7761)
+++ trunk/SKBookmark.h 2012-11-01 13:09:50 UTC (rev 7762)
@@ -50,15 +50,15 @@
SKBookmark *parent;
}
-+ (id)bookmarkWithPath:(NSString *)aPath pageIndex:(NSUInteger)aPageIndex
label:(NSString *)aLabel;
++ (id)bookmarkWithURL:(NSURL *)aURL pageIndex:(NSUInteger)aPageIndex
label:(NSString *)aLabel;
+ (id)bookmarkWithSetup:(NSDictionary *)aSetupDict label:(NSString *)aLabel;
+ (id)bookmarkFolderWithLabel:(NSString *)aLabel;
+ (id)bookmarkSessionWithSetups:(NSArray *)aSetupDicts label:(NSString
*)aLabel;
+ (id)bookmarkSeparator;
-+ (NSArray *)bookmarksForPaths:(NSArray *)paths relativeToPath:(NSString
*)basePath;
++ (NSArray *)bookmarksForURLs:(NSArray *)urls;
-- (id)initWithPath:(NSString *)aPath pageIndex:(NSUInteger)aPageIndex
label:(NSString *)aLabel;
+- (id)initWithURL:(NSURL *)aURL pageIndex:(NSUInteger)aPageIndex
label:(NSString *)aLabel;
- (id)initWithSetup:(NSDictionary *)aSetupDict label:(NSString *)aLabel;
- (id)initFolderWithChildren:(NSArray *)aChildren label:(NSString *)aLabel;
- (id)initFolderWithLabel:(NSString *)aLabel;
Modified: trunk/SKBookmark.m
===================================================================
--- trunk/SKBookmark.m 2012-10-31 00:34:24 UTC (rev 7761)
+++ trunk/SKBookmark.m 2012-11-01 13:09:50 UTC (rev 7762)
@@ -108,8 +108,8 @@
return SKBookmarkClass == self ? defaultPlaceholderBookmark : [super
allocWithZone:aZone];
}
-+ (id)bookmarkWithPath:(NSString *)aPath pageIndex:(NSUInteger)aPageIndex
label:(NSString *)aLabel {
- return [[[self alloc] initWithPath:aPath pageIndex:aPageIndex
label:aLabel] autorelease];
++ (id)bookmarkWithURL:(NSURL *)aURL pageIndex:(NSUInteger)aPageIndex
label:(NSString *)aLabel {
+ return [[[self alloc] initWithURL:aURL pageIndex:aPageIndex label:aLabel]
autorelease];
}
+ (id)bookmarkWithSetup:(NSDictionary *)aSetupDict label:(NSString *)aLabel {
@@ -128,36 +128,34 @@
return [[[self alloc] initSeparator] autorelease];
}
-+ (NSArray *)bookmarksForPaths:(NSArray *)paths relativeToPath:(NSString
*)basePath {
++ (NSArray *)bookmarksForURLs:(NSArray *)urls {
NSFileManager *fm = [NSFileManager defaultManager];
NSDocumentController *dc = [NSDocumentController sharedDocumentController];
NSMutableArray *array = [NSMutableArray array];
- for (NSString *file in paths) {
- if ([[file lastPathComponent] hasPrefix:@"."] == NO) {
- NSString *path = [basePath stringByAppendingPathComponent:file] ?:
file;
- NSString *fileType = [dc typeForContentsOfURL:[NSURL
fileURLWithPath:path] error:NULL];
- Class docClass;
- SKBookmark *bookmark;
- if ([[NSWorkspace sharedWorkspace] type:fileType
conformsToType:SKFolderDocumentType]) {
- NSArray *children = [self bookmarksForPaths:[fm
contentsOfDirectoryAtPath:path error:NULL] relativeToPath:path];
- if ([children count] && (bookmark = [[self alloc]
initFolderWithChildren:children label:[fm displayNameAtPath:path]])) {
- [array addObject:bookmark];
- [bookmark release];
- }
- } else if ((docClass = [dc documentClassForType:fileType])) {
- if ((bookmark = [[self alloc] initWithPath:path
pageIndex:([docClass isPDFDocument] ? 0 : NSNotFound) label:[fm
displayNameAtPath:path]])) {
- [array addObject:bookmark];
- [bookmark release];
- }
+ for (NSURL *url in urls) {
+ NSString *fileType = [dc typeForContentsOfURL:url error:NULL];
+ Class docClass;
+ SKBookmark *bookmark;
+ NSString *label = [fm displayNameAtPath:[url path]];
+ if ([[NSWorkspace sharedWorkspace] type:fileType
conformsToType:SKFolderDocumentType]) {
+ NSArray *children = [self bookmarksForURLs:[fm
contentsOfDirectoryAtURL:url includingPropertiesForKeys:nil
options:NSDirectoryEnumerationSkipsHiddenFiles error:NULL]];
+ if ([children count] && (bookmark = [[self alloc]
initFolderWithChildren:children label:label])) {
+ [array addObject:bookmark];
+ [bookmark release];
}
+ } else if ((docClass = [dc documentClassForType:fileType])) {
+ if ((bookmark = [[self alloc] initWithURL:url pageIndex:([docClass
isPDFDocument] ? 0 : NSNotFound) label:label])) {
+ [array addObject:bookmark];
+ [bookmark release];
+ }
}
}
return array;
}
-- (id)initWithPath:(NSString *)aPath pageIndex:(NSUInteger)aPageIndex
label:(NSString *)aLabel {
+- (id)initWithURL:(NSURL *)aURL pageIndex:(NSUInteger)aPageIndex
label:(NSString *)aLabel {
[self doesNotRecognizeSelector:_cmd];
return nil;
}
@@ -306,8 +304,8 @@
return nil;
}
-- (id)initWithPath:(NSString *)aPath pageIndex:(NSUInteger)aPageIndex
label:(NSString *)aLabel {
- return (id)[[SKFileBookmark alloc] initWithPath:aPath pageIndex:aPageIndex
label:aLabel];
+- (id)initWithURL:(NSURL *)aURL pageIndex:(NSUInteger)aPageIndex
label:(NSString *)aLabel {
+ return (id)[[SKFileBookmark alloc] initWithURL:aURL pageIndex:aPageIndex
label:aLabel];
}
- (id)initWithSetup:(NSDictionary *)aSetupDict label:(NSString *)aLabel {
@@ -401,10 +399,10 @@
return image;
}
-- (id)initWithPath:(NSString *)aPath pageIndex:(NSUInteger)aPageIndex
label:(NSString *)aLabel {
+- (id)initWithURL:(NSURL *)aURL pageIndex:(NSUInteger)aPageIndex
label:(NSString *)aLabel {
self = [super init];
if (self) {
- alias = [[BDAlias alloc] initWithPath:aPath];
+ alias = [[BDAlias alloc] initWithURL:aURL];
if (alias) {
aliasData = [[alias aliasData] retain];
pageIndex = aPageIndex;
@@ -618,7 +616,6 @@
if ([key isEqualToString:@"bookmarks"]) {
SKBookmark *bookmark = nil;
NSURL *aURL = [properties objectForKey:@"scriptingFile"] ?:
contentsValue;
- NSString *aPath = [aURL respondsToSelector:@selector(path)] ? [aURL
path] : nil;
NSString *aLabel = [properties objectForKey:@"label"];
NSNumber *aType = [properties objectForKey:@"bookmarkType"];
NSInteger type;
@@ -626,7 +623,7 @@
type = [aType integerValue];
else if (aURL == nil)
type = SKBookmarkTypeSession;
- else if ([[NSWorkspace sharedWorkspace] type:[[NSWorkspace
sharedWorkspace] typeOfFile:aPath error:NULL] conformsToType:(NSString
*)kUTTypeFolder])
+ else if ([[NSWorkspace sharedWorkspace] type:[[NSWorkspace
sharedWorkspace] typeOfFile:[aURL path] error:NULL] conformsToType:(NSString
*)kUTTypeFolder])
type = SKBookmarkTypeFolder;
else
type = SKBookmarkTypeBookmark;
@@ -634,10 +631,10 @@
case SKBookmarkTypeBookmark:
{
Class docClass;
- if (aPath == nil) {
+ if (aURL == nil) {
[[NSScriptCommand currentCommand]
setScriptErrorNumber:NSRequiredArgumentsMissingScriptError];
[[NSScriptCommand currentCommand]
setScriptErrorString:@"New file bookmark requires a file."];
- } else if ([[NSFileManager defaultManager]
fileExistsAtPath:aPath] == NO) {
+ } else if ([[NSFileManager defaultManager]
fileExistsAtPath:[aURL path]] == NO) {
[[NSScriptCommand currentCommand]
setScriptErrorNumber:NSArgumentsWrongScriptError];
[[NSScriptCommand currentCommand]
setScriptErrorString:@"New file bookmark requires an existing file."];
} else if ((docClass = [[NSDocumentController
sharedDocumentController] documentClassForContentsOfURL:aURL])) {
@@ -647,8 +644,8 @@
else
aPageNumber = [docClass isPDFDocument] ? 0 :
NSNotFound;
if (aLabel == nil)
- aLabel = [[NSFileManager defaultManager]
displayNameAtPath:aPath];
- bookmark = [[SKBookmark alloc] initWithPath:aPath
pageIndex:aPageNumber label:aLabel ?: @""];
+ aLabel = [[NSFileManager defaultManager]
displayNameAtPath:[aURL path]];
+ bookmark = [[SKBookmark alloc] initWithURL:aURL
pageIndex:aPageNumber label:aLabel ?: @""];
} else {
[[NSScriptCommand currentCommand]
setScriptErrorNumber:NSArgumentsWrongScriptError];
[[NSScriptCommand currentCommand]
setScriptErrorString:@"Unsupported file type for new bookmark."];
@@ -658,10 +655,10 @@
case SKBookmarkTypeFolder:
{
NSArray *aChildren = nil;
- if (aPath) {
- aChildren = [SKBookmark bookmarksForPaths:[[NSFileManager
defaultManager] contentsOfDirectoryAtPath:aPath error:NULL]
relativeToPath:aPath];
+ if (aURL) {
+ aChildren = [SKBookmark bookmarksForURLs:[[NSFileManager
defaultManager] contentsOfDirectoryAtURL:aURL includingPropertiesForKeys:nil
options:NSDirectoryEnumerationSkipsHiddenFiles error:NULL]];
if (aLabel == nil)
- aLabel = [[NSFileManager defaultManager]
displayNameAtPath:aPath];
+ aLabel = [[NSFileManager defaultManager]
displayNameAtPath:[aURL path]];
}
bookmark = [[SKBookmark alloc]
initFolderWithChildren:aChildren label:aLabel ?: @""];
break;
Modified: trunk/SKBookmarkController.m
===================================================================
--- trunk/SKBookmarkController.m 2012-10-31 00:34:24 UTC (rev 7761)
+++ trunk/SKBookmarkController.m 2012-11-01 13:09:50 UTC (rev 7762)
@@ -668,7 +668,7 @@
return YES;
} else {
NSArray *urls = [NSURL readFileURLsFromPasteboard:pboard];
- NSArray *newBookmarks = [SKBookmark bookmarksForPaths:[urls
valueForKey:@"path"] relativeToPath:nil];
+ NSArray *newBookmarks = [SKBookmark bookmarksForURLs:urls];
if ([newBookmarks count] > 0) {
[self endEditing];
if (item == nil) item = bookmarkRoot;
@@ -757,7 +757,7 @@
- (void)outlineView:(NSOutlineView *)ov pasteFromPasteboard:(NSPasteboard
*)pboard {
NSArray *urls = [NSURL readFileURLsFromPasteboard:pboard];
if ([urls count] > 0) {
- NSArray *newBookmarks = [SKBookmark bookmarksForPaths:[urls
valueForKey:@"path"] relativeToPath:nil];
+ NSArray *newBookmarks = [SKBookmark bookmarksForURLs:urls];
if ([newBookmarks count] > 0) {
SKBookmark *item = nil;
NSUInteger anIndex = 0;
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit