From 0cb01332f152f08f13b6d76c5960ec2351023f11 Mon Sep 17 00:00:00 2001 From: Hans Goudey Date: Mon, 25 Sep 2023 21:58:30 -0400 Subject: [PATCH] Cleanup: Consistency between asset-extended menu UI templates Define the UI template in the namespace of its own module, and consistently use references and const in those UI template functions. --- .../editors/geometry/node_group_operator.cc | 4 ++-- source/blender/editors/include/ED_geometry.hh | 4 ++-- source/blender/editors/include/ED_node.hh | 4 ++++ source/blender/editors/include/ED_object.hh | 4 +++- .../blender/editors/include/UI_interface_c.hh | 1 - .../editors/object/add_modifier_assets.cc | 2 +- .../editors/space_node/add_menu_assets.cc | 19 +++++++++--------- source/blender/makesrna/intern/rna_ui_api.cc | 20 ++++++++++++++----- 8 files changed, 36 insertions(+), 22 deletions(-) diff --git a/source/blender/editors/geometry/node_group_operator.cc b/source/blender/editors/geometry/node_group_operator.cc index ec4704ed88f..5190ebf15eb 100644 --- a/source/blender/editors/geometry/node_group_operator.cc +++ b/source/blender/editors/geometry/node_group_operator.cc @@ -725,7 +725,7 @@ MenuType node_group_operator_assets_menu_unassigned() } void ui_template_node_operator_asset_menu_items(uiLayout &layout, - bContext &C, + const bContext &C, const StringRef catalog_path) { bScreen &screen = *CTX_wm_screen(&C); @@ -752,7 +752,7 @@ void ui_template_node_operator_asset_menu_items(uiLayout &layout, uiItemMContents(col, "GEO_MT_node_operator_catalog_assets"); } -void ui_template_node_operator_asset_root_items(uiLayout &layout, bContext &C) +void ui_template_node_operator_asset_root_items(uiLayout &layout, const bContext &C) { bScreen &screen = *CTX_wm_screen(&C); const Object *active_object = CTX_data_active_object(&C); diff --git a/source/blender/editors/include/ED_geometry.hh b/source/blender/editors/include/ED_geometry.hh index 08e810f3bae..fb9ebb256f6 100644 --- a/source/blender/editors/include/ED_geometry.hh +++ b/source/blender/editors/include/ED_geometry.hh @@ -40,8 +40,8 @@ MenuType node_group_operator_assets_menu_unassigned(); void clear_operator_asset_trees(); void ui_template_node_operator_asset_menu_items(uiLayout &layout, - bContext &C, + const bContext &C, StringRef catalog_path); -void ui_template_node_operator_asset_root_items(uiLayout &layout, bContext &C); +void ui_template_node_operator_asset_root_items(uiLayout &layout, const bContext &C); } // namespace blender::ed::geometry diff --git a/source/blender/editors/include/ED_node.hh b/source/blender/editors/include/ED_node.hh index 3ab0d2d8098..90ce1ac8903 100644 --- a/source/blender/editors/include/ED_node.hh +++ b/source/blender/editors/include/ED_node.hh @@ -53,4 +53,8 @@ std::optional get_modifier_for_node_editor(const SpaceNode &s [[nodiscard]] bool push_compute_context_for_tree_path( const SpaceNode &snode, ComputeContextBuilder &compute_context_builder); +void ui_template_node_asset_menu_items(uiLayout &layout, + const bContext &C, + StringRef catalog_path); + } // namespace blender::ed::space_node diff --git a/source/blender/editors/include/ED_object.hh b/source/blender/editors/include/ED_object.hh index 44cf76814a3..0c7327e8225 100644 --- a/source/blender/editors/include/ED_object.hh +++ b/source/blender/editors/include/ED_object.hh @@ -641,6 +641,8 @@ void ED_object_data_xform_tag_update(XFormObjectData *xod); namespace blender::ed::object { -void ui_template_modifier_asset_menu_items(uiLayout &layout, bContext &C, StringRef catalog_path); +void ui_template_modifier_asset_menu_items(uiLayout &layout, + const bContext &C, + StringRef catalog_path); } diff --git a/source/blender/editors/include/UI_interface_c.hh b/source/blender/editors/include/UI_interface_c.hh index fe15f8e5384..5bdba57b1df 100644 --- a/source/blender/editors/include/UI_interface_c.hh +++ b/source/blender/editors/include/UI_interface_c.hh @@ -2584,7 +2584,6 @@ void uiTemplateNodeLink( uiLayout *layout, bContext *C, bNodeTree *ntree, bNode *node, bNodeSocket *input); void uiTemplateNodeView( uiLayout *layout, bContext *C, bNodeTree *ntree, bNode *node, bNodeSocket *input); -void uiTemplateNodeAssetMenuItems(uiLayout *layout, bContext *C, const char *catalog_path); void uiTemplateTextureUser(uiLayout *layout, bContext *C); /** * Button to quickly show texture in Properties Editor texture tab. diff --git a/source/blender/editors/object/add_modifier_assets.cc b/source/blender/editors/object/add_modifier_assets.cc index 41cb7d34556..6d7d8c1bf24 100644 --- a/source/blender/editors/object/add_modifier_assets.cc +++ b/source/blender/editors/object/add_modifier_assets.cc @@ -327,7 +327,7 @@ void object_modifier_add_asset_register() } void ui_template_modifier_asset_menu_items(uiLayout &layout, - bContext &C, + const bContext &C, const StringRef catalog_path) { using namespace blender; diff --git a/source/blender/editors/space_node/add_menu_assets.cc b/source/blender/editors/space_node/add_menu_assets.cc index 95b756bacc5..a901d68594e 100644 --- a/source/blender/editors/space_node/add_menu_assets.cc +++ b/source/blender/editors/space_node/add_menu_assets.cc @@ -255,15 +255,12 @@ MenuType add_root_catalogs_menu_type() return type; } -} // namespace blender::ed::space_node - -void uiTemplateNodeAssetMenuItems(uiLayout *layout, bContext *C, const char *catalog_path) +void ui_template_node_asset_menu_items(uiLayout &layout, + const bContext &C, + const StringRef catalog_path) { - using namespace blender; - using namespace blender::ed; - using namespace blender::ed::space_node; - bScreen &screen = *CTX_wm_screen(C); - SpaceNode &snode = *CTX_wm_space_node(C); + bScreen &screen = *CTX_wm_screen(&C); + SpaceNode &snode = *CTX_wm_space_node(&C); if (snode.runtime->assets_for_menu == nullptr) { return; } @@ -281,8 +278,10 @@ void uiTemplateNodeAssetMenuItems(uiLayout *layout, bContext *C, const char *cat if (path_ptr.data == nullptr) { return; } - uiItemS(layout); - uiLayout *col = uiLayoutColumn(layout, false); + uiItemS(&layout); + uiLayout *col = uiLayoutColumn(&layout, false); uiLayoutSetContextPointer(col, "asset_catalog_path", &path_ptr); uiItemMContents(col, "NODE_MT_node_add_catalog_assets"); } + +} // namespace blender::ed::space_node diff --git a/source/blender/makesrna/intern/rna_ui_api.cc b/source/blender/makesrna/intern/rna_ui_api.cc index 0f73e8f1c76..2391f4e399f 100644 --- a/source/blender/makesrna/intern/rna_ui_api.cc +++ b/source/blender/makesrna/intern/rna_ui_api.cc @@ -38,6 +38,7 @@ const EnumPropertyItem rna_enum_icon_items[] = { # include "DNA_asset_types.h" # include "ED_geometry.hh" +# include "ED_node.hh" # include "ED_object.hh" const char *rna_translate_ui_text( @@ -777,13 +778,21 @@ static uiLayout *rna_uiLayoutColumnWithHeading( return uiLayoutColumnWithHeading(layout, align, heading); } +static void rna_uiLayout_template_node_asset_menu_items(uiLayout *layout, + bContext *C, + const char *catalog_path) +{ + using namespace blender; + ed::space_node::ui_template_node_asset_menu_items(*layout, *C, StringRef(catalog_path)); +} + static void rna_uiLayout_template_node_operator_asset_menu_items(uiLayout *layout, bContext *C, const char *catalog_path) { + using namespace blender; if (U.experimental.use_node_group_operators) { - blender::ed::geometry::ui_template_node_operator_asset_menu_items( - *layout, *C, blender::StringRef(catalog_path)); + ed::geometry::ui_template_node_operator_asset_menu_items(*layout, *C, StringRef(catalog_path)); } } @@ -791,9 +800,9 @@ static void rna_uiLayout_template_modifier_asset_menu_items(uiLayout *layout, bContext *C, const char *catalog_path) { + using namespace blender; if (U.experimental.use_node_group_operators) { - blender::ed::object::ui_template_modifier_asset_menu_items( - *layout, *C, blender::StringRef(catalog_path)); + ed::object::ui_template_modifier_asset_menu_items(*layout, *C, StringRef(catalog_path)); } } @@ -1900,7 +1909,8 @@ void RNA_api_ui_layout(StructRNA *srna) parm = RNA_def_pointer(func, "socket", "NodeSocket", "", ""); RNA_def_parameter_flags(parm, PropertyFlag(0), PARM_REQUIRED); - func = RNA_def_function(srna, "template_node_asset_menu_items", "uiTemplateNodeAssetMenuItems"); + func = RNA_def_function( + srna, "template_node_asset_menu_items", "rna_uiLayout_template_node_asset_menu_items"); RNA_def_function_flag(func, FUNC_USE_CONTEXT); parm = RNA_def_string(func, "catalog_path", nullptr, 0, "", "");