Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_file/fsmenu.c
| Show First 20 Lines • Show All 197 Lines • ▼ Show 20 Lines | |||||
| { | { | ||||
| char xdg_path_buf[FILE_MAXDIR]; | char xdg_path_buf[FILE_MAXDIR]; | ||||
| const char *xdg_path = xdg_map ? BLI_ghash_lookup(xdg_map, key) : NULL; | const char *xdg_path = xdg_map ? BLI_ghash_lookup(xdg_map, key) : NULL; | ||||
| if (xdg_path == NULL) { | if (xdg_path == NULL) { | ||||
| BLI_path_join(xdg_path_buf, sizeof(xdg_path_buf), home, default_path, NULL); | BLI_path_join(xdg_path_buf, sizeof(xdg_path_buf), home, default_path, NULL); | ||||
| xdg_path = xdg_path_buf; | xdg_path = xdg_path_buf; | ||||
| } | } | ||||
| fsmenu_insert_entry( | fsmenu_insert_entry( | ||||
| fsmenu, FS_CATEGORY_SYSTEM_BOOKMARKS, xdg_path, IFACE_(default_path), icon, FS_INSERT_LAST); | fsmenu, FS_CATEGORY_SYSTEM_BOOKMARKS, xdg_path, N_(default_path), icon, FS_INSERT_LAST); | ||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| void ED_fsmenu_set_category(struct FSMenu *fsmenu, FSMenuCategory category, FSMenuEntry *fsm_head) | void ED_fsmenu_set_category(struct FSMenu *fsmenu, FSMenuCategory category, FSMenuEntry *fsm_head) | ||||
| { | { | ||||
| switch (category) { | switch (category) { | ||||
| case FS_CATEGORY_SYSTEM: | case FS_CATEGORY_SYSTEM: | ||||
| ▲ Show 20 Lines • Show All 478 Lines • ▼ Show 20 Lines | /* Add the drive names to the listing */ | ||||
| /* Get Special Folder Locations. */ | /* Get Special Folder Locations. */ | ||||
| if (read_bookmarks) { | if (read_bookmarks) { | ||||
| /* These items are shown in System List. */ | /* These items are shown in System List. */ | ||||
| fsmenu_add_windows_folder(fsmenu, | fsmenu_add_windows_folder(fsmenu, | ||||
| FS_CATEGORY_SYSTEM_BOOKMARKS, | FS_CATEGORY_SYSTEM_BOOKMARKS, | ||||
| &FOLDERID_Profile, | &FOLDERID_Profile, | ||||
| IFACE_("Home"), | N_("Home"), | ||||
| ICON_HOME, | ICON_HOME, | ||||
| FS_INSERT_LAST); | FS_INSERT_LAST); | ||||
| fsmenu_add_windows_folder(fsmenu, | fsmenu_add_windows_folder(fsmenu, | ||||
| FS_CATEGORY_SYSTEM_BOOKMARKS, | FS_CATEGORY_SYSTEM_BOOKMARKS, | ||||
| &FOLDERID_Desktop, | &FOLDERID_Desktop, | ||||
| IFACE_("Desktop"), | N_("Desktop"), | ||||
| ICON_DESKTOP, | ICON_DESKTOP, | ||||
| FS_INSERT_LAST); | FS_INSERT_LAST); | ||||
| fsmenu_add_windows_folder(fsmenu, | fsmenu_add_windows_folder(fsmenu, | ||||
| FS_CATEGORY_SYSTEM_BOOKMARKS, | FS_CATEGORY_SYSTEM_BOOKMARKS, | ||||
| &FOLDERID_Documents, | &FOLDERID_Documents, | ||||
| IFACE_("Documents"), | N_("Documents"), | ||||
| ICON_DOCUMENTS, | ICON_DOCUMENTS, | ||||
| FS_INSERT_LAST); | FS_INSERT_LAST); | ||||
| fsmenu_add_windows_folder(fsmenu, | fsmenu_add_windows_folder(fsmenu, | ||||
| FS_CATEGORY_SYSTEM_BOOKMARKS, | FS_CATEGORY_SYSTEM_BOOKMARKS, | ||||
| &FOLDERID_Downloads, | &FOLDERID_Downloads, | ||||
| IFACE_("Downloads"), | N_("Downloads"), | ||||
| ICON_IMPORT, | ICON_IMPORT, | ||||
| FS_INSERT_LAST); | FS_INSERT_LAST); | ||||
| fsmenu_add_windows_folder(fsmenu, | fsmenu_add_windows_folder(fsmenu, | ||||
| FS_CATEGORY_SYSTEM_BOOKMARKS, | FS_CATEGORY_SYSTEM_BOOKMARKS, | ||||
| &FOLDERID_Music, | &FOLDERID_Music, | ||||
| IFACE_("Music"), | N_("Music"), | ||||
| ICON_FILE_SOUND, | ICON_FILE_SOUND, | ||||
| FS_INSERT_LAST); | FS_INSERT_LAST); | ||||
| fsmenu_add_windows_folder(fsmenu, | fsmenu_add_windows_folder(fsmenu, | ||||
| FS_CATEGORY_SYSTEM_BOOKMARKS, | FS_CATEGORY_SYSTEM_BOOKMARKS, | ||||
| &FOLDERID_Pictures, | &FOLDERID_Pictures, | ||||
| IFACE_("Pictures"), | N_("Pictures"), | ||||
| ICON_FILE_IMAGE, | ICON_FILE_IMAGE, | ||||
| FS_INSERT_LAST); | FS_INSERT_LAST); | ||||
| fsmenu_add_windows_folder(fsmenu, | fsmenu_add_windows_folder(fsmenu, | ||||
| FS_CATEGORY_SYSTEM_BOOKMARKS, | FS_CATEGORY_SYSTEM_BOOKMARKS, | ||||
| &FOLDERID_Videos, | &FOLDERID_Videos, | ||||
| IFACE_("Videos"), | N_("Videos"), | ||||
| ICON_FILE_MOVIE, | ICON_FILE_MOVIE, | ||||
| FS_INSERT_LAST); | FS_INSERT_LAST); | ||||
| fsmenu_add_windows_folder(fsmenu, | fsmenu_add_windows_folder(fsmenu, | ||||
| FS_CATEGORY_SYSTEM_BOOKMARKS, | FS_CATEGORY_SYSTEM_BOOKMARKS, | ||||
| &FOLDERID_Fonts, | &FOLDERID_Fonts, | ||||
| IFACE_("Fonts"), | N_("Fonts"), | ||||
| ICON_FILE_FONT, | ICON_FILE_FONT, | ||||
| FS_INSERT_LAST); | FS_INSERT_LAST); | ||||
| /* These items are just put in path cache for thumbnail views and if bookmarked. */ | /* These items are just put in path cache for thumbnail views and if bookmarked. */ | ||||
| fsmenu_add_windows_folder( | fsmenu_add_windows_folder( | ||||
| fsmenu, FS_CATEGORY_OTHER, &FOLDERID_UserProfiles, NULL, ICON_COMMUNITY, FS_INSERT_LAST); | fsmenu, FS_CATEGORY_OTHER, &FOLDERID_UserProfiles, NULL, ICON_COMMUNITY, FS_INSERT_LAST); | ||||
| fsmenu_add_windows_folder( | fsmenu_add_windows_folder( | ||||
| fsmenu, FS_CATEGORY_OTHER, &FOLDERID_SkyDrive, NULL, ICON_URL, FS_INSERT_LAST); | fsmenu, FS_CATEGORY_OTHER, &FOLDERID_SkyDrive, NULL, ICON_URL, FS_INSERT_LAST); | ||||
| } | } | ||||
| } | } | ||||
| #elif defined(__APPLE__) | #elif defined(__APPLE__) | ||||
| { | { | ||||
| /* We store some known macOS system paths and corresponding icons | /* We store some known macOS system paths and corresponding icons | ||||
| * and names in the FS_CATEGORY_OTHER (not displayed directly) category. */ | * and names in the FS_CATEGORY_OTHER (not displayed directly) category. */ | ||||
| fsmenu_insert_entry(fsmenu, | fsmenu_insert_entry( | ||||
| FS_CATEGORY_OTHER, | fsmenu, FS_CATEGORY_OTHER, "/Library/Fonts/", N_("Fonts"), ICON_FILE_FONT, FS_INSERT_LAST); | ||||
| "/Library/Fonts/", | |||||
| IFACE_("Fonts"), | |||||
| ICON_FILE_FONT, | |||||
| FS_INSERT_LAST); | |||||
| fsmenu_insert_entry(fsmenu, | fsmenu_insert_entry(fsmenu, | ||||
| FS_CATEGORY_OTHER, | FS_CATEGORY_OTHER, | ||||
| "/Applications/", | "/Applications/", | ||||
| IFACE_("Applications"), | N_("Applications"), | ||||
| ICON_FILE_FOLDER, | ICON_FILE_FOLDER, | ||||
| FS_INSERT_LAST); | FS_INSERT_LAST); | ||||
| const char *home = BLI_getenv("HOME"); | const char *home = BLI_getenv("HOME"); | ||||
| # define FS_MACOS_PATH(path, name, icon) \ | # define FS_MACOS_PATH(path, name, icon) \ | ||||
| BLI_snprintf(line, sizeof(line), path, home); \ | BLI_snprintf(line, sizeof(line), path, home); \ | ||||
| fsmenu_insert_entry(fsmenu, FS_CATEGORY_OTHER, line, name, icon, FS_INSERT_LAST); | fsmenu_insert_entry(fsmenu, FS_CATEGORY_OTHER, line, name, icon, FS_INSERT_LAST); | ||||
| FS_MACOS_PATH("%s/", NULL, ICON_HOME) | FS_MACOS_PATH("%s/", NULL, ICON_HOME) | ||||
| FS_MACOS_PATH("%s/Desktop/", IFACE_("Desktop"), ICON_DESKTOP) | FS_MACOS_PATH("%s/Desktop/", N_("Desktop"), ICON_DESKTOP) | ||||
| FS_MACOS_PATH("%s/Documents/", IFACE_("Documents"), ICON_DOCUMENTS) | FS_MACOS_PATH("%s/Documents/", N_("Documents"), ICON_DOCUMENTS) | ||||
| FS_MACOS_PATH("%s/Downloads/", IFACE_("Downloads"), ICON_IMPORT) | FS_MACOS_PATH("%s/Downloads/", N_("Downloads"), ICON_IMPORT) | ||||
| FS_MACOS_PATH("%s/Movies/", IFACE_("Movies"), ICON_FILE_MOVIE) | FS_MACOS_PATH("%s/Movies/", N_("Movies"), ICON_FILE_MOVIE) | ||||
| FS_MACOS_PATH("%s/Music/", IFACE_("Music"), ICON_FILE_SOUND) | FS_MACOS_PATH("%s/Music/", N_("Music"), ICON_FILE_SOUND) | ||||
| FS_MACOS_PATH("%s/Pictures/", IFACE_("Pictures"), ICON_FILE_IMAGE) | FS_MACOS_PATH("%s/Pictures/", N_("Pictures"), ICON_FILE_IMAGE) | ||||
| FS_MACOS_PATH("%s/Library/Fonts/", IFACE_("Fonts"), ICON_FILE_FONT) | FS_MACOS_PATH("%s/Library/Fonts/", N_("Fonts"), ICON_FILE_FONT) | ||||
| # undef FS_MACOS_PATH | # undef FS_MACOS_PATH | ||||
| /* Get mounted volumes better method OSX 10.6 and higher, see: | /* Get mounted volumes better method OSX 10.6 and higher, see: | ||||
| * https://developer.apple.com/library/mac/#documentation/CoreFOundation/Reference/CFURLRef/Reference/reference.html | * https://developer.apple.com/library/mac/#documentation/CoreFOundation/Reference/CFURLRef/Reference/reference.html | ||||
| */ | */ | ||||
| /* We get all volumes sorted including network and do not relay | /* We get all volumes sorted including network and do not relay | ||||
| ▲ Show 20 Lines • Show All 102 Lines • ▼ Show 20 Lines | |||||
| #else | #else | ||||
| /* unix */ | /* unix */ | ||||
| { | { | ||||
| const char *home = BLI_getenv("HOME"); | const char *home = BLI_getenv("HOME"); | ||||
| if (read_bookmarks && home) { | if (read_bookmarks && home) { | ||||
| fsmenu_insert_entry( | fsmenu_insert_entry( | ||||
| fsmenu, FS_CATEGORY_SYSTEM_BOOKMARKS, home, IFACE_("Home"), ICON_HOME, FS_INSERT_LAST); | fsmenu, FS_CATEGORY_SYSTEM_BOOKMARKS, home, N_("Home"), ICON_HOME, FS_INSERT_LAST); | ||||
| /* Follow the XDG spec, check if these are available. */ | /* Follow the XDG spec, check if these are available. */ | ||||
| GHash *xdg_map = fsmenu_xdg_user_dirs_parse(home); | GHash *xdg_map = fsmenu_xdg_user_dirs_parse(home); | ||||
| struct { | struct { | ||||
| const char *key; | const char *key; | ||||
| const char *default_path; | const char *default_path; | ||||
| BIFIconID icon; | BIFIconID icon; | ||||
| ▲ Show 20 Lines • Show All 311 Lines • Show Last 20 Lines | |||||