diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2013-12-20 20:39:22 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2013-12-20 20:57:11 +0400 |
commit | 163e544006ffb7224afdce083c41eb0698b0be15 (patch) | |
tree | ba9c14096c9ed05237f53f1d7949416393d72843 /source/blender/editors/space_file | |
parent | aec90a8fafe19dfad110d9473d3f70e3aeeb8771 (diff) |
Fix bookmarks not appearing in file browser after "copy previous settings".
Diffstat (limited to 'source/blender/editors/space_file')
-rw-r--r-- | source/blender/editors/space_file/fsmenu.c | 17 | ||||
-rw-r--r-- | source/blender/editors/space_file/fsmenu.h | 2 | ||||
-rw-r--r-- | source/blender/editors/space_file/space_file.c | 28 |
3 files changed, 30 insertions, 17 deletions
diff --git a/source/blender/editors/space_file/fsmenu.c b/source/blender/editors/space_file/fsmenu.c index 62cf4889797..201abf6934a 100644 --- a/source/blender/editors/space_file/fsmenu.c +++ b/source/blender/editors/space_file/fsmenu.c @@ -545,11 +545,16 @@ void fsmenu_refresh_system_category(struct FSMenu *fsmenu) fsmenu_read_system(fsmenu, TRUE); } -void fsmenu_free(struct FSMenu *fsmenu) +void fsmenu_free(void) { - fsmenu_free_category(fsmenu, FS_CATEGORY_SYSTEM); - fsmenu_free_category(fsmenu, FS_CATEGORY_SYSTEM_BOOKMARKS); - fsmenu_free_category(fsmenu, FS_CATEGORY_BOOKMARKS); - fsmenu_free_category(fsmenu, FS_CATEGORY_RECENT); - MEM_freeN(fsmenu); + if (g_fsmenu) { + fsmenu_free_category(g_fsmenu, FS_CATEGORY_SYSTEM); + fsmenu_free_category(g_fsmenu, FS_CATEGORY_SYSTEM_BOOKMARKS); + fsmenu_free_category(g_fsmenu, FS_CATEGORY_BOOKMARKS); + fsmenu_free_category(g_fsmenu, FS_CATEGORY_RECENT); + MEM_freeN(g_fsmenu); + } + + g_fsmenu = NULL; } + diff --git a/source/blender/editors/space_file/fsmenu.h b/source/blender/editors/space_file/fsmenu.h index eea7e0e3837..01bd4e95afa 100644 --- a/source/blender/editors/space_file/fsmenu.h +++ b/source/blender/editors/space_file/fsmenu.h @@ -84,7 +84,7 @@ void fsmenu_read_bookmarks(struct FSMenu *fsmenu, const char *filename); void fsmenu_read_system(struct FSMenu *fsmenu, int read_bookmarks); /** Free's all the memory associated with the fsmenu */ -void fsmenu_free(struct FSMenu *fsmenu); +void fsmenu_free(void); /** Refresh system directory menu */ void fsmenu_refresh_system_category(struct FSMenu *fsmenu); diff --git a/source/blender/editors/space_file/space_file.c b/source/blender/editors/space_file/space_file.c index 62048752fa1..170e9336fea 100644 --- a/source/blender/editors/space_file/space_file.c +++ b/source/blender/editors/space_file/space_file.c @@ -637,16 +637,8 @@ void ED_spacetype_file(void) void ED_file_init(void) { - const char * const cfgdir = BLI_get_folder(BLENDER_USER_CONFIG, NULL); - - fsmenu_read_system(fsmenu_get(), TRUE); + ED_file_read_bookmarks(); - if (cfgdir) { - char name[FILE_MAX]; - BLI_make_file_string("/", name, cfgdir, BLENDER_BOOKMARK_FILE); - fsmenu_read_bookmarks(fsmenu_get(), name); - } - if (G.background == FALSE) { filelist_init_icons(); } @@ -656,9 +648,25 @@ void ED_file_init(void) void ED_file_exit(void) { - fsmenu_free(fsmenu_get()); + fsmenu_free(); if (G.background == FALSE) { filelist_free_icons(); } } + +void ED_file_read_bookmarks(void) +{ + const char * const cfgdir = BLI_get_folder(BLENDER_USER_CONFIG, NULL); + + fsmenu_free(); + + fsmenu_read_system(fsmenu_get(), TRUE); + + if (cfgdir) { + char name[FILE_MAX]; + BLI_make_file_string("/", name, cfgdir, BLENDER_BOOKMARK_FILE); + fsmenu_read_bookmarks(fsmenu_get(), name); + } +} + |