diff options
Diffstat (limited to 'source/blender/editors/space_file')
-rw-r--r-- | source/blender/editors/space_file/file_panels.c | 16 | ||||
-rw-r--r-- | source/blender/editors/space_file/filesel.c | 9 |
2 files changed, 24 insertions, 1 deletions
diff --git a/source/blender/editors/space_file/file_panels.c b/source/blender/editors/space_file/file_panels.c index 0e468718a04..540d4729ed6 100644 --- a/source/blender/editors/space_file/file_panels.c +++ b/source/blender/editors/space_file/file_panels.c @@ -41,6 +41,7 @@ #include "ED_fileselect.h" #include "UI_interface.h" +#include "UI_interface_icons.h" #include "UI_resources.h" #include "WM_api.h" @@ -246,7 +247,20 @@ static void file_panel_asset_catalog_buttons_draw(const bContext *C, Panel *pane RNA_pointer_create(&screen->id, &RNA_FileAssetSelectParams, params, ¶ms_ptr); uiItemR(row, ¶ms_ptr, "asset_library_ref", 0, "", ICON_NONE); - if (params->asset_library_ref.type != ASSET_LIBRARY_LOCAL) { + if (params->asset_library_ref.type == ASSET_LIBRARY_LOCAL) { + bContext *mutable_ctx = CTX_copy(C); + if (WM_operator_name_poll(mutable_ctx, "asset.bundle_install")) { + uiItemS(col); + uiItemMenuEnumO(col, + mutable_ctx, + "asset.bundle_install", + "asset_library_ref", + "Copy Bundle to Asset Library...", + ICON_IMPORT); + } + CTX_free(mutable_ctx); + } + else { uiItemO(row, "", ICON_FILE_REFRESH, "FILE_OT_asset_library_refresh"); } diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c index 11757975a62..c59398e0016 100644 --- a/source/blender/editors/space_file/filesel.c +++ b/source/blender/editors/space_file/filesel.c @@ -411,6 +411,15 @@ FileAssetSelectParams *ED_fileselect_get_asset_params(const SpaceFile *sfile) return (sfile->browse_mode == FILE_BROWSE_MODE_ASSETS) ? sfile->asset_params : NULL; } +bool ED_fileselect_is_local_asset_library(const SpaceFile *sfile) +{ + const FileAssetSelectParams *asset_params = ED_fileselect_get_asset_params(sfile); + if (asset_params == NULL) { + return false; + } + return asset_params->asset_library_ref.type == ASSET_LIBRARY_LOCAL; +} + static void fileselect_refresh_asset_params(FileAssetSelectParams *asset_params) { AssetLibraryReference *library = &asset_params->asset_library_ref; |