[Bf-blender-cvs] [ae650b016f7] master: Fix T86208: copy node group button is inconsistent in geometry nodes

Angus Stanton noreply at git.blender.org
Fri Mar 19 11:24:43 CET 2021


Commit: ae650b016f760b103670b3d2f3a18d150cd05ce5
Author: Angus Stanton
Date:   Fri Mar 19 11:20:57 2021 +0100
Branches: master
https://developer.blender.org/rBae650b016f760b103670b3d2f3a18d150cd05ce5

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