Commit: c8b925cafb079c06d22cbcda91f8184d1ece5f5c Author: Angus Stanton Date: Fri Mar 19 11:20:57 2021 +0100 Branches: ui-asset-view-template https://developer.blender.org/rBc8b925cafb079c06d22cbcda91f8184d1ece5f5c
Fix T86208: copy node group button is inconsistent in geometry nodes Differential Revision: https://developer.blender.org/D10740 =================================================================== M release/scripts/startup/bl_operators/geometry_nodes.py M release/scripts/startup/bl_ui/space_node.py =================================================================== diff --git a/release/scripts/startup/bl_operators/geometry_nodes.py b/release/scripts/startup/bl_operators/geometry_nodes.py index 4ced3cb5957..0e7f8b7b1e7 100644 --- a/release/scripts/startup/bl_operators/geometry_nodes.py +++ b/release/scripts/startup/bl_operators/geometry_nodes.py @@ -91,7 +91,32 @@ class NewGeometryNodeTreeAssign(bpy.types.Operator): 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 = ( NewGeometryNodesModifier, NewGeometryNodeTreeAssign, + CopyGeometryNodeTreeAssign, ) diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py index 7f66cdd3d74..b6fbb840fab 100644 --- a/release/scripts/startup/bl_ui/space_node.py +++ b/release/scripts/startup/bl_ui/space_node.py @@ -164,7 +164,10 @@ class NODE_HT_header(Header): 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") + 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: row.template_ID(snode, "node_tree", new="node.new_geometry_nodes_modifier") _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs