[Bf-blender-cvs] [1d64c35c3b8] functions: allow removal of sockets from pack list node
Jacques Lucke
noreply at git.blender.org
Wed Mar 20 19:33:44 CET 2019
Commit: 1d64c35c3b8b0bf831c66a3b127da6266d111620
Author: Jacques Lucke
Date: Wed Mar 20 19:33:34 2019 +0100
Branches: functions
https://developer.blender.org/rB1d64c35c3b8b0bf831c66a3b127da6266d111620
allow removal of sockets from pack list node
===================================================================
M release/scripts/startup/function_nodes/socket_decl.py
===================================================================
diff --git a/release/scripts/startup/function_nodes/socket_decl.py b/release/scripts/startup/function_nodes/socket_decl.py
index a99d81d1114..39532b9458d 100644
--- a/release/scripts/startup/function_nodes/socket_decl.py
+++ b/release/scripts/startup/function_nodes/socket_decl.py
@@ -95,7 +95,13 @@ class PackListDecl(SocketDeclBase):
props.node_name = node.name
props.prop_name = self.prop_name
else:
- socket.draw_self(layout, node)
+ row = layout.row(align=True)
+ socket.draw_self(row, node)
+ props = row.operator("fn.remove_pack_list_input", text="", icon='X')
+ props.tree_name = node.tree.name
+ props.node_name = node.name
+ props.prop_name = self.prop_name
+ props.index = index
def operator_socket_call(self, node, own_socket, other_socket):
if not isinstance(other_socket, DataSocket):
@@ -168,6 +174,24 @@ class NewPackListInputOperator(bpy.types.Operator):
return {'FINISHED'}
+class RemovePackListInputOperator(bpy.types.Operator):
+ bl_idname = "fn.remove_pack_list_input"
+ bl_label = "Remove Pack List Input"
+ bl_options = {'INTERNAL'}
+
+ tree_name: StringProperty()
+ node_name: StringProperty()
+ prop_name: StringProperty()
+ index: IntProperty()
+
+ def execute(self, context):
+ tree = bpy.data.node_groups[self.tree_name]
+ node = tree.nodes[self.node_name]
+ collection = getattr(node, self.prop_name)
+ collection.remove(self.index)
+ node.rebuild_and_try_keep_state()
+ return {'FINISHED'}
+
class AnyVariadicDecl(SocketDeclBase):
def __init__(self, identifier: str, prop_name: str, message: str):
self.identifier_suffix = identifier
More information about the Bf-blender-cvs
mailing list