From 52c028e0b055ae65082f02da010d4562ab106de2 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 23 Sep 2025 13:06:17 +0200 Subject: [PATCH] Shaders: Move repeat and closure/bundle nodes into Utilities submenu It may be worth reconsidering how to organize these menus and add consistency with geometry nodes. However we should at least avoid putting these as 5 new top level entries. Ref #141936 Pull Request: https://projects.blender.org/blender/blender/pulls/146607 --- scripts/startup/bl_ui/node_add_menu_shader.py | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/scripts/startup/bl_ui/node_add_menu_shader.py b/scripts/startup/bl_ui/node_add_menu_shader.py index 92b3096cbe0..3dc8171b091 100644 --- a/scripts/startup/bl_ui/node_add_menu_shader.py +++ b/scripts/startup/bl_ui/node_add_menu_shader.py @@ -407,6 +407,21 @@ class NODE_MT_category_shader_group(Menu): node_add_menu.draw_assets_for_catalog(layout, self.bl_label) +class NODE_MT_category_shader_utilities(Menu): + bl_idname = "NODE_MT_category_shader_utilities" + bl_label = "Utilities" + + def draw(self, context): + layout = self.layout + + node_add_menu.add_repeat_zone(layout, label="Repeat") + layout.separator() + node_add_menu.add_closure_zone(layout, label="Closure") + node_add_menu.add_node_type(layout, "NodeEvaluateClosure") + node_add_menu.add_node_type(layout, "NodeCombineBundle") + node_add_menu.add_node_type(layout, "NodeSeparateBundle") + + class NODE_MT_shader_node_add_all(Menu): bl_idname = "NODE_MT_shader_node_add_all" bl_label = "Add" @@ -422,16 +437,12 @@ class NODE_MT_shader_node_add_all(Menu): layout.menu("NODE_MT_category_shader_shader") layout.menu("NODE_MT_category_shader_texture") layout.menu("NODE_MT_category_shader_vector") + layout.menu("NODE_MT_category_shader_utilities") layout.separator() layout.menu("NODE_MT_category_shader_script") layout.separator() layout.menu("NODE_MT_category_shader_group") layout.menu("NODE_MT_category_layout") - node_add_menu.add_repeat_zone(layout, label="Repeat") - node_add_menu.add_closure_zone(layout, label="Closure") - node_add_menu.add_node_type(layout, "NodeEvaluateClosure") - node_add_menu.add_node_type(layout, "NodeCombineBundle") - node_add_menu.add_node_type(layout, "NodeSeparateBundle") node_add_menu.draw_root_assets(layout) @@ -447,6 +458,7 @@ classes = ( NODE_MT_category_shader_vector, NODE_MT_category_shader_script, NODE_MT_category_shader_group, + NODE_MT_category_shader_utilities, )