This patch would localize external files when appending assets.
Localizing external files would make a local copy of a Image, Sound, or other
external stored file.
Only files that are not packed would be localized and are relative.
This patch contains only supports Single image files, but contains the machinery
to be easily extended.
Implementation overview
Before localizing an asset BKE_external_files_create is invoked. This function
creates a struct containing the original paths to the external files that needs
to be localized. It uses the newly added IDTypeInfo.foreach_external_file callback.
This callback goes over each external file for a given ID.
This patch only implements this for single file image sources (Files + Movies)
After localizing the asset BKE_external_files_localize is invoked. This function reuses
the BKE_packedfiles logic to copy the files over to the current file.
TODO
To be solved before committing.
- Currently fails as the orig_id.lib is cleared by the make_local. Discussed solution is to store the source_library in the item.
To be solved when global implementation is agreed upon.
- Add support for Image Sequences.
- Add support for Tiled images.