[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25467] trunk/blender/source/blender/ editors/space_file/fsmenu.c: OSX : add mounted network volumes to the system folder list in open/ save file dialog

Damien Plisson damien.plisson at yahoo.fr
Fri Dec 18 17:35:41 CET 2009


Revision: 25467
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25467
Author:   damien78
Date:     2009-12-18 17:35:41 +0100 (Fri, 18 Dec 2009)

Log Message:
-----------
OSX : add mounted network volumes to the system folder list in open/save file dialog

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	2009-12-18 13:35:30 UTC (rev 25466)
+++ trunk/blender/source/blender/editors/space_file/fsmenu.c	2009-12-18 16:35:41 UTC (rev 25467)
@@ -345,7 +345,7 @@
 		CFURLRef cfURL = NULL;
 		CFStringRef pathString = NULL;
 		
-		/* First get mounted volumes */
+		/* First get local mounted volumes */
 		list = LSSharedFileListCreate(NULL, kLSSharedFileListFavoriteVolumes, NULL);
 		pathesArray = LSSharedFileListCopySnapshot(list, &seed);
 		pathesCount = CFArrayGetCount(pathesArray);
@@ -374,7 +374,29 @@
 		CFRelease(pathesArray);
 		CFRelease(list);
 		
-		/* Then get user favorite places */
+		/* Then get network volumes */
+		err = noErr;
+		for (i=1; err!=nsvErr; i++)
+		{
+			FSRef dir;
+			FSVolumeRefNum volRefNum;
+			struct GetVolParmsInfoBuffer volParmsBuffer;
+			unsigned char path[FILE_MAXDIR+FILE_MAXFILE];
+			
+			err = FSGetVolumeInfo(kFSInvalidVolumeRefNum, i, &volRefNum, kFSVolInfoNone, NULL, NULL, &dir);
+			if (err != noErr)
+				continue;
+			
+			err = FSGetVolumeParms(volRefNum, &volParmsBuffer, sizeof(volParmsBuffer));
+			if ((err != noErr) || (volParmsBuffer.vMServerAdr == 0)) /* Exclude local devices */
+				continue;
+			
+			
+			FSRefMakePath(&dir, path, FILE_MAXDIR+FILE_MAXFILE);
+			fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, (char *)path, 1, 0);
+		}
+		
+		/* Finally get user favorite places */
 		list = LSSharedFileListCreate(NULL, kLSSharedFileListFavoriteItems, NULL);
 		pathesArray = LSSharedFileListCopySnapshot(list, &seed);
 		pathesCount = CFArrayGetCount(pathesArray);





More information about the Bf-blender-cvs mailing list