Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2013-12-20 20:39:22 +0400
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2013-12-20 20:57:11 +0400
commit163e544006ffb7224afdce083c41eb0698b0be15 (patch)
treeba9c14096c9ed05237f53f1d7949416393d72843 /source/blender/editors/space_file
parentaec90a8fafe19dfad110d9473d3f70e3aeeb8771 (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.c17
-rw-r--r--source/blender/editors/space_file/fsmenu.h2
-rw-r--r--source/blender/editors/space_file/space_file.c28
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);
+ }
+}
+