diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-01-13 16:24:53 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-01-13 16:24:53 +0300 |
commit | fbc2909cef83bce722fab8c68e49c878603b4ee8 (patch) | |
tree | 7750f62b3b54500a91ac36cea41cc874db3a024a /source/blender/blenloader | |
parent | 117edbbf881be1764db852d9805c523590a19f84 (diff) |
Make version_update() callback being invoked when linking/appending datablocks
This way addons and render engines which needs to do versioning code on files will properly
do it when something is being linked or appended to the scene. Previously that callback was
only called for the local main only, making it impossible to do tweaks on linking.
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 7e10bff49a4..5a3e9141fad 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -105,6 +105,7 @@ #include "BLI_endian_switch.h" #include "BLI_blenlib.h" +#include "BLI_callbacks.h" #include "BLI_math.h" #include "BLI_threads.h" #include "BLI_mempool.h" @@ -7889,8 +7890,12 @@ BlendFileData *blo_read_file_internal(FileData *fd, const char *filepath) } /* do before read_libraries, but skip undo case */ - if (fd->memfile==NULL) + if (fd->memfile==NULL) { do_versions(fd, NULL, bfd->main); + if (BLI_thread_is_main()) { + BLI_callback_exec(bfd->main, NULL, BLI_CB_EVT_VERSION_UPDATE); + } + } do_versions_userdef(fd, bfd); @@ -9527,6 +9532,9 @@ static void read_libraries(FileData *basefd, ListBase *mainlist) do_versions(mainptr->curlib->filedata, mainptr->curlib, mainptr); else do_versions(basefd, NULL, mainptr); + if (BLI_thread_is_main()) { + BLI_callback_exec(mainptr, NULL, BLI_CB_EVT_VERSION_UPDATE); + } } if (mainptr->curlib->filedata) |