diff options
author | Sybren A. Stüvel <sybren@blender.org> | 2021-10-18 13:33:53 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@blender.org> | 2021-10-18 15:21:41 +0300 |
commit | f9113c4be836691ba599aab9b2f43e26333f8133 (patch) | |
tree | 6fa8fc9c1021538478f173e247d932c63929f15b /source/blender/blenkernel/BKE_asset_library.hh | |
parent | 1f510376764debe3e91f736aec6b3af70567243f (diff) |
Assets: add global `bke::AssetLibraryService` class
Add `blender::bke::AssetLibraryService` class that acts like a
blendfile-scoped singleton. It's allocated upon the first call to
`BKE_asset_library_load` and destroyed in the LOAD-PRE handler.
The `AssetLibraryService` ensures that edits to asset catalogs are not
lost when the asset browser editor closes (or even reloads). Instead,
the `AssetLibrary` pointers it owns are kept around as long as the blend
file is open.
Reviewed By: Severin
Maniphest Tasks: T92151
Differential Revision: https://developer.blender.org/D12885
Diffstat (limited to 'source/blender/blenkernel/BKE_asset_library.hh')
-rw-r--r-- | source/blender/blenkernel/BKE_asset_library.hh | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/blenkernel/BKE_asset_library.hh b/source/blender/blenkernel/BKE_asset_library.hh index 419df2a1061..b8b4b0f8447 100644 --- a/source/blender/blenkernel/BKE_asset_library.hh +++ b/source/blender/blenkernel/BKE_asset_library.hh @@ -33,9 +33,15 @@ namespace blender::bke { +/** + * AssetLibrary provides access to an asset library's data. + * For now this is only for catalogs, later this can be expanded to indexes/caches/more. + */ struct AssetLibrary { std::unique_ptr<AssetCatalogService> catalog_service; + ~AssetLibrary(); + void load(StringRefNull library_root_directory); /** @@ -52,7 +58,7 @@ struct AssetLibrary { void on_save_post(struct Main *, struct PointerRNA **pointers, const int num_pointers); private: - bCallbackFuncStore on_save_callback_store_; + bCallbackFuncStore on_save_callback_store_{}; }; } // namespace blender::bke |