Fix T86208: copy node group button is inconsistent in geometry nodes
Differential Revision: https://developer.blender.org/D10740
This commit is contained in:

committed by
Jacques Lucke

parent
de296e8429
commit
ae650b016f
@@ -91,7 +91,32 @@ class NewGeometryNodeTreeAssign(bpy.types.Operator):
|
|||||||
return {'FINISHED'}
|
return {'FINISHED'}
|
||||||
|
|
||||||
|
|
||||||
|
class CopyGeometryNodeTreeAssign(bpy.types.Operator):
|
||||||
|
"""Copy the active geometry node group and assign it to the active modifier"""
|
||||||
|
|
||||||
|
bl_idname = "node.copy_geometry_node_group_assign"
|
||||||
|
bl_label = "Copy Geometry Node Group"
|
||||||
|
bl_options = {'REGISTER', 'UNDO'}
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def poll(cls, context):
|
||||||
|
return geometry_modifier_poll(context)
|
||||||
|
|
||||||
|
def execute(self, context):
|
||||||
|
modifier = context.object.modifiers.active
|
||||||
|
if modifier is None:
|
||||||
|
return {'CANCELLED'}
|
||||||
|
|
||||||
|
group = modifier.node_group
|
||||||
|
if group is None:
|
||||||
|
return {'CANCELLED'}
|
||||||
|
|
||||||
|
modifier.node_group = group.copy()
|
||||||
|
return {'FINISHED'}
|
||||||
|
|
||||||
|
|
||||||
classes = (
|
classes = (
|
||||||
NewGeometryNodesModifier,
|
NewGeometryNodesModifier,
|
||||||
NewGeometryNodeTreeAssign,
|
NewGeometryNodeTreeAssign,
|
||||||
|
CopyGeometryNodeTreeAssign,
|
||||||
)
|
)
|
||||||
|
@@ -164,7 +164,10 @@ class NODE_HT_header(Header):
|
|||||||
elif ob:
|
elif ob:
|
||||||
active_modifier = ob.modifiers.active
|
active_modifier = ob.modifiers.active
|
||||||
if active_modifier and active_modifier.type == "NODES":
|
if active_modifier and active_modifier.type == "NODES":
|
||||||
row.template_ID(active_modifier, "node_group", new="node.new_geometry_node_group_assign")
|
if active_modifier.node_group:
|
||||||
|
row.template_ID(active_modifier, "node_group", new="node.copy_geometry_node_group_assign")
|
||||||
|
else:
|
||||||
|
row.template_ID(active_modifier, "node_group", new="node.new_geometry_node_group_assign")
|
||||||
else:
|
else:
|
||||||
row.template_ID(snode, "node_tree", new="node.new_geometry_nodes_modifier")
|
row.template_ID(snode, "node_tree", new="node.new_geometry_nodes_modifier")
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user