Geometry Nodes: improve operators for node editor header

This allows users to create new modifiers directly from the
Geometry Nodes Editor.
This commit is contained in:
Hans Goudey
2020-12-01 21:35:26 +01:00
committed by Jacques Lucke
parent 600fb28b62
commit b1d1a58c77
2 changed files with 62 additions and 15 deletions

View File

@@ -154,7 +154,20 @@ class NODE_HT_header(Header):
elif snode.tree_type == 'GeometryNodeTree':
NODE_MT_editor_menus.draw_collapsible(context, layout)
layout.separator_spacer()
layout.template_ID(snode, "node_tree", new="node.new_geometry_node_tree")
ob = context.object
row = layout.row()
if snode.pin:
row.enabled = False
row.template_ID(snode, "node_tree", new="node.new_geometry_node_group_assign")
elif ob:
active_modifier = ob.modifiers.active
if active_modifier and active_modifier.type == "NODES":
row.template_ID(active_modifier, "node_group", new="node.new_geometry_node_group_assign")
else:
row.template_ID(snode, "node_tree", new="node.new_geometry_node_modifier")
else:
# Custom node tree is edited as independent ID block