30 if (library_path ==
nullptr || library_path[0] ==
'\0') {
55 return r_library_path[0] !=
'\0';
66 if (library_c ==
nullptr) {
72 return library.catalog_service.get();
79 if (catalog_service ==
nullptr) {
90 lib->refresh_catalog_simplename(asset_data);
101 if (on_save_callback_store_.
func) {
108 auto catalog_service = std::make_unique<AssetCatalogService>(library_root_directory);
119 void asset_library_on_save_post(
struct Main *
main,
121 const int num_pointers,
133 on_save_callback_store_.
alloc =
false;
135 on_save_callback_store_.
func = asset_library_on_save_post;
136 on_save_callback_store_.
arg =
this;
144 on_save_callback_store_.
func =
nullptr;
145 on_save_callback_store_.
arg =
nullptr;
168 if (catalog ==
nullptr) {
struct AssetLibrary AssetLibrary
void BKE_callback_add(bCallbackFuncStore *funcstore, eCbEvent evt)
void BKE_callback_remove(bCallbackFuncStore *funcstore, eCbEvent evt)
struct bUserAssetLibrary * BKE_preferences_asset_library_containing_path(const struct UserDef *userdef, const char *path) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
void BLI_split_dir_part(const char *string, char *dir, size_t dirlen)
#define STRNCPY(dst, src)
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
bool BLI_uuid_is_nil(bUUID uuid)
bool BKE_asset_library_has_any_unsaved_catalogs()
blender::bke::AssetCatalogService * BKE_asset_library_get_catalog_service(const ::AssetLibrary *library_c)
bool BKE_asset_library_find_suitable_root_path_from_path(const char *input_path, char *r_library_path)
bool BKE_asset_library_find_suitable_root_path_from_main(const Main *bmain, char *r_library_path)
blender::bke::AssetCatalogTree * BKE_asset_library_get_catalog_tree(const ::AssetLibrary *library)
struct AssetLibrary * BKE_asset_library_load(const char *library_path)
void BKE_asset_library_refresh_catalog_simplename(struct AssetLibrary *asset_library, struct AssetMetaData *asset_data)
int main(int argc, char *argv[])
AssetCatalogTree * get_catalog_tree()
AssetLibrary * get_asset_library_current_file()
bool has_any_unsaved_catalogs() const
static AssetLibraryService * get()
AssetLibrary * get_asset_library_on_disk(StringRefNull top_level_directory)
void(* func)(struct Main *, struct PointerRNA **, int num_pointers, void *arg)
static bool save_catalogs_when_file_is_saved
void load(StringRefNull library_root_directory)
void on_blend_save_post(struct Main *, struct PointerRNA **pointers, int num_pointers)
std::unique_ptr< AssetCatalogService > catalog_service
void refresh_catalog_simplename(struct AssetMetaData *asset_data)
void on_blend_save_handler_register()
void on_blend_save_handler_unregister()
static FT_Library library