[Bf-blender-cvs] [fc30d4e272a] functions: support for removing sockets in Select node
Jacques Lucke
noreply at git.blender.org
Sat Dec 14 15:36:31 CET 2019
Commit: fc30d4e272abd669d228a0036d6a21d175962949
Author: Jacques Lucke
Date: Sat Dec 14 15:36:00 2019 +0100
Branches: functions
https://developer.blender.org/rBfc30d4e272abd669d228a0036d6a21d175962949
support for removing sockets in Select node
===================================================================
M release/scripts/startup/nodes/base.py
M release/scripts/startup/nodes/function_nodes/switch.py
===================================================================
diff --git a/release/scripts/startup/nodes/base.py b/release/scripts/startup/nodes/base.py
index 793e10993a7..d7d1fb053b0 100644
--- a/release/scripts/startup/nodes/base.py
+++ b/release/scripts/startup/nodes/base.py
@@ -61,10 +61,14 @@ class BaseNode:
from . sync import skip_syncing
with skip_syncing():
+ self.init_props()
builder = self.get_node_builder()
builder.initialize_decls()
builder.build()
+ def init_props(self):
+ pass
+
@classmethod
def get_search_terms(cls):
if not cls.search_terms_only:
diff --git a/release/scripts/startup/nodes/function_nodes/switch.py b/release/scripts/startup/nodes/function_nodes/switch.py
index 3b1030cf34b..0788d3ab899 100644
--- a/release/scripts/startup/nodes/function_nodes/switch.py
+++ b/release/scripts/startup/nodes/function_nodes/switch.py
@@ -42,6 +42,10 @@ class SelectNode(bpy.types.Node, FunctionNode):
type=SelectNodeItem,
)
+ def init_props(self):
+ self.add_input()
+ self.add_input()
+
def declaration(self, builder: NodeBuilder):
builder.fixed_input("select", "Select", "Integer")
for i, item in enumerate(self.input_items):
@@ -53,6 +57,15 @@ class SelectNode(bpy.types.Node, FunctionNode):
self.invoke_type_selection(layout, "set_type", "Change Type")
self.invoke_function(layout, "add_input", "Add Input")
+ def draw_socket(self, layout, socket, text, decl, index_in_decl):
+ if len(socket.name) <= 3:
+ index = int(socket.name)
+ row = layout.row(align=True)
+ decl.draw_socket(row, socket, index_in_decl)
+ self.invoke_function(row, "remove_input", "", icon="X", settings=(index, ))
+ else:
+ decl.draw_socket(layout, socket, index_in_decl)
+
def set_type(self, data_type):
self.data_type = data_type
@@ -60,3 +73,7 @@ class SelectNode(bpy.types.Node, FunctionNode):
item = self.input_items.add()
item.identifier = str(uuid.uuid4())
self.sync_tree()
+
+ def remove_input(self, index):
+ self.input_items.remove(index)
+ self.sync_tree()
More information about the Bf-blender-cvs
mailing list