Nodes: support searching for group inputs

This simplifies finding where a specific Group Input is used in a node group.
It extends what was added in #146882.

Pull Request: https://projects.blender.org/blender/blender/pulls/146992
This commit is contained in:
Jacques Lucke
2025-09-29 18:34:18 +02:00
parent 01ccf31d20
commit 1ffa0c4648

View File

@@ -1334,6 +1334,11 @@ static std::string node_find_create_node_label(const bNodeTree &ntree, const bNo
return fmt::format("{} ({})", label, node.name);
}
static std::string node_find_create_group_input_label(const bNode &node, const bNodeSocket &socket)
{
return fmt::format("{}: \"{}\" ({})", TIP_("Input"), socket.name, node.name);
}
static std::string node_find_create_string_value(const bNode &node, const StringRef str)
{
return fmt::format("{}: \"{}\" ({})", TIP_("String"), str, node.name);
@@ -1390,6 +1395,16 @@ static void node_find_update_fn(const bContext *C,
search.add(search_str, &scope.construct<Item>(Item{node, search_str}));
}
}
if (node->is_group_input()) {
for (const bNodeSocket *socket : node->output_sockets().drop_back(1)) {
if (!socket->is_directly_linked()) {
continue;
}
const StringRef search_str = scope.add_value(
node_find_create_group_input_label(*node, *socket));
search.add(search_str, &scope.construct<Item>(Item{node, search_str}));
}
}
if (node->id) {
/* Avoid showing referenced node group data-blocks twice. */
const bool skip_data_block =