Nodes: Rename `ui_items` property to `items_tree`

DNA names are unchanged, just affects the RNA API.

Resolves #112523

Pull Request: https://projects.blender.org/blender/blender/pulls/112527
This commit is contained in:
Lukas Tönne 2023-09-18 18:07:26 +02:00
parent e59944dba4
commit 742f3b233f
5 changed files with 22 additions and 22 deletions

View File

@ -158,7 +158,7 @@ class MoveModifierToNodes(Operator):
# Copy default values for inputs and create named attribute input nodes.
input_nodes = []
first_geometry_input = None
for input_socket in old_group.interface.ui_items:
for input_socket in old_group.interface.items_tree:
if input_socket.item_type != 'SOCKET' or (input_socket.in_out not in {'INPUT', 'BOTH'}):
continue
identifier = input_socket.identifier
@ -192,7 +192,7 @@ class MoveModifierToNodes(Operator):
# Connect outputs to store named attribute nodes to replace modifier attribute outputs.
store_nodes = []
first_geometry_output = None
for output_socket in old_group.interface.ui_items:
for output_socket in old_group.interface.items_tree:
if output_socket.item_type != 'SOCKET' or (output_socket.in_out not in {'OUTPUT', 'BOTH'}):
continue
identifier = output_socket.identifier

View File

@ -361,7 +361,7 @@ class NODE_OT_interface_item_remove(NodeInterfaceOperator, Operator):
if item:
interface.remove(item)
interface.active_index = min(interface.active_index, len(interface.ui_items) - 1)
interface.active_index = min(interface.active_index, len(interface.items_tree) - 1)
return {'FINISHED'}

View File

@ -88,7 +88,7 @@ static char *rna_NodeTreeInterfaceItem_path(const PointerRNA *ptr)
ntree->ensure_interface_cache();
for (const int index : ntree->interface_items().index_range()) {
if (ntree->interface_items()[index] == item) {
return BLI_sprintfN("interface.ui_items[%d]", index);
return BLI_sprintfN("interface.items_tree[%d]", index);
}
}
return nullptr;
@ -1143,7 +1143,7 @@ static void rna_def_node_tree_interface(BlenderRNA *brna)
srna, "Node Tree Interface", "Declaration of sockets and ui panels of a node group");
RNA_def_struct_sdna(srna, "bNodeTreeInterface");
prop = RNA_def_property(srna, "ui_items", PROP_COLLECTION, PROP_NONE);
prop = RNA_def_property(srna, "items_tree", PROP_COLLECTION, PROP_NONE);
RNA_def_property_collection_funcs(prop,
"rna_NodeTreeInterface_items_begin",
"rna_iterator_array_next",

View File

@ -181,7 +181,7 @@ class AbstractNodeGroupInterfaceTest(unittest.TestCase):
# Test node group items and associated node sockets with spec data.
def compare_group_to_specs(self, group, node, specs, test_links=True):
for index, spec in enumerate(specs):
self.compare_group_socket_to_spec(group.interface.ui_items[index], node, spec, test_links=test_links)
self.compare_group_socket_to_spec(group.interface.items_tree[index], node, spec, test_links=test_links)
class NodeGroupVersioning36Test(AbstractNodeGroupInterfaceTest):

View File

@ -103,7 +103,7 @@ class NodeGroupInterfaceTests:
def test_empty_nodegroup(self):
tree, group_node = self.make_group_and_instance()
self.assertFalse(tree.interface.ui_items, "Interface not empty")
self.assertFalse(tree.interface.items_tree, "Interface not empty")
self.assertFalse(group_node.inputs)
self.assertFalse(group_node.outputs)
@ -195,7 +195,7 @@ class NodeGroupInterfaceTests:
tree.interface.new_socket("Output 0", socket_type=socket_type, in_out='OUTPUT')
tree.interface.new_socket("Input 0", socket_type=socket_type, in_out='INPUT')
self.assertSequenceEqual([(s.name, s.item_type) for s in tree.interface.ui_items], [
self.assertSequenceEqual([(s.name, s.item_type) for s in tree.interface.items_tree], [
("Output 0", 'SOCKET'),
("Input 0", 'SOCKET'),
])
@ -222,7 +222,7 @@ class NodeGroupInterfaceTests:
tree.interface.new_panel("Panel 3")
# Panels after sockets
self.assertSequenceEqual([(s.name, s.item_type) for s in tree.interface.ui_items], [
self.assertSequenceEqual([(s.name, s.item_type) for s in tree.interface.items_tree], [
("Input 0", 'SOCKET'),
("Output 0", 'SOCKET'),
("Input 1", 'SOCKET'),
@ -252,35 +252,35 @@ class NodeGroupInterfaceTests:
tree, group_node = self.make_group_and_instance()
in0 = tree.interface.new_socket("Input 0", socket_type=socket_type, in_out='INPUT')
self.assertSequenceEqual(tree.interface.ui_items, [in0])
self.assertSequenceEqual(tree.interface.items_tree, [in0])
self.assertSequenceEqual([s.name for s in group_node.inputs], ["Input 0"])
self.assertSequenceEqual([s.name for s in group_node.outputs], [])
out0 = tree.interface.new_socket("Output 0", socket_type=socket_type, in_out='OUTPUT')
self.assertSequenceEqual(tree.interface.ui_items, [in0, out0])
self.assertSequenceEqual(tree.interface.items_tree, [in0, out0])
self.assertSequenceEqual([s.name for s in group_node.inputs], ["Input 0"])
self.assertSequenceEqual([s.name for s in group_node.outputs], ["Output 0"])
panel0 = tree.interface.new_panel("Panel 0")
self.assertSequenceEqual(tree.interface.ui_items, [in0, out0, panel0])
self.assertSequenceEqual(tree.interface.items_tree, [in0, out0, panel0])
self.assertSequenceEqual([s.name for s in group_node.inputs], ["Input 0"])
self.assertSequenceEqual([s.name for s in group_node.outputs], ["Output 0"])
# Add items to the panel.
in1 = tree.interface.new_socket("Input 1", socket_type=socket_type, in_out='INPUT', parent=panel0)
self.assertSequenceEqual(tree.interface.ui_items, [in0, out0, panel0, in1])
self.assertSequenceEqual(tree.interface.items_tree, [in0, out0, panel0, in1])
self.assertSequenceEqual([s.name for s in group_node.inputs], ["Input 0", "Input 1"])
self.assertSequenceEqual([s.name for s in group_node.outputs], ["Output 0"])
out1 = tree.interface.new_socket("Output 1", socket_type=socket_type, in_out='OUTPUT', parent=panel0)
self.assertSequenceEqual(tree.interface.ui_items, [in0, out0, panel0, in1, out1])
self.assertSequenceEqual(tree.interface.items_tree, [in0, out0, panel0, in1, out1])
self.assertSequenceEqual([s.name for s in group_node.inputs], ["Input 0", "Input 1"])
self.assertSequenceEqual([s.name for s in group_node.outputs], ["Output 0", "Output 1"])
# Nested panel is not allowed and should return None.
panel1 = tree.interface.new_panel("Panel 1", parent=panel0)
self.assertIsNone(panel1)
self.assertSequenceEqual(tree.interface.ui_items, [in0, out0, panel0, in1, out1])
self.assertSequenceEqual(tree.interface.items_tree, [in0, out0, panel0, in1, out1])
self.assertSequenceEqual([s.name for s in group_node.inputs], ["Input 0", "Input 1"])
self.assertSequenceEqual([s.name for s in group_node.outputs], ["Output 0", "Output 1"])
@ -297,42 +297,42 @@ class NodeGroupInterfaceTests:
out2 = tree.interface.new_socket("Output 2", socket_type=socket_type, in_out='OUTPUT', parent=panel1)
panel2 = tree.interface.new_panel("Panel 2")
self.assertSequenceEqual(tree.interface.ui_items, [in0, out0, panel0, in1, out1, panel1, in2, out2, panel2])
self.assertSequenceEqual(tree.interface.items_tree, [in0, out0, panel0, in1, out1, panel1, in2, out2, panel2])
self.assertSequenceEqual([s.name for s in group_node.inputs], ["Input 0", "Input 1", "Input 2"])
self.assertSequenceEqual([s.name for s in group_node.outputs], ["Output 0", "Output 1", "Output 2"])
# Remove from root panel.
tree.interface.remove(in0)
self.assertSequenceEqual(tree.interface.ui_items, [out0, panel0, in1, out1, panel1, in2, out2, panel2])
self.assertSequenceEqual(tree.interface.items_tree, [out0, panel0, in1, out1, panel1, in2, out2, panel2])
self.assertSequenceEqual([s.name for s in group_node.inputs], ["Input 1", "Input 2"])
self.assertSequenceEqual([s.name for s in group_node.outputs], ["Output 0", "Output 1", "Output 2"])
# Removing a panel should move content to the parent.
tree.interface.remove(panel0)
self.assertSequenceEqual(tree.interface.ui_items, [out0, in1, out1, panel1, in2, out2, panel2])
self.assertSequenceEqual(tree.interface.items_tree, [out0, in1, out1, panel1, in2, out2, panel2])
self.assertSequenceEqual([s.name for s in group_node.inputs], ["Input 1", "Input 2"])
self.assertSequenceEqual([s.name for s in group_node.outputs], ["Output 0", "Output 1", "Output 2"])
tree.interface.remove(out0)
self.assertSequenceEqual(tree.interface.ui_items, [in1, out1, panel1, in2, out2, panel2])
self.assertSequenceEqual(tree.interface.items_tree, [in1, out1, panel1, in2, out2, panel2])
self.assertSequenceEqual([s.name for s in group_node.inputs], ["Input 1", "Input 2"])
self.assertSequenceEqual([s.name for s in group_node.outputs], ["Output 1", "Output 2"])
# Remove content from panel
tree.interface.remove(out2)
self.assertSequenceEqual(tree.interface.ui_items, [in1, out1, panel1, in2, panel2])
self.assertSequenceEqual(tree.interface.items_tree, [in1, out1, panel1, in2, panel2])
self.assertSequenceEqual([s.name for s in group_node.inputs], ["Input 1", "Input 2"])
self.assertSequenceEqual([s.name for s in group_node.outputs], ["Output 1"])
# Remove a panel and its content
tree.interface.remove(panel1, move_content_to_parent=False)
self.assertSequenceEqual(tree.interface.ui_items, [in1, out1, panel2])
self.assertSequenceEqual(tree.interface.items_tree, [in1, out1, panel2])
self.assertSequenceEqual([s.name for s in group_node.inputs], ["Input 1"])
self.assertSequenceEqual([s.name for s in group_node.outputs], ["Output 1"])
# Remove empty panel
tree.interface.remove(panel2)
self.assertSequenceEqual(tree.interface.ui_items, [in1, out1])
self.assertSequenceEqual(tree.interface.items_tree, [in1, out1])
self.assertSequenceEqual([s.name for s in group_node.inputs], ["Input 1"])
self.assertSequenceEqual([s.name for s in group_node.outputs], ["Output 1"])