Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Verwiebe <info@jensverwiebe.de>2013-10-13 22:14:38 +0400
committerJens Verwiebe <info@jensverwiebe.de>2013-10-13 22:14:38 +0400
commit6d54ff5d833c93220b46f051a6955648661be83e (patch)
tree7dd5a80a0a1f8fcc4562a53ca718b7b8122ca555 /source/blender/editors/space_file
parent30d03e12bcfa0b6f2dc53d1f658cd6965a4d815e (diff)
OSX: Final cleanup for #60729
Diffstat (limited to 'source/blender/editors/space_file')
-rw-r--r--source/blender/editors/space_file/fsmenu.c65
1 files changed, 23 insertions, 42 deletions
diff --git a/source/blender/editors/space_file/fsmenu.c b/source/blender/editors/space_file/fsmenu.c
index f8c8551726b..952e8494ef5 100644
--- a/source/blender/editors/space_file/fsmenu.c
+++ b/source/blender/editors/space_file/fsmenu.c
@@ -400,57 +400,38 @@ void fsmenu_read_system(struct FSMenu *fsmenu, int read_bookmarks)
}
}
#else
- /* 10.5 provides ability to retrieve Finder favorite places */
- UInt32 seed;
- OSErr err = noErr;
- CFArrayRef pathesArray;
- LSSharedFileListRef list;
- LSSharedFileListItemRef itemRef;
- CFIndex i, pathesCount;
- CFURLRef cfURL = NULL;
- CFStringRef pathString = NULL;
+ /* Get mounted volumes better method OSX 10.5 and higher, see: */
+ /*https://developer.apple.com/library/mac/#documentation/CoreFOundation/Reference/CFURLRef/Reference/reference.html*/
+ /* we get all volumes here including network and do not relay on user-defined finder visibility anymore -> less confusing */
+ /* TODO: find out why network volumes only show up when "touched" once and implement a "mount" perhaps */
- /* First get local mounted volumes */
- list = LSSharedFileListCreate(NULL, kLSSharedFileListFavoriteVolumes, NULL);
- pathesArray = LSSharedFileListCopySnapshot(list, &seed);
- pathesCount = CFArrayGetCount(pathesArray);
+ CFURLRef cfURL = NULL;
+ CFURLEnumeratorResult result = kCFURLEnumeratorSuccess;
+ CFURLEnumeratorRef volEnum = CFURLEnumeratorCreateForMountedVolumes(NULL, kCFURLEnumeratorSkipInvisibles, NULL);
- for (i = 0; i < pathesCount; i++) {
- itemRef = (LSSharedFileListItemRef)CFArrayGetValueAtIndex(pathesArray, i);
-
- err = LSSharedFileListItemResolve(itemRef,
- kLSSharedFileListNoUserInteraction |
- kLSSharedFileListDoNotMountVolumes,
- &cfURL, NULL);
- if (err != noErr)
- continue;
-
- /* Get mounted volumes better method see: */
- /*https://developer.apple.com/library/mac/#documentation/CoreFOundation/Reference/CFURLRef/Reference/reference.html*/
- /* we get all volumes here including network and do not relay on user-defined finder visibility anymore -> less confusing */
- /* TODO: find out why network volumes only show up when "touched" once and implement a "mount" perhaps */
+ while (result != kCFURLEnumeratorEnd) {
+ unsigned char defPath[FILE_MAX];
- CFURLEnumeratorResult result = kCFURLEnumeratorSuccess;
- CFURLEnumeratorRef volEnum = CFURLEnumeratorCreateForMountedVolumes(NULL, kCFURLEnumeratorSkipInvisibles, NULL);
+ result = CFURLEnumeratorGetNextURL(volEnum, &cfURL, NULL);
+ if (result != kCFURLEnumeratorSuccess)
+ continue;
- while (result != kCFURLEnumeratorEnd) {
- unsigned char defPath[FILE_MAX];
-
- result = CFURLEnumeratorGetNextURL(volEnum, &cfURL, NULL);
- if (result != kCFURLEnumeratorSuccess)
- continue;
-
- CFURLGetFileSystemRepresentation(cfURL, false, (UInt8*)defPath, FILE_MAX);
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, (char *)defPath, FS_INSERT_SORTED);
+ CFURLGetFileSystemRepresentation(cfURL, false, (UInt8*)defPath, FILE_MAX);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, (char *)defPath, FS_INSERT_SORTED);
}
- CFRelease(volEnum);
- }
- CFRelease(pathesArray);
- CFRelease(list);
+ CFRelease(volEnum);
/* Finally get user favorite places */
if (read_bookmarks) {
+ UInt32 seed;
+ OSErr err = noErr;
+ CFArrayRef pathesArray;
+ LSSharedFileListRef list;
+ LSSharedFileListItemRef itemRef;
+ CFIndex i, pathesCount;
+ CFURLRef cfURL = NULL;
+ CFStringRef pathString = NULL;
list = LSSharedFileListCreate(NULL, kLSSharedFileListFavoriteItems, NULL);
pathesArray = LSSharedFileListCopySnapshot(list, &seed);
pathesCount = CFArrayGetCount(pathesArray);