[Bf-blender-cvs] [c6182a91c31] ui-asset-view-template: Require identifier for asset view template usages
Julian Eisel
noreply at git.blender.org
Wed Mar 24 14:36:09 CET 2021
Commit: c6182a91c3185c5e7a960e3c3f27eecd234388d1
Author: Julian Eisel
Date: Wed Mar 24 13:25:45 2021 +0100
Branches: ui-asset-view-template
https://developer.blender.org/rBc6182a91c3185c5e7a960e3c3f27eecd234388d1
Require identifier for asset view template usages
Needed if we want to support multiple different asset views in future.
===================================================================
M release/scripts/startup/bl_ui/space_view3d.py
M source/blender/editors/include/UI_interface.h
M source/blender/editors/interface/interface_template_asset_view.cc
M source/blender/makesrna/intern/rna_ui_api.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index af93ca0fc1f..5b974dd9b3f 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -7013,6 +7013,7 @@ class VIEW3D_PT_asset_testing(Panel):
workspace = context.workspace
layout.template_asset_view(
+ "pose_assets",
workspace,
"active_asset_library",
wm,
diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
index c734ad0a167..201f0386b21 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -2226,6 +2226,7 @@ void uiTemplateFileSelectPath(uiLayout *layout,
struct FileSelectParams *params);
void uiTemplateAssetView(struct uiLayout *layout,
struct bContext *C,
+ const char *list_id,
struct PointerRNA *asset_library_dataptr,
const char *asset_library_propname,
struct PointerRNA *assets_dataptr,
diff --git a/source/blender/editors/interface/interface_template_asset_view.cc b/source/blender/editors/interface/interface_template_asset_view.cc
index ff91b344c38..f8050a81696 100644
--- a/source/blender/editors/interface/interface_template_asset_view.cc
+++ b/source/blender/editors/interface/interface_template_asset_view.cc
@@ -181,6 +181,7 @@ static void asset_view_template_refresh_asset_collection(
void uiTemplateAssetView(uiLayout *layout,
bContext *C,
+ const char *list_id,
PointerRNA *asset_library_dataptr,
const char *asset_library_propname,
PointerRNA *assets_dataptr,
@@ -189,6 +190,11 @@ void uiTemplateAssetView(uiLayout *layout,
const char *active_propname,
const AssetFilterSettings *filter_settings)
{
+ if (!list_id || !list_id[0]) {
+ RNA_warning("Asset view needs a valid identifier");
+ return;
+ }
+
uiLayout *col = uiLayoutColumn(layout, false);
PropertyRNA *asset_library_prop = RNA_struct_find_property(asset_library_dataptr,
@@ -212,7 +218,7 @@ void uiTemplateAssetView(uiLayout *layout,
uiList *list = uiTemplateList_ex(col,
C,
"UI_UL_asset_view",
- "asset_view",
+ list_id,
assets_dataptr,
assets_propname,
active_dataptr,
diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c
index 430be772af9..f1a3b198e50 100644
--- a/source/blender/makesrna/intern/rna_ui_api.c
+++ b/source/blender/makesrna/intern/rna_ui_api.c
@@ -572,6 +572,7 @@ static void rna_uiTemplateEventFromKeymapItem(
static void rna_uiTemplateAssetView(uiLayout *layout,
bContext *C,
+ const char *list_id,
PointerRNA *asset_library_dataptr,
const char *asset_library_propname,
PointerRNA *assets_dataptr,
@@ -585,6 +586,7 @@ static void rna_uiTemplateAssetView(uiLayout *layout,
};
uiTemplateAssetView(layout,
C,
+ list_id,
asset_library_dataptr,
asset_library_propname,
assets_dataptr,
@@ -1736,6 +1738,14 @@ void RNA_api_ui_layout(StructRNA *srna)
func = RNA_def_function(srna, "template_asset_view", "rna_uiTemplateAssetView");
RNA_def_function_ui_description(func, "Item. A scrollable list of assets in a grid view");
RNA_def_function_flag(func, FUNC_USE_CONTEXT);
+ parm = RNA_def_string(func,
+ "list_id",
+ NULL,
+ 0,
+ "",
+ "Identifier of this asset view. Necessary to tell apart different asset "
+ "views and to idenify an asset view read from a .blend");
+ RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
parm = RNA_def_pointer(func,
"asset_library_dataptr",
"AnyType",
More information about the Bf-blender-cvs
mailing list