[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