From ed713803f5ef4f0ad13e99e595556857d397f26d Mon Sep 17 00:00:00 2001 From: Lukas Toenne Date: Sat, 29 Dec 2012 08:46:27 +0000 Subject: Fix for the NODE_OT_add_node operator. The way python classes were subclassed does not work with the registration mechanism. Combined both node_add and node_add_move operators into a single general operator with a flag. When use_transform is set, the operator will start transform on the new nodes after inserting. --- release/scripts/startup/bl_operators/node.py | 31 ++++++++++------------------ 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/release/scripts/startup/bl_operators/node.py b/release/scripts/startup/bl_operators/node.py index 071eb2e75f9..39e00f94953 100644 --- a/release/scripts/startup/bl_operators/node.py +++ b/release/scripts/startup/bl_operators/node.py @@ -20,7 +20,7 @@ import bpy from bpy.types import Operator -from bpy.props import EnumProperty, StringProperty +from bpy.props import BoolProperty, EnumProperty, StringProperty # Base class for node 'Add' operators class NodeAddOperator(): @@ -75,6 +75,11 @@ class NODE_OT_add_node(NodeAddOperator, Operator): name="Group tree", description="Group node tree name", ) + use_transform = BoolProperty( + name="Use Transform", + description="Start transform operator after inserting the node", + default = False, + ) def execute(self, context): node = self.create_node(context, self.type) @@ -84,27 +89,13 @@ class NODE_OT_add_node(NodeAddOperator, Operator): return {'FINISHED'} - -# Adds a node and immediately starts the transform operator for inserting in a tree -class NODE_OT_add_node_move(NODE_OT_add_node): - '''Add a node to the active tree and start transform''' - bl_idname = "node.add_node_move" - bl_label = "Add Node and Move" - - type = StringProperty( - name="Node Type", - description="Node type", - ) - # optional group tree parameter for group nodes - group_tree = StringProperty( - name="Group tree", - description="Group node tree name", - ) - def invoke(self, context, event): self.store_mouse_cursor(context, event) - self.execute(context) - return bpy.ops.transform.translate('INVOKE_DEFAULT') + result = self.execute(context) + if self.use_transform and ('FINISHED' in result): + return bpy.ops.transform.translate('INVOKE_DEFAULT') + else: + return result # XXX These node item lists should actually be generated by a callback at -- cgit v1.2.3