Blender
V3.3
|
Helper to build a hierarchy from an RNA path. | |
Builds a nice hierarchy representing the nested structs of the override property's RNA path using UI names and icons. For example
Paths are merged so that each RNA sub-path is only represented once in the tree. So there is some finicky path building going on to create a path -> tree-element map. This is more complicated than you'd think it needs to be. Mostly because of RNA collection overrides:
| |
OverrideRNAPathTreeBuilder (SpaceOutliner &space_outliner) | |
void | build_path (TreeElement &parent, TreeElementOverridesData &override_data, short &index) |
Definition at line 29 of file tree_element_overrides.cc.
blender::ed::outliner::OverrideRNAPathTreeBuilder::OverrideRNAPathTreeBuilder | ( | SpaceOutliner & | space_outliner | ) |
Definition at line 283 of file tree_element_overrides.cc.
void blender::ed::outliner::OverrideRNAPathTreeBuilder::build_path | ( | TreeElement & | parent, |
TreeElementOverridesData & | override_data, | ||
short & | index | ||
) |
Definition at line 288 of file tree_element_overrides.cc.
References BLI_freelistN(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), blender::ed::outliner::TreeElementOverridesData::id, LISTBASE_FOREACH, TreeElement::next, NULL, blender::ed::outliner::outliner_add_element(), blender::ed::outliner::TreeElementOverridesData::override_property, blender::ed::outliner::TreeElementOverridesData::override_rna_prop, blender::ed::outliner::TreeElementOverridesData::override_rna_ptr, PROP_COLLECTION, RNA_id_pointer_create(), IDOverrideLibraryProperty::rna_path, RNA_path_append(), RNA_path_resolve_elements(), RNA_property_collection_lookup_index(), RNA_property_type(), TreeElement::subtree, and TSE_LIBRARY_OVERRIDE.
Referenced by blender::ed::outliner::TreeElementOverridesBase::expand().