[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