Fix bookmarks not appearing in file browser after "copy previous settings".

This commit is contained in:
Brecht Van Lommel
2013-12-20 17:39:22 +01:00
parent aec90a8faf
commit 163e544006
6 changed files with 36 additions and 18 deletions

View File

@@ -106,5 +106,7 @@ void ED_fileselect_exit(struct wmWindowManager *wm, struct SpaceFile *sfile);
int ED_file_extension_icon(const char *relname); int ED_file_extension_icon(const char *relname);
void ED_file_read_bookmarks(void);
#endif /* __ED_FILESELECT_H__ */ #endif /* __ED_FILESELECT_H__ */

View File

@@ -545,11 +545,16 @@ void fsmenu_refresh_system_category(struct FSMenu *fsmenu)
fsmenu_read_system(fsmenu, TRUE); fsmenu_read_system(fsmenu, TRUE);
} }
void fsmenu_free(struct FSMenu *fsmenu) void fsmenu_free(void)
{ {
fsmenu_free_category(fsmenu, FS_CATEGORY_SYSTEM); if (g_fsmenu) {
fsmenu_free_category(fsmenu, FS_CATEGORY_SYSTEM_BOOKMARKS); fsmenu_free_category(g_fsmenu, FS_CATEGORY_SYSTEM);
fsmenu_free_category(fsmenu, FS_CATEGORY_BOOKMARKS); fsmenu_free_category(g_fsmenu, FS_CATEGORY_SYSTEM_BOOKMARKS);
fsmenu_free_category(fsmenu, FS_CATEGORY_RECENT); fsmenu_free_category(g_fsmenu, FS_CATEGORY_BOOKMARKS);
MEM_freeN(fsmenu); fsmenu_free_category(g_fsmenu, FS_CATEGORY_RECENT);
MEM_freeN(g_fsmenu);
}
g_fsmenu = NULL;
} }

View File

@@ -84,7 +84,7 @@ void fsmenu_read_bookmarks(struct FSMenu *fsmenu, const char *filename);
void fsmenu_read_system(struct FSMenu *fsmenu, int read_bookmarks); void fsmenu_read_system(struct FSMenu *fsmenu, int read_bookmarks);
/** Free's all the memory associated with the fsmenu */ /** Free's all the memory associated with the fsmenu */
void fsmenu_free(struct FSMenu *fsmenu); void fsmenu_free(void);
/** Refresh system directory menu */ /** Refresh system directory menu */
void fsmenu_refresh_system_category(struct FSMenu *fsmenu); void fsmenu_refresh_system_category(struct FSMenu *fsmenu);

View File

@@ -637,16 +637,8 @@ void ED_spacetype_file(void)
void ED_file_init(void) void ED_file_init(void)
{ {
const char * const cfgdir = BLI_get_folder(BLENDER_USER_CONFIG, NULL); ED_file_read_bookmarks();
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);
}
if (G.background == FALSE) { if (G.background == FALSE) {
filelist_init_icons(); filelist_init_icons();
} }
@@ -656,9 +648,25 @@ void ED_file_init(void)
void ED_file_exit(void) void ED_file_exit(void)
{ {
fsmenu_free(fsmenu_get()); fsmenu_free();
if (G.background == FALSE) { if (G.background == FALSE) {
filelist_free_icons(); 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);
}
}

View File

@@ -97,6 +97,7 @@
#include "IMB_thumbs.h" #include "IMB_thumbs.h"
#include "ED_datafiles.h" #include "ED_datafiles.h"
#include "ED_fileselect.h"
#include "ED_object.h" #include "ED_object.h"
#include "ED_screen.h" #include "ED_screen.h"
#include "ED_sculpt.h" #include "ED_sculpt.h"
@@ -662,7 +663,7 @@ int wm_homefile_read(bContext *C, ReportList *reports, bool from_memory, const c
int wm_history_read_exec(bContext *UNUSED(C), wmOperator *UNUSED(op)) int wm_history_read_exec(bContext *UNUSED(C), wmOperator *UNUSED(op))
{ {
/* TODO, read bookmarks */ ED_file_read_bookmarks();
wm_read_history(); wm_read_history();
return OPERATOR_FINISHED; return OPERATOR_FINISHED;
} }

View File

@@ -270,6 +270,8 @@ void ED_space_image_set_mask(struct bContext *C, struct SpaceImage *sima, struct
void ED_area_tag_redraw_regiontype(struct ScrArea *sa, int regiontype) {STUB_ASSERT(0);} void ED_area_tag_redraw_regiontype(struct ScrArea *sa, int regiontype) {STUB_ASSERT(0);}
void ED_render_engine_changed(struct Main *bmain) {STUB_ASSERT(0);} void ED_render_engine_changed(struct Main *bmain) {STUB_ASSERT(0);}
void ED_file_read_bookmarks(void) {STUB_ASSERT(0);}
struct PTCacheEdit *PE_get_current(struct Scene *scene, struct Object *ob) {STUB_ASSERT(0); return (struct PTCacheEdit *) NULL;} struct PTCacheEdit *PE_get_current(struct Scene *scene, struct Object *ob) {STUB_ASSERT(0); return (struct PTCacheEdit *) NULL;}
void PE_current_changed(struct Scene *scene, struct Object *ob) {STUB_ASSERT(0);} void PE_current_changed(struct Scene *scene, struct Object *ob) {STUB_ASSERT(0);}