[Bf-blender-cvs] [c8b925cafb0] ui-asset-view-template: Fix T86208: copy node group button is inconsistent in geometry nodes
Angus Stanton
noreply at git.blender.org
Sun Mar 21 16:12:00 CET 2021
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")
More information about the Bf-blender-cvs
mailing list