[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60730] trunk/blender/source/blender/ editors/space_file/fsmenu.c: OSX: Final cleanup for #60729

jens verwiebe info at jensverwiebe.de
Sun Oct 13 20:14:38 CEST 2013


Revision: 60730
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60730
Author:   jensverwiebe
Date:     2013-10-13 18:14:38 +0000 (Sun, 13 Oct 2013)
Log Message:
-----------
OSX: Final cleanup for #60729

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_file/fsmenu.c

Modified: trunk/blender/source/blender/editors/space_file/fsmenu.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/fsmenu.c	2013-10-13 17:12:36 UTC (rev 60729)
+++ trunk/blender/source/blender/editors/space_file/fsmenu.c	2013-10-13 18:14:38 UTC (rev 60730)
@@ -400,57 +400,38 @@
 			}
 		}
 #else
-		/* 10.5 provides ability to retrieve Finder favorite places */
-		UInt32 seed;
-		OSErr err = noErr;
-		CFArrayRef pathesArray;
-		LSSharedFileListRef list;
-		LSSharedFileListItemRef itemRef;
-		CFIndex i, pathesCount;
+		/* 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 */
+		
 		CFURLRef cfURL = NULL;
-		CFStringRef pathString = NULL;
+		CFURLEnumeratorResult result = kCFURLEnumeratorSuccess;
+		CFURLEnumeratorRef volEnum = CFURLEnumeratorCreateForMountedVolumes(NULL, kCFURLEnumeratorSkipInvisibles, NULL);
 		
-		/* First get local mounted volumes */
-		list = LSSharedFileListCreate(NULL, kLSSharedFileListFavoriteVolumes, NULL);
-		pathesArray = LSSharedFileListCopySnapshot(list, &seed);
-		pathesCount = CFArrayGetCount(pathesArray);
-		
-		for (i = 0; i < pathesCount; i++) {
-			itemRef = (LSSharedFileListItemRef)CFArrayGetValueAtIndex(pathesArray, i);
-			
-			err = LSSharedFileListItemResolve(itemRef, 
-			                                  kLSSharedFileListNoUserInteraction |
-			                                  kLSSharedFileListDoNotMountVolumes,
-			                                  &cfURL, NULL);
-			if (err != noErr)
+		while (result != kCFURLEnumeratorEnd) {
+			unsigned char defPath[FILE_MAX];
+
+			result = CFURLEnumeratorGetNextURL(volEnum, &cfURL, NULL);
+			if (result != kCFURLEnumeratorSuccess)
 				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 */
-
-			CFURLEnumeratorResult result = kCFURLEnumeratorSuccess;
-			CFURLEnumeratorRef volEnum = CFURLEnumeratorCreateForMountedVolumes(NULL, kCFURLEnumeratorSkipInvisibles, NULL);
-			
-			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);




More information about the Bf-blender-cvs mailing list