Blender V4.3
blender::ed::outliner Namespace Reference

Namespaces

namespace  tree_iterator
 

Classes

class  AbstractTreeDisplay
 Base Class For Tree-Displays. More...
 
class  AbstractTreeElement
 
struct  CollectionDrop
 
struct  CollectionDuplicateData
 
struct  CollectionEditData
 
struct  CollectionNewData
 
struct  CollectionObjectsSelectData
 
struct  IDsSelectedData
 
struct  MergedIconRow
 
struct  MergedSearchData
 
struct  ModifierFnArgs
 
struct  ObjectEditData
 
class  ObjectsChildrenBuilder
 
struct  OpenCloseData
 
struct  OutlinerHideEditData
 
struct  OutlinerLibOverrideData
 
struct  OutlinerLiboverrideDataIDRoot
 
struct  OutlinerTreeElementFocus
 
class  OverrideIDHierarchyBuilder
 
class  OverrideRNAPathTreeBuilder
 
struct  RestrictProperties
 
struct  RestrictPropertiesActive
 
struct  SelectedItems
 
struct  SpaceOutliner_Runtime
 
struct  StackDropData
 
struct  SyncSelectActiveData
 
struct  SyncSelectTypes
 
class  TreeDisplayDataAPI
 Tree-Display for the Scenes display mode. More...
 
class  TreeDisplayIDOrphans
 Tree-Display for the Orphaned Data display mode. More...
 
class  TreeDisplayLibraries
 Tree-Display for the Libraries display mode. More...
 
class  TreeDisplayOverrideLibraryHierarchies
 Tree-Display for the Library Overrides display mode, Hierarchies view mode. More...
 
class  TreeDisplayOverrideLibraryProperties
 Tree-Display for the Library Overrides display mode, Properties view mode. More...
 
class  TreeDisplayScenes
 Tree-Display for the Scenes display mode. More...
 
class  TreeDisplaySequencer
 Tree-Display for the Video Sequencer display mode. More...
 
class  TreeDisplayViewLayer
 Tree-Display for the View Layer display mode. More...
 
struct  TreeElement
 
class  TreeElementAnimData
 
class  TreeElementBone
 
class  TreeElementBoneCollection
 
class  TreeElementBoneCollectionBase
 
class  TreeElementCollectionBase
 
class  TreeElementConstraint
 
class  TreeElementConstraintBase
 
class  TreeElementDeformGroup
 
class  TreeElementDeformGroupBase
 
class  TreeElementDriverBase
 
class  TreeElementEditBone
 
class  TreeElementGPencilEffect
 
class  TreeElementGPencilEffectBase
 
class  TreeElementGPencilLayer
 
class  TreeElementGreasePencilNode
 
struct  TreeElementIcon
 
class  TreeElementID
 
class  TreeElementIDArmature
 
class  TreeElementIDCollection
 
class  TreeElementIDCurve
 
class  TreeElementIDGPLegacy
 
class  TreeElementIDGreasePencil
 
class  TreeElementIDLibrary
 
class  TreeElementIDLineStyle
 
class  TreeElementIDMesh
 
class  TreeElementIDMetaBall
 
class  TreeElementIDObject
 
class  TreeElementIDScene
 
class  TreeElementIDTexture
 
class  TreeElementLabel
 
class  TreeElementLayerCollection
 
class  TreeElementLinkedNodeTree
 
class  TreeElementLinkedObject
 
class  TreeElementModifier
 
class  TreeElementModifierBase
 
class  TreeElementNLA
 
class  TreeElementNLAAction
 
class  TreeElementNLATrack
 
class  TreeElementOverridesBase
 
struct  TreeElementOverridesData
 
class  TreeElementOverridesProperty
 
class  TreeElementOverridesPropertyOperation
 
class  TreeElementParticleSystem
 
class  TreeElementPoseBase
 
class  TreeElementPoseChannel
 
class  TreeElementRNAArrayElement
 
class  TreeElementRNACommon
 
class  TreeElementRNAProperty
 
class  TreeElementRNAStruct
 
class  TreeElementSceneObjectsBase
 
class  TreeElementSequence
 
class  TreeElementSequenceStrip
 
class  TreeElementSequenceStripDuplicate
 
class  TreeElementViewCollectionBase
 
class  TreeElementViewLayer
 
class  TreeElementViewLayerBase
 
struct  TreeSourceData
 The data to build the tree from. More...
 
struct  TreeViewContext
 
struct  tTreeSort
 

Typedefs

using TreeTraversalFunc = TreeTraversalAction (*)(TreeElement *te, void *customdata)
 
using outliner_operation_fn
 
template<typename T >
using List = ListBaseWrapper<T>
 

Enumerations

enum  TreeElementInsertType { TE_INSERT_BEFORE , TE_INSERT_AFTER , TE_INSERT_INTO }
 
enum  TreeTraversalAction { TRAVERSE_CONTINUE = 0 , TRAVERSE_BREAK , TRAVERSE_SKIP_CHILDS }
 
enum  {
  TE_ACTIVE = (1 << 0) , TE_ICONROW = (1 << 1) , TE_PRETEND_HAS_CHILDREN = (1 << 2) , TE_FREE_NAME = (1 << 3) ,
  TE_DRAGGING = (1 << 4) , TE_CHILD_NOT_IN_COLLECTION = (1 << 6) , TE_ICONROW_MERGED = (1 << 7)
}
 
enum  eOLDrawState { OL_DRAWSEL_NONE = 0 , OL_DRAWSEL_NORMAL = 1 , OL_DRAWSEL_ACTIVE = 2 }
 
enum  eOLSetState { OL_SETSEL_NONE = 0 , OL_SETSEL_NORMAL = 1 , OL_SETSEL_EXTEND = 2 }
 
enum  TreeItemSelectAction {
  OL_ITEM_DESELECT = 0 , OL_ITEM_SELECT = (1 << 0) , OL_ITEM_SELECT_DATA = (1 << 1) , OL_ITEM_ACTIVATE = (1 << 2) ,
  OL_ITEM_EXTEND = (1 << 3) , OL_ITEM_RECURSIVE = (1 << 4)
}
 
enum  SequenceAddOp { SEQUENCE_DUPLICATE_NOOP = 0 , SEQUENCE_DUPLICATE_ADD , SEQUENCE_DUPLICATE_NONE }
 

Functions

static bool outliner_view_layer_collections_editor_poll (bContext *C)
 
static bool collection_edit_in_active_scene_poll (bContext *C)
 
static bool collection_new_poll (bContext *C)
 
static void outliner_context_selected_ids (const SpaceOutliner *space_outliner, bContextDataResult *result)
 
int outliner_main_region_context (const bContext *C, const char *member, bContextDataResult *result)
 
bool outliner_item_is_co_over_name_icons (const TreeElement *te, float view_co_x)
 
bool outliner_item_is_co_over_icon (const TreeElement *te, float view_co_x)
 
bool outliner_item_is_co_over_name (const TreeElement *te, float view_co_x)
 
bool outliner_item_is_co_within_close_toggle (const TreeElement *te, float view_co_x)
 
bool outliner_shows_mode_column (const SpaceOutliner &space_outliner)
 
bool outliner_has_element_warnings (const SpaceOutliner &space_outliner)
 
TreeElementoutliner_find_item_at_y (const SpaceOutliner *space_outliner, const ListBase *tree, float view_co_y)
 
TreeElementoutliner_find_item_at_x_in_row (const SpaceOutliner *space_outliner, TreeElement *parent_te, float view_co_x, bool *r_is_merged_icon, bool *r_is_over_icon)
 
TreeElementoutliner_find_tree_element (ListBase *lb, const TreeStoreElem *store_elem)
 
TreeElementoutliner_find_parent_element (ListBase *lb, TreeElement *parent_te, const TreeElement *child_te)
 
TreeElementoutliner_find_id (SpaceOutliner *space_outliner, ListBase *lb, const ID *id)
 
TreeElementoutliner_find_posechannel (ListBase *lb, const bPoseChannel *pchan)
 
TreeElementoutliner_find_editbone (ListBase *lb, const EditBone *ebone)
 
TreeElementoutliner_search_back_te (TreeElement *te, short idcode)
 
IDoutliner_search_back (TreeElement *te, short idcode)
 
bool outliner_tree_traverse (const SpaceOutliner *space_outliner, ListBase *tree, int filter_te_flag, int filter_tselem_flag, TreeTraversalFunc func, void *customdata)
 
float outliner_right_columns_width (const SpaceOutliner *space_outliner)
 
TreeElementoutliner_find_element_with_flag (const ListBase *lb, short flag)
 
bool outliner_is_element_visible (const TreeElement *te)
 
bool outliner_is_element_in_view (const TreeElement *te, const View2D *v2d)
 
void outliner_scroll_view (SpaceOutliner *space_outliner, ARegion *region, int delta_y)
 
void outliner_tag_redraw_avoid_rebuild_on_open_change (const SpaceOutliner *space_outliner, ARegion *region)
 
void outliner_sync_selection (const bContext *C, SpaceOutliner *space_outliner)
 
template<typename TreeElementT >
TreeElementT * tree_element_cast (const TreeElement *te)
 
static void outliner_sync_select_from_outliner_set_types (bContext *C, SpaceOutliner *space_outliner, SyncSelectTypes *sync_types)
 
static bool outliner_sync_select_to_outliner_set_types (const bContext *C, SpaceOutliner *space_outliner, SyncSelectTypes *sync_types)
 
static void selected_items_init (SelectedItems *selected_items)
 
static void selected_items_free (SelectedItems *selected_items)
 
static bool is_object_selected (GSet *selected_objects, Base *base)
 
static bool is_edit_bone_selected (GSet *selected_ebones, EditBone *ebone)
 
static bool is_pose_bone_selected (GSet *selected_pbones, bPoseChannel *pchan)
 
static void add_selected_item (GSet *selected, void *data)
 
static void outliner_select_sync_to_object (ViewLayer *view_layer, TreeElement *te, TreeStoreElem *tselem, GSet *selected_objects)
 
static void outliner_select_sync_to_edit_bone (const Scene *scene, ViewLayer *view_layer, TreeElement *te, TreeStoreElem *tselem, GSet *selected_ebones)
 
static void outliner_select_sync_to_pose_bone (TreeElement *te, TreeStoreElem *tselem, GSet *selected_pbones)
 
static void outliner_select_sync_to_sequence (Scene *scene, const TreeElement *te)
 
static void outliner_sync_selection_from_outliner (Scene *scene, ViewLayer *view_layer, ListBase *tree, const SyncSelectTypes *sync_types, SelectedItems *selected_items)
 
static void outliner_select_sync_from_object (const Scene *scene, ViewLayer *view_layer, Object *obact, TreeElement *te, TreeStoreElem *tselem)
 
static void outliner_select_sync_from_edit_bone (EditBone *ebone_active, TreeElement *te, TreeStoreElem *tselem)
 
static void outliner_select_sync_from_pose_bone (bPoseChannel *pchan_active, TreeElement *te, TreeStoreElem *tselem)
 
static void outliner_select_sync_from_sequence (Sequence *sequence_active, const TreeElement *te)
 
static void outliner_sync_selection_to_outliner (const Scene *scene, ViewLayer *view_layer, SpaceOutliner *space_outliner, ListBase *tree, SyncSelectActiveData *active_data, const SyncSelectTypes *sync_types)
 
static void get_sync_select_active_data (const bContext *C, SyncSelectActiveData *active_data)
 
static TreeElementoutliner_find_item_at_x_in_row_recursive (const TreeElement *parent_te, float view_co_x, bool *r_is_merged_icon)
 
static void outliner_main_region_init (wmWindowManager *wm, ARegion *region)
 
static void outliner_main_region_draw (const bContext *C, ARegion *region)
 
static void outliner_main_region_free (ARegion *)
 
static void outliner_main_region_listener (const wmRegionListenerParams *params)
 
static void outliner_main_region_message_subscribe (const wmRegionMessageSubscribeParams *params)
 
static void outliner_header_region_init (wmWindowManager *, ARegion *region)
 
static void outliner_header_region_draw (const bContext *C, ARegion *region)
 
static void outliner_header_region_free (ARegion *)
 
static void outliner_header_region_listener (const wmRegionListenerParams *params)
 
static SpaceLinkoutliner_create (const ScrArea *, const Scene *)
 
static void outliner_free (SpaceLink *sl)
 
static void outliner_init (wmWindowManager *, ScrArea *area)
 
static SpaceLinkoutliner_duplicate (SpaceLink *sl)
 
static void outliner_id_remap (ScrArea *area, SpaceLink *slink, const blender::bke::id::IDRemapper &mappings)
 
static void outliner_foreach_id (SpaceLink *space_link, LibraryForeachIDData *data)
 
static void outliner_deactivate (ScrArea *area)
 
static void outliner_space_blend_read_data (BlendDataReader *reader, SpaceLink *sl)
 
static void outliner_space_blend_read_after_liblink (BlendLibReader *, ID *, SpaceLink *sl)
 
static void write_space_outliner (BlendWriter *writer, const SpaceOutliner *space_outliner)
 
static void outliner_space_blend_write (BlendWriter *writer, SpaceLink *sl)
 
void outliner_make_object_parent_hierarchy (ListBase *lb)
 
bool outliner_animdata_test (const AnimData *adt)
 
void tree_element_expand (const AbstractTreeElement &tree_element, SpaceOutliner &space_outliner)
 
static void outliner_add_bone (SpaceOutliner *space_outliner, ListBase *lb, ID *id, Bone *curBone, TreeElement *parent, int *a)
 
Utility API
bool outliner_is_collection_tree_element (const TreeElement *te)
 
Collectionoutliner_collection_from_tree_element (const TreeElement *te)
 
TreeTraversalAction outliner_collect_selected_collections (TreeElement *te, void *customdata)
 
TreeTraversalAction outliner_collect_selected_objects (TreeElement *te, void *customdata)
 
New Collection
static TreeTraversalAction collection_find_selected_to_add (TreeElement *te, void *customdata)
 
static int collection_new_exec (bContext *C, wmOperator *op)
 
void OUTLINER_OT_collection_new (wmOperatorType *ot)
 
Delete Collection
static TreeTraversalAction collection_collect_data_to_edit (TreeElement *te, void *customdata)
 
void outliner_collection_delete (bContext *C, Main *bmain, Scene *scene, ReportList *reports, bool do_hierarchy)
 
static int collection_hierarchy_delete_exec (bContext *C, wmOperator *op)
 
void OUTLINER_OT_collection_hierarchy_delete (wmOperatorType *ot)
 
Select/Deselect Collection Objects
static TreeTraversalAction outliner_find_first_selected_layer_collection (TreeElement *te, void *customdata)
 
static LayerCollectionoutliner_active_layer_collection (bContext *C)
 
static int collection_objects_select_exec (bContext *C, wmOperator *op)
 
void OUTLINER_OT_collection_objects_select (wmOperatorType *ot)
 
void OUTLINER_OT_collection_objects_deselect (wmOperatorType *ot)
 
Duplicate Collection
static TreeTraversalAction outliner_find_first_selected_collection (TreeElement *te, void *customdata)
 
static TreeElementoutliner_active_collection (bContext *C)
 
static int collection_duplicate_exec (bContext *C, wmOperator *op)
 
void OUTLINER_OT_collection_duplicate_linked (wmOperatorType *ot)
 
void OUTLINER_OT_collection_duplicate (wmOperatorType *ot)
 
Link Collection
static int collection_link_exec (bContext *C, wmOperator *op)
 
void OUTLINER_OT_collection_link (wmOperatorType *ot)
 
Instance Collection
static int collection_instance_exec (bContext *C, wmOperator *)
 
void OUTLINER_OT_collection_instance (wmOperatorType *ot)
 
Exclude Collection
static TreeTraversalAction layer_collection_collect_data_to_edit (TreeElement *te, void *customdata)
 
static bool collections_view_layer_poll (bContext *C, bool clear, int flag)
 
static bool collections_exclude_set_poll (bContext *C)
 
static bool collections_exclude_clear_poll (bContext *C)
 
static bool collections_holdout_set_poll (bContext *C)
 
static bool collections_holdout_clear_poll (bContext *C)
 
static bool collections_indirect_only_set_poll (bContext *C)
 
static bool collections_indirect_only_clear_poll (bContext *C)
 
static int collection_view_layer_exec (bContext *C, wmOperator *op)
 
void OUTLINER_OT_collection_exclude_set (wmOperatorType *ot)
 
void OUTLINER_OT_collection_exclude_clear (wmOperatorType *ot)
 
void OUTLINER_OT_collection_holdout_set (wmOperatorType *ot)
 
void OUTLINER_OT_collection_holdout_clear (wmOperatorType *ot)
 
void OUTLINER_OT_collection_indirect_only_set (wmOperatorType *ot)
 
void OUTLINER_OT_collection_indirect_only_clear (wmOperatorType *ot)
 
Visibility for Collection Operators
static int collection_isolate_exec (bContext *C, wmOperator *op)
 
static int collection_isolate_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void OUTLINER_OT_collection_isolate (wmOperatorType *ot)
 
static bool collection_show_poll (bContext *C)
 
static bool collection_hide_poll (bContext *C)
 
static bool collection_inside_poll (bContext *C)
 
static int collection_visibility_exec (bContext *C, wmOperator *op)
 
void OUTLINER_OT_collection_show (wmOperatorType *ot)
 
void OUTLINER_OT_collection_hide (wmOperatorType *ot)
 
void OUTLINER_OT_collection_show_inside (wmOperatorType *ot)
 
void OUTLINER_OT_collection_hide_inside (wmOperatorType *ot)
 
Enable/Disable Collection Operators
static bool collection_flag_poll (bContext *C, bool clear, int flag)
 
static bool collection_enable_poll (bContext *C)
 
static bool collection_disable_poll (bContext *C)
 
static bool collection_enable_render_poll (bContext *C)
 
static bool collection_disable_render_poll (bContext *C)
 
static int collection_flag_exec (bContext *C, wmOperator *op)
 
void OUTLINER_OT_collection_enable (wmOperatorType *ot)
 
void OUTLINER_OT_collection_disable (wmOperatorType *ot)
 
void OUTLINER_OT_collection_enable_render (wmOperatorType *ot)
 
void OUTLINER_OT_collection_disable_render (wmOperatorType *ot)
 
Visibility for Collection & Object Operators
static TreeTraversalAction outliner_hide_collect_data_to_edit (TreeElement *te, void *customdata)
 
static int outliner_hide_exec (bContext *C, wmOperator *)
 
void OUTLINER_OT_hide (wmOperatorType *ot)
 
static int outliner_unhide_all_exec (bContext *C, wmOperator *)
 
void OUTLINER_OT_unhide_all (wmOperatorType *ot)
 
Collection Color Tags
static int outliner_color_tag_set_exec (bContext *C, wmOperator *op)
 
void OUTLINER_OT_collection_color_tag_set (wmOperatorType *ot)
 
Collection Drop Operator
static Collectioncollection_parent_from_ID (ID *id)
 
static bool collection_drop_init (bContext *C, wmDrag *drag, const int xy[2], CollectionDrop *data)
 
static bool collection_drop_poll (bContext *C, wmDrag *drag, const wmEvent *event)
 
static std::string collection_drop_tooltip (bContext *C, wmDrag *drag, const int xy[2], wmDropBox *)
 
static int collection_drop_invoke (bContext *C, wmOperator *, const wmEvent *event)
 
void OUTLINER_OT_collection_drop (wmOperatorType *ot)
 
Parent Drop Operator
static bool parent_drop_allowed (TreeElement *te, Object *potential_child)
 
static bool allow_parenting_without_modifier_key (SpaceOutliner *space_outliner)
 
static bool parent_drop_poll (bContext *C, wmDrag *drag, const wmEvent *event)
 
static void parent_drop_set_parents (bContext *C, ReportList *reports, wmDragID *drag, Object *parent, short parent_type, const bool keep_transform)
 
static int parent_drop_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void OUTLINER_OT_parent_drop (wmOperatorType *ot)
 
Parent Clear Operator
static bool parent_clear_poll (bContext *C, wmDrag *drag, const wmEvent *event)
 
static int parent_clear_invoke (bContext *C, wmOperator *, const wmEvent *event)
 
void OUTLINER_OT_parent_clear (wmOperatorType *ot)
 
Scene Drop Operator
static bool scene_drop_poll (bContext *C, wmDrag *drag, const wmEvent *event)
 
static int scene_drop_invoke (bContext *C, wmOperator *, const wmEvent *event)
 
void OUTLINER_OT_scene_drop (wmOperatorType *ot)
 
Material Drop Operator
static bool material_drop_poll (bContext *C, wmDrag *drag, const wmEvent *event)
 
static int material_drop_invoke (bContext *C, wmOperator *, const wmEvent *event)
 
void OUTLINER_OT_material_drop (wmOperatorType *ot)
 
Outliner Drag Operator
static TreeElementoutliner_item_drag_element_find (SpaceOutliner *space_outliner, ARegion *region, const wmEvent *event)
 
static int outliner_item_drag_drop_invoke (bContext *C, wmOperator *, const wmEvent *event)
 
void OUTLINER_OT_item_drag_drop (wmOperatorType *ot)
 
Drop Boxes
void outliner_dropboxes ()
 
Tree Size Functions
static void outliner_tree_dimensions_impl (SpaceOutliner *space_outliner, ListBase *lb, int *width, int *height)
 
void outliner_tree_dimensions (SpaceOutliner *space_outliner, int *r_width, int *r_height)
 
static bool is_object_data_in_editmode (const ID *id, const Object *obact)
 
Button Callbacks
static void restrictbutton_recursive_ebone (bArmature *arm, EditBone *ebone_parent, int flag, bool set_flag)
 
static void restrictbutton_recursive_bone (Bone *bone_parent, int flag, bool set_flag)
 
static void restrictbutton_r_lay_fn (bContext *C, void *poin, void *)
 
static void restrictbutton_bone_visibility_fn (bContext *C, void *poin, void *)
 
static void restrictbutton_bone_select_fn (bContext *C, void *poin, void *poin2)
 
static void restrictbutton_ebone_select_fn (bContext *C, void *poin, void *poin2)
 
static void restrictbutton_ebone_visibility_fn (bContext *C, void *poin, void *poin2)
 
static void restrictbutton_gp_layer_flag_fn (bContext *C, void *poin, void *)
 
static void restrictbutton_id_user_toggle (bContext *, void *poin, void *)
 
static void outliner_object_set_flag_recursive_fn (bContext *C, Base *base, Object *ob, const char *propname)
 
static void outliner__object_set_flag_recursive_fn (bContext *C, void *poin, void *poin2)
 
static void outliner__base_set_flag_recursive_fn (bContext *C, void *poin, void *poin2)
 
static void outliner_layer_or_collection_pointer_create (Scene *scene, LayerCollection *layer_collection, Collection *collection, PointerRNA *ptr)
 
static void outliner_base_or_object_pointer_create (Scene *scene, ViewLayer *view_layer, Collection *collection, Object *ob, PointerRNA *ptr)
 
static void outliner_collection_set_flag_recursive (Scene *scene, ViewLayer *view_layer, LayerCollection *layer_collection, Collection *collection, PropertyRNA *layer_or_collection_prop, PropertyRNA *base_or_object_prop, const bool value)
 
static bool outliner_collection_is_isolated (Scene *scene, const LayerCollection *layer_collection_cmp, const Collection *collection_cmp, const bool value_cmp, const PropertyRNA *layer_or_collection_prop, LayerCollection *layer_collection, Collection *collection)
 
void outliner_collection_isolate_flag (Scene *scene, ViewLayer *view_layer, LayerCollection *layer_collection, Collection *collection, PropertyRNA *layer_or_collection_prop, const char *propname, const bool value)
 
static void outliner_collection_set_flag_recursive_fn (bContext *C, LayerCollection *layer_collection, Collection *collection, const char *propname)
 
static void view_layer__layer_collection_set_flag_recursive_fn (bContext *C, void *poin, void *poin2)
 
static void view_layer__collection_set_flag_recursive_fn (bContext *C, void *poin, void *poin2)
 
static void scenes__collection_set_flag_recursive_fn (bContext *C, void *poin, void *poin2)
 
static void namebutton_fn (bContext *C, void *tsep, char *oldname)
 
static void outliner_restrict_properties_enable_collection_set (PointerRNA *collection_ptr, RestrictProperties *props, RestrictPropertiesActive *props_active)
 
static void outliner_restrict_properties_enable_layer_collection_set (PointerRNA *layer_collection_ptr, PointerRNA *collection_ptr, RestrictProperties *props, RestrictPropertiesActive *props_active)
 
static bool outliner_restrict_properties_collection_set (Scene *scene, TreeElement *te, PointerRNA *collection_ptr, PointerRNA *layer_collection_ptr, RestrictProperties *props, RestrictPropertiesActive *props_active)
 
static void outliner_draw_restrictbuts (uiBlock *block, Scene *scene, ViewLayer *view_layer, ARegion *region, SpaceOutliner *space_outliner, ListBase *lb, RestrictPropertiesActive props_active_parent)
 
static void outliner_draw_userbuts (uiBlock *block, const ARegion *region, const SpaceOutliner *space_outliner)
 
static void outliner_draw_overrides_rna_buts (uiBlock *block, const ARegion *region, const SpaceOutliner *space_outliner, const ListBase *lb, const int x)
 
static bool outliner_but_identity_cmp_context_id_fn (const uiBut *a, const uiBut *b)
 
static void outliner_draw_overrides_restrictbuts (Main *bmain, uiBlock *block, const ARegion *region, const SpaceOutliner *space_outliner, const ListBase *lb, const int x)
 
static void outliner_draw_separator (ARegion *region, const int x)
 
static void outliner_draw_rnabuts (uiBlock *block, ARegion *region, SpaceOutliner *space_outliner, int sizex)
 
static void outliner_buttons (const bContext *C, uiBlock *block, ARegion *region, const float restrict_column_width, TreeElement *te)
 
static void outliner_mode_toggle_fn (bContext *C, void *tselem_poin, void *)
 
static void outliner_draw_mode_column_toggle (uiBlock *block, TreeViewContext *tvc, TreeElement *te, const bool lock_object_modes)
 
static void outliner_draw_mode_column (uiBlock *block, TreeViewContext *tvc, SpaceOutliner *space_outliner)
 
static StringRefNull outliner_draw_get_warning_tree_element_subtree (const TreeElement *parent_te)
 
static StringRefNull outliner_draw_get_warning_tree_element (const SpaceOutliner &space_outliner, const TreeElement *te)
 
static void outliner_draw_warning_tree_element (uiBlock *block, const SpaceOutliner *space_outliner, StringRefNull warning_msg, const bool use_mode_column, const int te_ys)
 
static void outliner_draw_warning_column (uiBlock *block, const SpaceOutliner *space_outliner, const bool use_mode_column)
 
Normal Drawing
static BIFIconID tree_element_get_icon_from_id (const ID *id)
 
TreeElementIcon tree_element_get_icon (TreeStoreElem *tselem, TreeElement *te)
 
static bool tselem_draw_icon (uiBlock *block, int xmax, float x, float y, TreeStoreElem *tselem, TreeElement *te, float alpha, const bool is_clickable, const int num_elements)
 
static void outliner_icon_background_colors (float icon_color[4], float icon_border[4])
 
static void outliner_draw_active_indicator (const float minx, const float miny, const float maxx, const float maxy, const float icon_color[4], const float icon_border[4])
 
static void outliner_draw_iconrow_doit (uiBlock *block, TreeElement *te, int xmax, int *offsx, int ys, float alpha_fac, const eOLDrawState active, const int num_elements)
 
int tree_element_id_type_to_index (TreeElement *te)
 
static void outliner_draw_iconrow (bContext *C, uiBlock *block, const uiFontStyle *fstyle, const TreeViewContext *tvc, SpaceOutliner *space_outliner, ListBase *lb, int level, int xmax, int *offsx, int ys, float alpha_fac, bool in_bone_hierarchy, const bool is_grease_pencil_node_hierarchy, MergedIconRow *merged)
 
static void outliner_set_subtree_coords (const TreeElement *te)
 
static bool element_should_draw_faded (const TreeViewContext *tvc, const TreeElement *te, const TreeStoreElem *tselem)
 
static void outliner_draw_tree_element (bContext *C, uiBlock *block, const uiFontStyle *fstyle, const TreeViewContext *tvc, ARegion *region, SpaceOutliner *space_outliner, TreeElement *te, bool draw_grayed_out, int startx, int *starty, const float restrict_column_width, TreeElement **te_edit)
 
static bool subtree_contains_object (ListBase *lb)
 
static void outliner_draw_hierarchy_line (const uint pos, const int x, const int y1, const int y2, const bool draw_dashed)
 
static void outliner_draw_hierarchy_lines_recursive (uint pos, SpaceOutliner *space_outliner, ListBase *lb, const TreeViewContext *tvc, int startx, const uchar col[4], bool draw_grayed_out, int *starty)
 
static void outliner_draw_hierarchy_lines (SpaceOutliner *space_outliner, ListBase *lb, const TreeViewContext *tvc, int startx, int *starty)
 
static void outliner_draw_struct_marks (ARegion *region, SpaceOutliner *space_outliner, ListBase *lb, int *starty)
 
static void outliner_draw_highlights (uint pos, const ARegion *region, const SpaceOutliner *space_outliner, const float col_selection[4], const float col_active[4], const float col_highlight[4], const float col_searchmatch[4], int start_x, int *io_start_y)
 
static void outliner_draw_highlights (ARegion *region, SpaceOutliner *space_outliner, int startx, int *starty)
 
static void outliner_draw_tree (bContext *C, uiBlock *block, const TreeViewContext *tvc, ARegion *region, SpaceOutliner *space_outliner, const float right_column_width, const bool use_mode_column, const bool use_warning_column, TreeElement **te_edit)
 
static void outliner_back (ARegion *region)
 
static int outliner_data_api_buttons_start_x (int max_tree_width)
 
static int outliner_width (SpaceOutliner *space_outliner, int max_tree_width, float right_column_width)
 
static void outliner_update_viewable_area (ARegion *region, SpaceOutliner *space_outliner, int tree_width, int tree_height, float right_column_width)
 
Main Entry-point

Draw contents of Outliner editor.

void draw_outliner (const bContext *C, bool do_rebuild)
 
View Show Active (Outliner) Operator
static void outliner_show_active (SpaceOutliner *space_outliner, ARegion *region, TreeElement *te, ID *id)
 
void outliner_set_coordinates (const ARegion *region, const SpaceOutliner *space_outliner)
 
static int outliner_open_back (TreeElement *te)
 
static TreeElementoutliner_show_active_get_element (bContext *C, SpaceOutliner *space_outliner, const Scene *scene, ViewLayer *view_layer)
 
static int outliner_show_active_exec (bContext *C, wmOperator *)
 
void OUTLINER_OT_show_active (wmOperatorType *ot)
 
Local Utilities
static void outliner_copybuffer_filepath_get (char filepath[FILE_MAX], size_t filepath_maxncpy)
 
Highlight on Cursor Motion Operator
static int outliner_highlight_update_invoke (bContext *C, wmOperator *, const wmEvent *event)
 
void OUTLINER_OT_highlight_update (wmOperatorType *ot)
 
Toggle Open/Closed Operator
void outliner_item_openclose (TreeElement *te, bool open, bool toggle_all)
 
static int outliner_item_openclose_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
static int outliner_item_openclose_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void OUTLINER_OT_item_openclose (wmOperatorType *ot)
 
Rename Operator
static void do_item_rename (ARegion *region, TreeElement *te, TreeStoreElem *tselem, ReportList *reports)
 
void item_rename_fn (bContext *C, ReportList *reports, Scene *, TreeElement *te, TreeStoreElem *, TreeStoreElem *tselem)
 
static TreeElementoutliner_item_rename_find_active (const SpaceOutliner *space_outliner, ReportList *reports)
 
static TreeElementoutliner_item_rename_find_hovered (const SpaceOutliner *space_outliner, ARegion *region, const wmEvent *event)
 
static int outliner_item_rename_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void OUTLINER_OT_item_rename (wmOperatorType *ot)
 
ID Delete Operator
static void id_delete_tag (bContext *C, ReportList *reports, TreeElement *te, TreeStoreElem *tselem)
 
void id_delete_tag_fn (bContext *C, ReportList *reports, Scene *, TreeElement *te, TreeStoreElem *, TreeStoreElem *tselem)
 
static int outliner_id_delete_tag (bContext *C, ReportList *reports, TreeElement *te, const float mval[2])
 
static int outliner_id_delete_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void OUTLINER_OT_id_delete (wmOperatorType *ot)
 
ID Remap Operator
static int outliner_id_remap_exec (bContext *C, wmOperator *op)
 
static bool outliner_id_remap_find_tree_element (bContext *C, wmOperator *op, ListBase *tree, const float y)
 
static int outliner_id_remap_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static const EnumPropertyItemoutliner_id_itemf (bContext *C, PointerRNA *ptr, PropertyRNA *, bool *r_free)
 
void OUTLINER_OT_id_remap (wmOperatorType *ot)
 
void id_remap_fn (bContext *C, ReportList *, Scene *, TreeElement *, TreeStoreElem *, TreeStoreElem *tselem)
 
ID Copy Operator
static int outliner_id_copy_tag (SpaceOutliner *space_outliner, ListBase *tree, blender::bke::blendfile::PartialWriteContext &copybuffer)
 
static int outliner_id_copy_exec (bContext *C, wmOperator *op)
 
void OUTLINER_OT_id_copy (wmOperatorType *ot)
 
ID Paste Operator
static int outliner_id_paste_exec (bContext *C, wmOperator *op)
 
void OUTLINER_OT_id_paste (wmOperatorType *ot)
 
Library Relocate Operator
static int lib_relocate (bContext *C, TreeElement *te, TreeStoreElem *tselem, wmOperatorType *ot, const bool reload)
 
static int outliner_lib_relocate_invoke_do (bContext *C, ReportList *reports, TreeElement *te, const float mval[2], const bool reload)
 
static int outliner_lib_relocate_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void OUTLINER_OT_lib_relocate (wmOperatorType *ot)
 
void lib_relocate_fn (bContext *C, ReportList *, Scene *, TreeElement *te, TreeStoreElem *, TreeStoreElem *tselem)
 
static int outliner_lib_reload_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
Library Reload Operator
void OUTLINER_OT_lib_reload (wmOperatorType *ot)
 
void lib_reload_fn (bContext *C, ReportList *, Scene *, TreeElement *te, TreeStoreElem *, TreeStoreElem *tselem)
 
Apply Settings Utilities
static int outliner_count_levels (ListBase *lb, const int curlevel)
 
int outliner_flag_is_any_test (ListBase *lb, short flag, const int curlevel)
 
bool outliner_flag_set (const SpaceOutliner &space_outliner, const short flag, const short set)
 
bool outliner_flag_set (const ListBase &lb, const short flag, const short set)
 
bool outliner_flag_flip (const SpaceOutliner &space_outliner, const short flag)
 
bool outliner_flag_flip (const ListBase &lb, const short flag)
 
Toggle Expanded (Outliner) Operator
static int outliner_toggle_expanded_exec (bContext *C, wmOperator *)
 
void OUTLINER_OT_expanded_toggle (wmOperatorType *ot)
 
Toggle Selected (Outliner) Operator
static int outliner_select_all_exec (bContext *C, wmOperator *op)
 
void OUTLINER_OT_select_all (wmOperatorType *ot)
 
Start / Clear Search Filter Operators
static int outliner_start_filter_exec (bContext *C, wmOperator *)
 
void OUTLINER_OT_start_filter (wmOperatorType *ot)
 
static int outliner_clear_filter_exec (bContext *C, wmOperator *)
 
void OUTLINER_OT_clear_filter (wmOperatorType *ot)
 
View Panning (Outliner) Operator
static int outliner_scroll_page_exec (bContext *C, wmOperator *op)
 
void OUTLINER_OT_scroll_page (wmOperatorType *ot)
 
Show One Level Operator
static void outliner_openclose_level (ListBase *lb, int curlevel, int level, int open)
 
static int outliner_one_level_exec (bContext *C, wmOperator *op)
 
void OUTLINER_OT_show_one_level (wmOperatorType *ot)
 
Show Hierarchy Operator
static int subtree_has_objects (ListBase *lb)
 
static void tree_element_show_hierarchy (Scene *scene, SpaceOutliner *space_outliner)
 
static int outliner_show_hierarchy_exec (bContext *C, wmOperator *)
 
void OUTLINER_OT_show_hierarchy (wmOperatorType *ot)
 
Animation Internal Utilities
static bool ed_operator_outliner_datablocks_active (bContext *C)
 
static void tree_element_to_path (TreeElement *te, TreeStoreElem *tselem, ID **id, char **path, int *array_index, short *flag, short *)
 
Driver Add Operator
static int outliner_drivers_addsel_exec (bContext *C, wmOperator *op)
 
void OUTLINER_OT_drivers_add_selected (wmOperatorType *ot)
 
Driver Remove Operator
static int outliner_drivers_deletesel_exec (bContext *C, wmOperator *op)
 
void OUTLINER_OT_drivers_delete_selected (wmOperatorType *ot)
 
Keying-Set Add Operator
static int outliner_keyingset_additems_exec (bContext *C, wmOperator *op)
 
void OUTLINER_OT_keyingset_add_selected (wmOperatorType *ot)
 
Keying-Set Remove Operator
static int outliner_keyingset_removeitems_exec (bContext *C, wmOperator *)
 
void OUTLINER_OT_keyingset_remove_selected (wmOperatorType *ot)
 
Purge Orphan Data-Blocks Operator
static bool ed_operator_outliner_id_orphans_active (bContext *C)
 
static void unused_message_gen (std::string &message, const std::array< int, INDEX_ID_MAX > &num_tagged)
 
static int unused_message_popup_width_compute (bContext *C)
 
static void outliner_orphans_purge_cleanup (wmOperator *op)
 
static bool outliner_orphans_purge_check (bContext *C, wmOperator *op)
 
static int outliner_orphans_purge_invoke (bContext *C, wmOperator *op, const wmEvent *)
 
static int outliner_orphans_purge_exec (bContext *C, wmOperator *op)
 
static void outliner_orphans_purge_cancel (bContext *, wmOperator *op)
 
static void outliner_orphans_purge_ui (bContext *, wmOperator *op)
 
void OUTLINER_OT_orphans_purge (wmOperatorType *ot)
 
Manage Orphan Data-Blocks Operator
static int outliner_orphans_manage_invoke (bContext *C, wmOperator *, const wmEvent *event)
 
void OUTLINER_OT_orphans_manage (wmOperatorType *ot)
 
Tree Management
void outliner_free_tree (ListBase *tree)
 
void outliner_cleanup_tree (SpaceOutliner *space_outliner)
 
void outliner_free_tree_element (TreeElement *element, ListBase *parent_subtree)
 
TreeElementoutliner_add_collection_recursive (SpaceOutliner *space_outliner, Collection *collection, TreeElement *ten)
 
bool outliner_requires_rebuild_on_select_or_active_change (const SpaceOutliner *space_outliner)
 
BLI_INLINE void outliner_add_collection_init (TreeElement *te, Collection *collection)
 
BLI_INLINE void outliner_add_collection_objects (SpaceOutliner *space_outliner, ListBase *tree, Collection *collection, TreeElement *parent)
 
Main Tree Building API
void outliner_build_tree (Main *mainvar, Scene *scene, ViewLayer *view_layer, SpaceOutliner *space_outliner, ARegion *region)
 
Outliner Element Selection/Activation on Click Operator
void tree_element_type_active_set (bContext *C, const TreeViewContext *tvc, TreeElement *te, TreeStoreElem *tselem, eOLSetState set, bool recursive)
 
eOLDrawState tree_element_type_active_state_get (const bContext *C, const TreeViewContext *tvc, const TreeElement *te, const TreeStoreElem *tselem)
 
void tree_element_activate (bContext *C, const TreeViewContext *tvc, TreeElement *te, eOLSetState set, bool handle_all_types)
 
eOLDrawState tree_element_active_state_get (const TreeViewContext *tvc, const TreeElement *te, const TreeStoreElem *tselem)
 
bPoseChanneloutliner_find_parent_bone (TreeElement *te, TreeElement **r_bone_te)
 
void outliner_item_select (bContext *C, SpaceOutliner *space_outliner, TreeElement *te, short select_flag)
 
bool outliner_is_co_within_mode_column (SpaceOutliner *space_outliner, const float view_mval[2])
 
void OUTLINER_OT_item_activate (wmOperatorType *ot)
 
static void tree_element_viewlayer_activate (bContext *C, TreeElement *te)
 
static void do_outliner_object_select_recursive (const Scene *scene, ViewLayer *view_layer, Object *ob_parent, bool select)
 
static void do_outliner_bone_select_recursive (bArmature *arm, Bone *bone_parent, bool select)
 
static void do_outliner_ebone_select_recursive (bArmature *arm, EditBone *ebone_parent, bool select)
 
static void tree_element_object_activate (bContext *C, Scene *scene, ViewLayer *view_layer, TreeElement *te, const eOLSetState set, bool recursive)
 
static void tree_element_material_activate (bContext *C, const Scene *scene, ViewLayer *view_layer, TreeElement *te)
 
static void tree_element_camera_activate (bContext *C, Scene *scene, TreeElement *te)
 
static void tree_element_world_activate (bContext *C, Scene *scene, TreeElement *te)
 
static void tree_element_defgroup_activate (bContext *C, TreeElement *te, TreeStoreElem *tselem)
 
static void tree_element_gplayer_activate (bContext *C, TreeElement *te, TreeStoreElem *tselem)
 
static void tree_element_grease_pencil_node_activate (bContext *C, TreeElement *te, TreeStoreElem *tselem)
 
static void tree_element_bonecollection_activate (bContext *C, TreeElement *te, TreeStoreElem *tselem)
 
static void tree_element_posechannel_activate (bContext *C, const Scene *scene, ViewLayer *view_layer, TreeElement *te, TreeStoreElem *tselem, const eOLSetState set, bool recursive)
 
static void tree_element_bone_activate (bContext *C, const Scene *scene, ViewLayer *view_layer, TreeElement *te, TreeStoreElem *tselem, const eOLSetState set, bool recursive)
 
static void tree_element_active_ebone__sel (bContext *C, bArmature *arm, EditBone *ebone, short sel)
 
static void tree_element_ebone_activate (bContext *C, const Scene *scene, ViewLayer *view_layer, TreeElement *te, TreeStoreElem *tselem, const eOLSetState set, bool recursive)
 
static void tree_element_modifier_activate (bContext *C, TreeElement *te, TreeStoreElem *tselem, const eOLSetState set)
 
static void tree_element_psys_activate (bContext *C, TreeStoreElem *tselem)
 
static void tree_element_constraint_activate (bContext *C, const Scene *scene, ViewLayer *view_layer, TreeElement *te, TreeStoreElem *tselem, const eOLSetState set)
 
static void tree_element_sequence_activate (bContext *C, Scene *scene, TreeElement *te, const eOLSetState set)
 
static void tree_element_sequence_dup_activate (Scene *scene, TreeElement *)
 
static void tree_element_master_collection_activate (const bContext *C)
 
static void tree_element_layer_collection_activate (bContext *C, TreeElement *te)
 
static void tree_element_text_activate (bContext *C, TreeElement *te)
 
static eOLDrawState tree_element_defgroup_state_get (const Scene *scene, ViewLayer *view_layer, const TreeElement *te, const TreeStoreElem *tselem)
 
static eOLDrawState tree_element_bone_state_get (const Scene *scene, ViewLayer *view_layer, const TreeElement *te, const TreeStoreElem *tselem)
 
static eOLDrawState tree_element_ebone_state_get (const TreeElement *te)
 
static eOLDrawState tree_element_modifier_state_get (const TreeElement *te, const TreeStoreElem *tselem)
 
static eOLDrawState tree_element_object_state_get (const TreeViewContext *tvc, const TreeStoreElem *tselem)
 
static eOLDrawState tree_element_pose_state_get (const Scene *scene, const ViewLayer *view_layer, const TreeStoreElem *tselem)
 
static eOLDrawState tree_element_posechannel_state_get (const Object *ob_pose, const TreeElement *te, const TreeStoreElem *tselem)
 
static eOLDrawState tree_element_viewlayer_state_get (const bContext *C, const TreeElement *te)
 
static eOLDrawState tree_element_bone_collection_state_get (const TreeElement *te, const TreeStoreElem *tselem)
 
static eOLDrawState tree_element_sequence_state_get (const Scene *scene, const TreeElement *te)
 
static eOLDrawState tree_element_sequence_dup_state_get (const TreeElement *te)
 
static eOLDrawState tree_element_gplayer_state_get (const TreeElement *te)
 
static eOLDrawState tree_element_grease_pencil_node_state_get (const TreeElement *te)
 
static eOLDrawState tree_element_master_collection_state_get (const bContext *C)
 
static eOLDrawState tree_element_layer_collection_state_get (const bContext *C, const TreeElement *te)
 
static eOLDrawState tree_element_active_material_get (const Scene *scene, ViewLayer *view_layer, const TreeElement *te)
 
static eOLDrawState tree_element_active_scene_get (const TreeViewContext *tvc, const TreeElement *te, const TreeStoreElem *tselem)
 
static eOLDrawState tree_element_active_world_get (const Scene *scene, const TreeElement *te)
 
static eOLDrawState tree_element_active_camera_get (const Scene *scene, const TreeElement *te)
 
static void outliner_sync_to_properties_editors (const bContext *C, PointerRNA *ptr, const int context)
 
static void outliner_set_properties_tab (bContext *C, TreeElement *te, TreeStoreElem *tselem)
 
static void do_outliner_item_activate_tree_element (bContext *C, const TreeViewContext *tvc, SpaceOutliner *space_outliner, TreeElement *te, TreeStoreElem *tselem, const bool extend, const bool recursive, const bool do_activate_data)
 
static Collectionoutliner_collection_get_for_recursive (bContext *C, TreeElement *te)
 
static bool can_select_recursive (TreeElement *te, Collection *in_collection)
 
static void do_outliner_select_recursive (ListBase *lb, bool selecting, Collection *in_collection)
 
static bool do_outliner_range_select_recursive (ListBase *lb, TreeElement *active, TreeElement *cursor, bool selecting, const bool recurse, Collection *in_collection)
 
static void do_outliner_range_select (bContext *C, SpaceOutliner *space_outliner, TreeElement *cursor, const bool extend, const bool recurse, Collection *in_collection)
 
static bool outliner_is_co_within_restrict_columns (const SpaceOutliner *space_outliner, const ARegion *region, float view_co_x)
 
static bool outliner_is_co_within_active_mode_column (bContext *C, SpaceOutliner *space_outliner, const float view_mval[2])
 
static int outliner_item_do_activate_from_cursor (bContext *C, const int mval[2], const bool extend, const bool use_range, const bool deselect_all, const bool recurse)
 
static int outliner_item_activate_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
Internal Utilities
void outliner_item_mode_toggle (bContext *C, TreeViewContext *tvc, TreeElement *te, bool do_extend)
 
static void do_outliner_item_editmode_toggle (bContext *C, Scene *scene, Base *base)
 
static void do_outliner_item_posemode_toggle (bContext *C, Scene *scene, Base *base)
 
static void do_outliner_item_mode_toggle_generic (bContext *C, TreeViewContext *tvc, Base *base)
 
Callbacks (Selection, Users & Library) Utilities
void outliner_do_object_operation_ex (bContext *C, ReportList *reports, Scene *scene, SpaceOutliner *space_outliner, ListBase *lb, outliner_operation_fn operation_fn, bool recurse_selected)
 
void outliner_do_object_operation (bContext *C, ReportList *reports, Scene *scene, SpaceOutliner *space_outliner, ListBase *lb, outliner_operation_fn operation_fn)
 
static void object_select_hierarchy_fn (bContext *C, ReportList *, Scene *, TreeElement *te, TreeStoreElem *, TreeStoreElem *)
 
static void object_deselect_fn (bContext *C, ReportList *, Scene *, TreeElement *, TreeStoreElem *, TreeStoreElem *tselem)
 
static void outliner_object_delete_fn (bContext *C, ReportList *reports, Scene *scene, Object *ob)
 
static void id_local_fn (bContext *C, ReportList *, Scene *, TreeElement *, TreeStoreElem *, TreeStoreElem *tselem)
 
static void id_override_library_create_hierarchy_pre_process (bContext *C, OutlinerLibOverrideData *data, ReportList *reports, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
 
static void id_override_library_create_hierarchy (Main &bmain, Scene *scene, ViewLayer *view_layer, OutlinerLibOverrideData &data, ID *id_hierarchy_root_reference, Vector< OutlinerLiboverrideDataIDRoot > &data_idroots, bool &r_aggregated_success)
 
static void id_override_library_create_hierarchy_process (bContext *C, ReportList *reports, OutlinerLibOverrideData &data)
 
static void id_override_library_reset (bContext *C, OutlinerLibOverrideData *data, TreeStoreElem *tselem)
 
static void id_override_library_clear_single_process (bContext *C, ReportList *, OutlinerLibOverrideData &data)
 
static void id_override_library_clear_single (OutlinerLibOverrideData *data, ReportList *reports, TreeStoreElem *tselem)
 
static void id_override_library_resync (OutlinerLibOverrideData *data, TreeStoreElem *tselem)
 
static void id_override_library_resync_hierarchy_process (bContext *C, ReportList *reports, OutlinerLibOverrideData &data)
 
static void id_override_library_delete_hierarchy (OutlinerLibOverrideData *data, TreeStoreElem *tselem)
 
static void id_override_library_delete_hierarchy_process (bContext *C, ReportList *, OutlinerLibOverrideData &data)
 
static void id_fake_user_set_fn (bContext *, ReportList *, Scene *, TreeElement *, TreeStoreElem *, TreeStoreElem *tselem)
 
static void id_fake_user_clear_fn (bContext *, ReportList *, Scene *, TreeElement *, TreeStoreElem *, TreeStoreElem *tselem)
 
static void id_select_linked_fn (bContext *C, ReportList *, Scene *, TreeElement *, TreeStoreElem *, TreeStoreElem *tselem)
 
static void singleuser_action_fn (bContext *C, ReportList *, Scene *, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
 
static void singleuser_world_fn (bContext *C, ReportList *, Scene *, TreeElement *, TreeStoreElem *tsep, TreeStoreElem *tselem)
 
Box Select Operator
void OUTLINER_OT_select_box (wmOperatorType *ot)
 
static void outliner_box_select (bContext *C, SpaceOutliner *space_outliner, const rctf *rectf, const bool select)
 
static int outliner_box_select_exec (bContext *C, wmOperator *op)
 
static int outliner_box_select_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
Walk Select Operator
void OUTLINER_OT_select_walk (wmOperatorType *ot)
 
static TreeElementoutliner_find_rightmost_visible_child (SpaceOutliner *space_outliner, TreeElement *te)
 
static TreeElementoutliner_find_previous_element (SpaceOutliner *space_outliner, TreeElement *te)
 
static TreeElementoutliner_element_find_successor_in_parents (TreeElement *te)
 
static TreeElementoutliner_find_next_element (SpaceOutliner *space_outliner, TreeElement *te)
 
static TreeElementoutliner_walk_left (SpaceOutliner *space_outliner, TreeElement *te, bool toggle_all)
 
static TreeElementoutliner_walk_right (SpaceOutliner *space_outliner, TreeElement *te, bool toggle_all)
 
static TreeElementdo_outliner_select_walk (SpaceOutliner *space_outliner, TreeElement *te, const int direction, const bool extend, const bool toggle_all)
 
static TreeElementfind_walk_select_start_element (SpaceOutliner *space_outliner, bool *r_changed)
 
static void outliner_walk_scroll (SpaceOutliner *space_outliner, ARegion *region, TreeElement *te)
 
static int outliner_walk_select_invoke (bContext *C, wmOperator *op, const wmEvent *)
 
Search Utilities
void merged_element_search_menu_invoke (bContext *C, TreeElement *parent_te, TreeElement *activate_te)
 
static void merged_element_search_fn_recursive (const ListBase *tree, short tselem_type, short type, const char *str, uiSearchItems *items)
 
static void merged_element_search_update_fn (const bContext *, void *data, const char *str, uiSearchItems *items, const bool)
 
static void merged_element_search_exec_fn (bContext *C, void *, void *element)
 
static uiBlockmerged_element_search_menu (bContext *C, ARegion *region, void *data)
 
static void object_select_fn (bContext *C, ReportList *, Scene *, TreeElement *, TreeStoreElem *, TreeStoreElem *tselem)
 
Context Menu Operator
void OUTLINER_OT_operation (wmOperatorType *ot)
 
static int outliner_operator_menu (bContext *C, const char *opname)
 
static int do_outliner_operation_event (bContext *C, ARegion *region, SpaceOutliner *space_outliner, TreeElement *te)
 
static int outliner_operation_invoke (bContext *C, wmOperator *, const wmEvent *event)
 
Data Menu Operator
void OUTLINER_OT_data_operation (wmOperatorType *ot)
 
static bool outliner_data_operation_poll (bContext *C)
 
static int outliner_data_operation_exec (bContext *C, wmOperator *op)
 
static const EnumPropertyItemoutliner_data_op_sets_enum_item_fn (bContext *C, PointerRNA *, PropertyRNA *, bool *)
 
Outliner Set Active Action Operator
void OUTLINER_OT_action_set (wmOperatorType *ot)
 
static void outliner_do_id_set_operation (SpaceOutliner *space_outliner, int type, ID *newid, void(*operation_fn)(TreeElement *, TreeStoreElem *, TreeStoreElem *, ID *))
 
static void actionset_id_fn (TreeElement *, TreeStoreElem *tselem, TreeStoreElem *tsep, ID *actId)
 
static int outliner_action_set_exec (bContext *C, wmOperator *op)
 
Registration
void outliner_operatortypes ()
 
void outliner_keymap (wmKeyConfig *keyconf)
 
Tree View Context
void outliner_viewcontext_init (const bContext *C, TreeViewContext *tvc)
 
Internal Tagging Utilities
static void clear_animdata_fn (int, TreeElement *, TreeStoreElem *tselem, void *)
 
static void unlinkact_animdata_fn (int, TreeElement *, TreeStoreElem *tselem, void *)
 
static void cleardrivers_animdata_fn (int, TreeElement *, TreeStoreElem *tselem, void *)
 
static void refreshdrivers_animdata_fn (int, TreeElement *, TreeStoreElem *tselem, void *)
 
Tree Filtering Helper
static int outliner_exclude_filter_get (const SpaceOutliner *space_outliner)
 
static void outliner_restore_scrolling_position (SpaceOutliner *space_outliner, ARegion *region, OutlinerTreeElementFocus *focus)
 
static bool test_collection_callback (TreeElement *te)
 
static bool test_object_callback (TreeElement *te)
 
static TreeElementoutliner_find_first_desired_element_at_y_recursive (const SpaceOutliner *space_outliner, TreeElement *te, const float limit, bool(*callback_test)(TreeElement *))
 
static TreeElementoutliner_find_first_desired_element_at_y (const SpaceOutliner *space_outliner, const float view_co, const float view_co_limit)
 
static void outliner_store_scrolling_position (SpaceOutliner *space_outliner, ARegion *region, OutlinerTreeElementFocus *focus)
 
static bool outliner_element_visible_get (const Scene *scene, ViewLayer *view_layer, TreeElement *te, const int exclude_filter)
 
static bool outliner_filter_has_name (TreeElement *te, const char *name, int flags)
 
static bool outliner_element_is_collection_or_object (TreeElement *te)
 
static TreeElementoutliner_extract_children_from_subtree (TreeElement *element, ListBase *parent_subtree)
 
static int outliner_filter_subtree (SpaceOutliner *space_outliner, const Scene *scene, ViewLayer *view_layer, ListBase *lb, const char *search_string, const int exclude_filter)
 
static void outliner_filter_tree (SpaceOutliner *space_outliner, const Scene *scene, ViewLayer *view_layer)
 
static void outliner_clear_newid_from_main (Main *bmain)
 
Persistent Data
static void outliner_storage_cleanup (SpaceOutliner *space_outliner)
 
static void check_persistent (SpaceOutliner *space_outliner, TreeElement *te, ID *id, short type, short nr)
 
Tree Sorting Helper
static int treesort_alpha_ob (const void *v1, const void *v2)
 
static int treesort_child_not_in_collection (const void *v1, const void *v2)
 
static int treesort_alpha (const void *v1, const void *v2)
 
static void outliner_sort (ListBase *lb)
 
static void outliner_collections_children_sort (ListBase *lb)
 
ID Helpers.
const char * outliner_idcode_to_plural (short idcode)
 
Base Element

Represents an ID that has overridden properties. The expanding will invoke building of tree elements for the full RNA path of the property.

static void iterate_properties_to_display (ID &id, const bool show_system_overrides, FunctionRef< void(TreeElementOverridesData &data)> fn)
 
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 animation_visualization_mothion_path.frame_end becomes:

  • Animation Visualization

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:

  • A single override may add (and in future remove) multiple collection items. So all operations of the override have to be considered.
  • The order of collection items may matter (e.g. for modifiers), so if collection items are added/removed, we want to show all other collection items too, in the right order.
  • If the override is inside some collection item, the collection item has to be built, but the RNA path iterator doesn't
static BIFIconID get_property_icon (PointerRNA &ptr, PropertyRNA &prop)
 

Variables

static const char * outliner_context_dir []
 
static CLG_LogRef LOG = {"ed.outliner.tools"}
 

Data Stack Drop Operator

A generic operator to allow drag and drop for modifiers, constraints, and shader effects which all share the same UI stack layout.

The following operations are allowed:

  • Reordering within an object.
  • Copying a single modifier/constraint/effect to another object.
  • Copying (linking) an object's modifiers/constraints/effects to another.
enum  eDataStackDropAction { DATA_STACK_DROP_REORDER , DATA_STACK_DROP_COPY , DATA_STACK_DROP_LINK }
 
static void datastack_drop_data_init (wmDrag *drag, Object *ob, bPoseChannel *pchan, TreeElement *te, TreeStoreElem *tselem, void *directdata)
 
static bool datastack_drop_init (bContext *C, const wmEvent *event, StackDropData *drop_data)
 
static bool datastack_drop_are_types_valid (StackDropData *drop_data)
 
static bool datastack_drop_poll (bContext *C, wmDrag *drag, const wmEvent *event)
 
static std::string datastack_drop_tooltip (bContext *, wmDrag *drag, const int[2], wmDropBox *)
 
static void datastack_drop_link (bContext *C, StackDropData *drop_data)
 
static void datastack_drop_copy (bContext *C, StackDropData *drop_data)
 
static void datastack_drop_reorder (bContext *C, ReportList *reports, StackDropData *drop_data)
 
static int datastack_drop_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void OUTLINER_OT_datastack_drop (wmOperatorType *ot)
 

Driver Internal Utilities

enum  { DRIVERS_EDITMODE_ADD = 0 , DRIVERS_EDITMODE_REMOVE }
 
static void do_outliner_drivers_editop (SpaceOutliner *space_outliner, ReportList *reports, short mode)
 

Keying-Set Internal Utilities

enum  { KEYINGSET_EDITMODE_ADD = 0 , KEYINGSET_EDITMODE_REMOVE }
 
static KeyingSetverify_active_keyingset (Scene *scene, short add)
 
static void do_outliner_keyingset_editop (SpaceOutliner *space_outliner, KeyingSet *ks, const short mode)
 

ID/Library/Data Set/Un-link Utilities

enum  eOutlinerLibOpSelectionSet { OUTLINER_LIB_SELECTIONSET_SELECTED , OUTLINER_LIB_LIB_SELECTIONSET_CONTENT , OUTLINER_LIB_LIB_SELECTIONSET_SELECTED_AND_CONTENT }
 
static const EnumPropertyItem prop_lib_op_selection_set []
 
static void get_element_operation_type (const TreeElement *te, int *scenelevel, int *objectlevel, int *idlevel, int *datalevel)
 
static TreeElementget_target_element (const SpaceOutliner *space_outliner)
 
static bool outliner_operation_tree_element_poll (bContext *C)
 
static void unlink_action_fn (bContext *C, ReportList *reports, Scene *, TreeElement *, TreeStoreElem *tsep, TreeStoreElem *tselem)
 
static void unlink_material_fn (bContext *, ReportList *reports, Scene *, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
 
static void unlink_texture_fn (bContext *, ReportList *reports, Scene *, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
 
static void unlink_collection_fn (bContext *C, ReportList *reports, Scene *, TreeElement *, TreeStoreElem *tsep, TreeStoreElem *tselem)
 
static void unlink_object_fn (bContext *C, ReportList *reports, Scene *, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
 
static void unlink_world_fn (bContext *, ReportList *reports, Scene *, TreeElement *, TreeStoreElem *tsep, TreeStoreElem *tselem)
 
static void outliner_do_libdata_operation (bContext *C, ReportList *reports, Scene *scene, SpaceOutliner *space_outliner, outliner_operation_fn operation_fn)
 
static bool outliner_do_libdata_operation_selection_set_element (bContext *C, ReportList *reports, Scene *scene, TreeElement *element, TreeStoreElem *tselem, const bool has_parent_selected, outliner_operation_fn operation_fn, eOutlinerLibOpSelectionSet selection_set)
 
static void outliner_do_libdata_operation_selection_set (bContext *C, ReportList *reports, Scene *scene, SpaceOutliner *space_outliner, const ListBase &subtree, const bool has_parent_selected, outliner_operation_fn operation_fn, eOutlinerLibOpSelectionSet selection_set)
 
static void outliner_do_libdata_operation_selection_set (bContext *C, ReportList *reports, Scene *scene, SpaceOutliner *space_outliner, outliner_operation_fn operation_fn, eOutlinerLibOpSelectionSet selection_set, const bool do_active_element_first)
 

Scene Menu Operator

enum  eOutliner_PropSceneOps { OL_SCENE_OP_DELETE = 1 }
 
static const EnumPropertyItem prop_scene_op_types []
 
void OUTLINER_OT_scene_operation (wmOperatorType *ot)
 
static bool outliner_do_scene_operation (bContext *C, SpaceOutliner *space_outliner, eOutliner_PropSceneOps event, bool(*operation_fn)(bContext *, eOutliner_PropSceneOps, TreeElement *, TreeStoreElem *))
 
static bool scene_fn (bContext *C, eOutliner_PropSceneOps event, TreeElement *, TreeStoreElem *tselem)
 
static int outliner_scene_operation_exec (bContext *C, wmOperator *op)
 

Library Overrides Operation Menu.

enum  eOutlinerLibOverrideOpTypes {
  OUTLINER_LIBOVERRIDE_OP_INVALID = 0 , OUTLINER_LIBOVERRIDE_OP_CREATE_HIERARCHY , OUTLINER_LIBOVERRIDE_OP_RESET , OUTLINER_LIBOVERRIDE_OP_CLEAR_SINGLE ,
  OUTLINER_LIBOVERRIDE_OP_RESYNC_HIERARCHY , OUTLINER_LIBOVERRIDE_OP_RESYNC_HIERARCHY_ENFORCE , OUTLINER_LIBOVERRIDE_OP_DELETE_HIERARCHY
}
 
static const EnumPropertyItem prop_liboverride_op_types []
 
static const EnumPropertyItem prop_liboverride_troubleshoot_op_types []
 
void OUTLINER_OT_liboverride_operation (wmOperatorType *ot)
 
void OUTLINER_OT_liboverride_troubleshoot_operation (wmOperatorType *ot)
 
static bool outliner_liboverride_operation_poll (bContext *C)
 
static int outliner_liboverride_operation_exec (bContext *C, wmOperator *op)
 

Object Operation Utilities

enum  eOutliner_PropDataOps {
  OL_DOP_SELECT = 1 , OL_DOP_DESELECT , OL_DOP_HIDE , OL_DOP_UNHIDE ,
  OL_DOP_SELECT_LINKED
}
 
enum  eOutliner_PropConstraintOps { OL_CONSTRAINTOP_ENABLE = 1 , OL_CONSTRAINTOP_DISABLE , OL_CONSTRAINTOP_DELETE }
 
enum  eOutliner_PropModifierOps { OL_MODIFIER_OP_TOGVIS = 1 , OL_MODIFIER_OP_TOGREN , OL_MODIFIER_OP_DELETE , OL_MODIFIER_OP_APPLY }
 
static void pchan_fn (int event, TreeElement *te, TreeStoreElem *, void *)
 
static void bone_fn (int event, TreeElement *te, TreeStoreElem *, void *)
 
static void ebone_fn (int event, TreeElement *te, TreeStoreElem *, void *)
 
static void sequence_fn (int event, TreeElement *te, TreeStoreElem *, void *scene_ptr)
 
static void gpencil_layer_fn (int event, TreeElement *te, TreeStoreElem *, void *)
 
static void grease_pencil_node_fn (int event, TreeElement *te, TreeStoreElem *, void *)
 
static void data_select_linked_fn (int event, TreeElement *te, TreeStoreElem *, void *C_v)
 
static void constraint_fn (int event, TreeElement *te, TreeStoreElem *, void *C_v)
 
static void modifier_fn (int event, TreeElement *te, TreeStoreElem *, void *arg)
 
static void outliner_do_data_operation (SpaceOutliner *space_outliner, int type, int event, void(*operation_fn)(int, TreeElement *, TreeStoreElem *, void *), void *arg)
 
static void outliner_batch_delete_object_tag (ReportList *reports, Main *bmain, Scene *scene, Object *object)
 
static void outliner_batch_delete_object_hierarchy_tag (ReportList *reports, Main *bmain, ViewLayer *view_layer, Scene *scene, Base *base)
 
static void object_batch_delete_hierarchy_tag_fn (bContext *C, ReportList *reports, Scene *scene, Object *ob)
 
static void outliner_batch_delete_object_hierarchy (Main *bmain, Scene *scene)
 

Object Menu Operator

enum  {
  OL_OP_SELECT = 1 , OL_OP_DESELECT , OL_OP_SELECT_HIERARCHY , OL_OP_REMAP ,
  OL_OP_RENAME
}
 
static const EnumPropertyItem prop_object_op_types []
 
void OUTLINER_OT_object_operation (wmOperatorType *ot)
 
static int outliner_object_operation_exec (bContext *C, wmOperator *op)
 

ID-Data Menu Operator

enum  eOutlinerIdOpTypes {
  OUTLINER_IDOP_INVALID = 0 , OUTLINER_IDOP_UNLINK , OUTLINER_IDOP_LOCAL , OUTLINER_IDOP_SINGLE ,
  OUTLINER_IDOP_DELETE , OUTLINER_IDOP_REMAP , OUTLINER_IDOP_COPY , OUTLINER_IDOP_PASTE ,
  OUTLINER_IDOP_FAKE_ADD , OUTLINER_IDOP_FAKE_CLEAR , OUTLINER_IDOP_RENAME , OUTLINER_IDOP_SELECT_LINKED
}
 
static const EnumPropertyItem prop_id_op_types []
 
void OUTLINER_OT_id_operation (wmOperatorType *ot)
 
static bool outliner_id_operation_item_poll (bContext *C, PointerRNA *, PropertyRNA *, const int enum_value)
 
static const EnumPropertyItemoutliner_id_operation_itemf (bContext *C, PointerRNA *ptr, PropertyRNA *prop, bool *r_free)
 
static int outliner_id_operation_exec (bContext *C, wmOperator *op)
 

Library Menu Operator

enum  eOutlinerLibOpTypes { OL_LIB_INVALID = 0 , OL_LIB_DELETE , OL_LIB_RELOCATE , OL_LIB_RELOAD }
 
static const EnumPropertyItem outliner_lib_op_type_items []
 
void OUTLINER_OT_lib_operation (wmOperatorType *ot)
 
static int outliner_lib_operation_exec (bContext *C, wmOperator *op)
 

Animation Menu Operator

enum  eOutliner_AnimDataOps {
  OUTLINER_ANIMOP_INVALID = 0 , OUTLINER_ANIMOP_CLEAR_ADT , OUTLINER_ANIMOP_SET_ACT , OUTLINER_ANIMOP_CLEAR_ACT ,
  OUTLINER_ANIMOP_REFRESH_DRV , OUTLINER_ANIMOP_CLEAR_DRV
}
 
static const EnumPropertyItem prop_animdata_op_types []
 
void OUTLINER_OT_animdata_operation (wmOperatorType *ot)
 
static int outliner_animdata_operation_exec (bContext *C, wmOperator *op)
 

Library override hierarchy building

enum  ForeachChildReturn { FOREACH_CONTINUE , FOREACH_BREAK }
 
static void foreach_natural_hierarchy_child (const MainIDRelations &id_relations, const ID &parent_id, FunctionRef< ForeachChildReturn(ID &)> fn)
 
static bool id_is_in_override_hierarchy (const Main &bmain, const ID &id, const ID &relationship_parent_id, const ID &override_root_id)
 

Drop Target Find

using CheckTypeFn = bool (*)(TreeElement *te)
 
static TreeElementoutliner_dropzone_element (TreeElement *te, const float fmval[2], const bool children)
 
static TreeElementoutliner_dropzone_find (const SpaceOutliner *space_outliner, const float fmval[2], const bool children)
 
static TreeElementoutliner_drop_find (bContext *C, const wmEvent *event)
 
static IDoutliner_ID_drop_find (bContext *C, const wmEvent *event, short idcode)
 
static TreeElementoutliner_drop_insert_find (bContext *C, const int xy[2], TreeElementInsertType *r_insert_type)
 
static TreeElementoutliner_data_from_tree_element_and_parents (CheckTypeFn check_type, TreeElement *te)
 
static bool is_collection_element (TreeElement *te)
 
static bool is_object_element (TreeElement *te)
 
static bool is_pchan_element (TreeElement *te)
 
static TreeElementoutliner_drop_insert_collection_find (bContext *C, const int xy[2], TreeElementInsertType *r_insert_type)
 
static int outliner_get_insert_index (TreeElement *drag_te, TreeElement *drop_te, TreeElementInsertType insert_type, ListBase *listbase)
 

Delete Object/Collection Operator

using OutlinerDeleteFn = void (*)(bContext *C, ReportList *reports, Scene *scene, Object *ob)
 
void OUTLINER_OT_delete (wmOperatorType *ot)
 
static void outliner_do_object_delete (bContext *C, ReportList *reports, Scene *scene, GSet *objects_to_delete, OutlinerDeleteFn delete_fn)
 
static TreeTraversalAction outliner_collect_objects_to_delete (TreeElement *te, void *customdata)
 
static int outliner_delete_exec (bContext *C, wmOperator *op)
 

Constraint Menu Operator

static const EnumPropertyItem prop_constraint_op_types []
 
void OUTLINER_OT_constraint_operation (wmOperatorType *ot)
 
static int outliner_constraint_operation_exec (bContext *C, wmOperator *op)
 

Modifier Menu Operator

static const EnumPropertyItem prop_modifier_op_types []
 
void OUTLINER_OT_modifier_operation (wmOperatorType *ot)
 
static int outliner_modifier_operation_exec (bContext *C, wmOperator *op)
 

Typedef Documentation

◆ CheckTypeFn

Definition at line 182 of file outliner_dragdrop.cc.

◆ List

template<typename T >
using blender::ed::outliner::List = ListBaseWrapper<T>

Definition at line 26 of file tree_display_libraries.cc.

◆ outliner_operation_fn

◆ OutlinerDeleteFn

using blender::ed::outliner::OutlinerDeleteFn = void (*)(bContext *C, ReportList *reports, Scene *scene, Object *ob)

Definition at line 2596 of file outliner_tools.cc.

◆ TreeTraversalFunc

Definition at line 82 of file outliner_intern.hh.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Driver Operations

These operators are only available in data-browser mode for now, as they depend on having RNA paths and/or hierarchies available.

Enumerator
DRIVERS_EDITMODE_ADD 
DRIVERS_EDITMODE_REMOVE 

Definition at line 1830 of file outliner_edit.cc.

◆ anonymous enum

anonymous enum

Keying-Set Operations

These operators are only available in data-browser mode for now, as they depend on having RNA paths and/or hierarchies available.

Enumerator
KEYINGSET_EDITMODE_ADD 
KEYINGSET_EDITMODE_REMOVE 

Definition at line 1995 of file outliner_edit.cc.

◆ anonymous enum

anonymous enum
Enumerator
TE_ACTIVE 
TE_ICONROW 
TE_PRETEND_HAS_CHILDREN 

Treat the element as if it had children, e.g. draw an icon to un-collapse it, even if it doesn't. Used where children are lazy-built only if the parent isn't collapsed (see AbstractTreeDisplay::is_lazy_built()).

TE_FREE_NAME 
TE_DRAGGING 
TE_CHILD_NOT_IN_COLLECTION 
TE_ICONROW_MERGED 

Definition at line 156 of file outliner_intern.hh.

◆ anonymous enum

anonymous enum
Enumerator
OL_OP_SELECT 
OL_OP_DESELECT 
OL_OP_SELECT_HIERARCHY 
OL_OP_REMAP 
OL_OP_RENAME 

Definition at line 2469 of file outliner_tools.cc.

◆ eDataStackDropAction

Enumerator
DATA_STACK_DROP_REORDER 
DATA_STACK_DROP_COPY 
DATA_STACK_DROP_LINK 

Definition at line 688 of file outliner_dragdrop.cc.

◆ eOLDrawState

Enumerator
OL_DRAWSEL_NONE 
OL_DRAWSEL_NORMAL 
OL_DRAWSEL_ACTIVE 

Definition at line 176 of file outliner_intern.hh.

◆ eOLSetState

Enumerator
OL_SETSEL_NONE 
OL_SETSEL_NORMAL 
OL_SETSEL_EXTEND 

Definition at line 182 of file outliner_intern.hh.

◆ eOutliner_AnimDataOps

Enumerator
OUTLINER_ANIMOP_INVALID 
OUTLINER_ANIMOP_CLEAR_ADT 
OUTLINER_ANIMOP_SET_ACT 
OUTLINER_ANIMOP_CLEAR_ACT 
OUTLINER_ANIMOP_REFRESH_DRV 
OUTLINER_ANIMOP_CLEAR_DRV 

Definition at line 3271 of file outliner_tools.cc.

◆ eOutliner_PropConstraintOps

Enumerator
OL_CONSTRAINTOP_ENABLE 
OL_CONSTRAINTOP_DISABLE 
OL_CONSTRAINTOP_DELETE 

Definition at line 2080 of file outliner_tools.cc.

◆ eOutliner_PropDataOps

Enumerator
OL_DOP_SELECT 
OL_DOP_DESELECT 
OL_DOP_HIDE 
OL_DOP_UNHIDE 
OL_DOP_SELECT_LINKED 

Definition at line 2072 of file outliner_tools.cc.

◆ eOutliner_PropModifierOps

Enumerator
OL_MODIFIER_OP_TOGVIS 
OL_MODIFIER_OP_TOGREN 
OL_MODIFIER_OP_DELETE 
OL_MODIFIER_OP_APPLY 

Definition at line 2086 of file outliner_tools.cc.

◆ eOutliner_PropSceneOps

Enumerator
OL_SCENE_OP_DELETE 

Definition at line 677 of file outliner_tools.cc.

◆ eOutlinerIdOpTypes

Enumerator
OUTLINER_IDOP_INVALID 
OUTLINER_IDOP_UNLINK 
OUTLINER_IDOP_LOCAL 
OUTLINER_IDOP_SINGLE 
OUTLINER_IDOP_DELETE 
OUTLINER_IDOP_REMAP 
OUTLINER_IDOP_COPY 
OUTLINER_IDOP_PASTE 
OUTLINER_IDOP_FAKE_ADD 
OUTLINER_IDOP_FAKE_CLEAR 
OUTLINER_IDOP_RENAME 
OUTLINER_IDOP_SELECT_LINKED 

Definition at line 2768 of file outliner_tools.cc.

◆ eOutlinerLibOpSelectionSet

Enumerator
OUTLINER_LIB_SELECTIONSET_SELECTED 
OUTLINER_LIB_LIB_SELECTIONSET_CONTENT 
OUTLINER_LIB_LIB_SELECTIONSET_SELECTED_AND_CONTENT 

Definition at line 554 of file outliner_tools.cc.

◆ eOutlinerLibOpTypes

Enumerator
OL_LIB_INVALID 
OL_LIB_DELETE 
OL_LIB_RELOCATE 
OL_LIB_RELOAD 

Definition at line 3066 of file outliner_tools.cc.

◆ eOutlinerLibOverrideOpTypes

Enumerator
OUTLINER_LIBOVERRIDE_OP_INVALID 
OUTLINER_LIBOVERRIDE_OP_CREATE_HIERARCHY 
OUTLINER_LIBOVERRIDE_OP_RESET 
OUTLINER_LIBOVERRIDE_OP_CLEAR_SINGLE 
OUTLINER_LIBOVERRIDE_OP_RESYNC_HIERARCHY 
OUTLINER_LIBOVERRIDE_OP_RESYNC_HIERARCHY_ENFORCE 
OUTLINER_LIBOVERRIDE_OP_DELETE_HIERARCHY 

Definition at line 1782 of file outliner_tools.cc.

◆ ForeachChildReturn

Enumerator
FOREACH_CONTINUE 
FOREACH_BREAK 

Definition at line 187 of file tree_display_override_library_hierarchies.cc.

◆ SequenceAddOp

Enumerator
SEQUENCE_DUPLICATE_NOOP 
SEQUENCE_DUPLICATE_ADD 
SEQUENCE_DUPLICATE_NONE 

Definition at line 220 of file tree_display.hh.

◆ TreeElementInsertType

Enumerator
TE_INSERT_BEFORE 
TE_INSERT_AFTER 
TE_INSERT_INTO 

Definition at line 67 of file outliner_intern.hh.

◆ TreeItemSelectAction

Enumerator
OL_ITEM_DESELECT 
OL_ITEM_SELECT 
OL_ITEM_SELECT_DATA 
OL_ITEM_ACTIVATE 
OL_ITEM_EXTEND 
OL_ITEM_RECURSIVE 

Definition at line 250 of file outliner_intern.hh.

◆ TreeTraversalAction

Enumerator
TRAVERSE_CONTINUE 

Continue traversal regularly, don't skip children.

TRAVERSE_BREAK 

Stop traversal.

TRAVERSE_SKIP_CHILDS 

Continue traversal, but skip children of traversed element.

Definition at line 73 of file outliner_intern.hh.

Function Documentation

◆ actionset_id_fn()

static void blender::ed::outliner::actionset_id_fn ( TreeElement * ,
TreeStoreElem * tselem,
TreeStoreElem * tsep,
ID * actId )
static

◆ add_selected_item()

static void blender::ed::outliner::add_selected_item ( GSet * selected,
void * data )
static

◆ allow_parenting_without_modifier_key()

static bool blender::ed::outliner::allow_parenting_without_modifier_key ( SpaceOutliner * space_outliner)
static

◆ bone_fn()

static void blender::ed::outliner::bone_fn ( int event,
TreeElement * te,
TreeStoreElem * ,
void *  )
static

◆ can_select_recursive()

◆ check_persistent()

◆ clear_animdata_fn()

static void blender::ed::outliner::clear_animdata_fn ( int ,
TreeElement * ,
TreeStoreElem * tselem,
void *  )
static

◆ cleardrivers_animdata_fn()

static void blender::ed::outliner::cleardrivers_animdata_fn ( int ,
TreeElement * ,
TreeStoreElem * tselem,
void *  )
static

◆ collection_collect_data_to_edit()

◆ collection_disable_poll()

static bool blender::ed::outliner::collection_disable_poll ( bContext * C)
static

◆ collection_disable_render_poll()

static bool blender::ed::outliner::collection_disable_render_poll ( bContext * C)
static

◆ collection_drop_init()

◆ collection_drop_invoke()

◆ collection_drop_poll()

◆ collection_drop_tooltip()

◆ collection_duplicate_exec()

◆ collection_edit_in_active_scene_poll()

static bool blender::ed::outliner::collection_edit_in_active_scene_poll ( bContext * C)
static

◆ collection_enable_poll()

static bool blender::ed::outliner::collection_enable_poll ( bContext * C)
static

◆ collection_enable_render_poll()

static bool blender::ed::outliner::collection_enable_render_poll ( bContext * C)
static

◆ collection_find_selected_to_add()

static TreeTraversalAction blender::ed::outliner::collection_find_selected_to_add ( TreeElement * te,
void * customdata )
static

◆ collection_flag_exec()

◆ collection_flag_poll()

◆ collection_hide_poll()

static bool blender::ed::outliner::collection_hide_poll ( bContext * C)
static

◆ collection_hierarchy_delete_exec()

◆ collection_inside_poll()

static bool blender::ed::outliner::collection_inside_poll ( bContext * C)
static

◆ collection_instance_exec()

◆ collection_isolate_exec()

◆ collection_isolate_invoke()

static int blender::ed::outliner::collection_isolate_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ collection_link_exec()

◆ collection_new_exec()

◆ collection_new_poll()

static bool blender::ed::outliner::collection_new_poll ( bContext * C)
static

◆ collection_objects_select_exec()

◆ collection_parent_from_ID()

static Collection * blender::ed::outliner::collection_parent_from_ID ( ID * id)
static

◆ collection_show_poll()

static bool blender::ed::outliner::collection_show_poll ( bContext * C)
static

◆ collection_view_layer_exec()

◆ collection_visibility_exec()

◆ collections_exclude_clear_poll()

static bool blender::ed::outliner::collections_exclude_clear_poll ( bContext * C)
static

◆ collections_exclude_set_poll()

static bool blender::ed::outliner::collections_exclude_set_poll ( bContext * C)
static

◆ collections_holdout_clear_poll()

static bool blender::ed::outliner::collections_holdout_clear_poll ( bContext * C)
static

◆ collections_holdout_set_poll()

static bool blender::ed::outliner::collections_holdout_set_poll ( bContext * C)
static

◆ collections_indirect_only_clear_poll()

static bool blender::ed::outliner::collections_indirect_only_clear_poll ( bContext * C)
static

◆ collections_indirect_only_set_poll()

static bool blender::ed::outliner::collections_indirect_only_set_poll ( bContext * C)
static

◆ collections_view_layer_poll()

◆ constraint_fn()

◆ data_select_linked_fn()

◆ datastack_drop_are_types_valid()

◆ datastack_drop_copy()

◆ datastack_drop_data_init()

◆ datastack_drop_init()

◆ datastack_drop_invoke()

◆ datastack_drop_link()

◆ datastack_drop_poll()

◆ datastack_drop_reorder()

◆ datastack_drop_tooltip()

static std::string blender::ed::outliner::datastack_drop_tooltip ( bContext * ,
wmDrag * drag,
const int [2],
wmDropBox *  )
static

◆ do_item_rename()

◆ do_outliner_bone_select_recursive()

static void blender::ed::outliner::do_outliner_bone_select_recursive ( bArmature * arm,
Bone * bone_parent,
bool select )
static

◆ do_outliner_drivers_editop()

◆ do_outliner_ebone_select_recursive()

static void blender::ed::outliner::do_outliner_ebone_select_recursive ( bArmature * arm,
EditBone * ebone_parent,
bool select )
static

◆ do_outliner_item_activate_tree_element()

static void blender::ed::outliner::do_outliner_item_activate_tree_element ( bContext * C,
const TreeViewContext * tvc,
SpaceOutliner * space_outliner,
TreeElement * te,
TreeStoreElem * tselem,
const bool extend,
const bool recursive,
const bool do_activate_data )
static

◆ do_outliner_item_editmode_toggle()

◆ do_outliner_item_mode_toggle_generic()

static void blender::ed::outliner::do_outliner_item_mode_toggle_generic ( bContext * C,
TreeViewContext * tvc,
Base * base )
static

Swap the current active object from the interaction mode with the given base.

Note
Changes to selection are needed in this case, since entering the object mode uses the selection.

If we didn't want to touch selection we could add an option to the operators not to do multi-object editing.

Note
Handles its own undo push.

Definition at line 163 of file outliner_select.cc.

References BKE_view_layer_base_deselect_all(), BKE_view_layer_base_find(), BKE_view_layer_base_select_and_set_active(), BKE_view_layer_synced_ensure(), DEG_id_tag_update(), ED_outliner_select_sync_from_object_tag(), ED_undo_group_begin(), ED_undo_group_end(), ED_undo_push(), Scene::id, ID_RECALC_SELECT, Object::mode, blender::ed::object::mode_set(), OB_MODE_OBJECT, blender::ed::outliner::TreeViewContext::obact, blender::ed::outliner::TreeViewContext::scene, and blender::ed::outliner::TreeViewContext::view_layer.

Referenced by outliner_item_mode_toggle().

◆ do_outliner_item_posemode_toggle()

◆ do_outliner_keyingset_editop()

◆ do_outliner_object_select_recursive()

static void blender::ed::outliner::do_outliner_object_select_recursive ( const Scene * scene,
ViewLayer * view_layer,
Object * ob_parent,
bool select )
static

◆ do_outliner_operation_event()

◆ do_outliner_range_select()

◆ do_outliner_range_select_recursive()

static bool blender::ed::outliner::do_outliner_range_select_recursive ( ListBase * lb,
TreeElement * active,
TreeElement * cursor,
bool selecting,
const bool recurse,
Collection * in_collection )
static

◆ do_outliner_select_recursive()

◆ do_outliner_select_walk()

static TreeElement * blender::ed::outliner::do_outliner_select_walk ( SpaceOutliner * space_outliner,
TreeElement * te,
const int direction,
const bool extend,
const bool toggle_all )
static

◆ draw_outliner()

void blender::ed::outliner::draw_outliner ( const bContext * C,
bool do_rebuild )
Parameters
do_rebuildWhen false, only the scroll position changed since last draw.

Definition at line 4044 of file outliner_draw.cc.

References CTX_data_main(), CTX_wm_region(), CTX_wm_space_outliner(), draw_outliner(), ED_outliner_select_sync_flag_outliners(), ED_outliner_select_sync_is_dirty(), ELEM, SpaceOutliner::flag, View2D::flag, SpaceOutliner::lib_override_view_mode, OL_RNA_COL_SIZEX, outliner_back(), outliner_build_tree(), outliner_buttons(), outliner_data_api_buttons_start_x(), outliner_draw_mode_column(), outliner_draw_overrides_restrictbuts(), outliner_draw_overrides_rna_buts(), outliner_draw_restrictbuts(), outliner_draw_rnabuts(), outliner_draw_separator(), outliner_draw_tree(), outliner_draw_userbuts(), outliner_draw_warning_column(), outliner_has_element_warnings(), outliner_right_columns_width(), outliner_shows_mode_column(), outliner_sync_selection(), outliner_tree_dimensions(), outliner_update_viewable_area(), outliner_viewcontext_init(), SpaceOutliner::outlinevis, blender::ed::outliner::TreeViewContext::scene, SO_DATA_API, SO_ID_ORPHANS, SO_LIB_OVERRIDE_VIEW_HIERARCHIES, SO_LIB_OVERRIDE_VIEW_PROPERTIES, SO_LIBRARIES, SO_OVERRIDES_LIBRARY, SO_SYNC_SELECT, SpaceOutliner::tree, UI_block_begin(), UI_block_draw(), UI_block_emboss_set(), UI_block_end(), UI_block_flag_enable(), UI_BLOCK_NO_DRAW_OVERRIDDEN_STATE, UI_EMBOSS, UI_EMBOSS_NONE_OR_STATUS, UI_view2d_view_ortho(), V2D_PIXELOFS_X, V2D_PIXELOFS_Y, and blender::ed::outliner::TreeViewContext::view_layer.

Referenced by draw_outliner(), and outliner_main_region_draw().

◆ ebone_fn()

static void blender::ed::outliner::ebone_fn ( int event,
TreeElement * te,
TreeStoreElem * ,
void *  )
static

◆ ed_operator_outliner_datablocks_active()

static bool blender::ed::outliner::ed_operator_outliner_datablocks_active ( bContext * C)
static

◆ ed_operator_outliner_id_orphans_active()

static bool blender::ed::outliner::ed_operator_outliner_id_orphans_active ( bContext * C)
static

◆ element_should_draw_faded()

◆ find_walk_select_start_element()

static TreeElement * blender::ed::outliner::find_walk_select_start_element ( SpaceOutliner * space_outliner,
bool * r_changed )
static

◆ foreach_natural_hierarchy_child()

static void blender::ed::outliner::foreach_natural_hierarchy_child ( const MainIDRelations & id_relations,
const ID & parent_id,
FunctionRef< ForeachChildReturn(ID &)> fn )
static

Iterate over the IDs parent_id uses. E.g. the child collections and contained objects of a parent collection. Also does special handling for object parenting, so that:

  • When iterating over a child object, fn is executed for the parent instead.
  • When iterating over a parent object, fn is additionally executed for all children. Given that the parent object isn't skipped, the caller has to ensure it's not added in the hierarchy twice. This allows us to build the hierarchy in the expected ("natural") order, where parent objects are actual parent elements in the hierarchy, even though in data, the relation goes the other way around (children point to or "use" the parent).

Only handles regular object parenting, not cases like the "Child of" constraint. Other Outliner display modes don't show this as parent in the hierarchy either.

Definition at line 278 of file tree_display_override_library_hierarchies.cc.

References BLI_ghash_lookup(), FOREACH_BREAK, MainIDRelationsEntry::from_ids, GS, Object::id, ID_OB, IDWALK_CB_LOOPBACK, ID::name, Object::parent, MainIDRelations::relations_from_pointers, and MainIDRelationsEntry::to_ids.

◆ get_element_operation_type()

◆ get_property_icon()

static BIFIconID blender::ed::outliner::get_property_icon ( PointerRNA & ptr,
PropertyRNA & prop )
static

◆ get_sync_select_active_data()

◆ get_target_element()

◆ gpencil_layer_fn()

static void blender::ed::outliner::gpencil_layer_fn ( int event,
TreeElement * te,
TreeStoreElem * ,
void *  )
static

◆ grease_pencil_node_fn()

static void blender::ed::outliner::grease_pencil_node_fn ( int event,
TreeElement * te,
TreeStoreElem * ,
void *  )
static

◆ id_delete_tag()

◆ id_delete_tag_fn()

void blender::ed::outliner::id_delete_tag_fn ( bContext * C,
ReportList * reports,
Scene * ,
TreeElement * te,
TreeStoreElem * ,
TreeStoreElem * tselem )

Definition at line 523 of file outliner_edit.cc.

References id_delete_tag().

Referenced by outliner_id_operation_exec(), and outliner_lib_operation_exec().

◆ id_fake_user_clear_fn()

static void blender::ed::outliner::id_fake_user_clear_fn ( bContext * ,
ReportList * ,
Scene * ,
TreeElement * ,
TreeStoreElem * ,
TreeStoreElem * tselem )
static

Definition at line 1606 of file outliner_tools.cc.

References TreeStoreElem::id, and id_fake_user_clear().

Referenced by outliner_id_operation_exec().

◆ id_fake_user_set_fn()

static void blender::ed::outliner::id_fake_user_set_fn ( bContext * ,
ReportList * ,
Scene * ,
TreeElement * ,
TreeStoreElem * ,
TreeStoreElem * tselem )
static

Definition at line 1594 of file outliner_tools.cc.

References TreeStoreElem::id, and id_fake_user_set().

Referenced by outliner_id_operation_exec().

◆ id_is_in_override_hierarchy()

static bool blender::ed::outliner::id_is_in_override_hierarchy ( const Main & bmain,
const ID & id,
const ID & relationship_parent_id,
const ID & override_root_id )
static

◆ id_local_fn()

◆ id_override_library_clear_single()

static void blender::ed::outliner::id_override_library_clear_single ( OutlinerLibOverrideData * data,
ReportList * reports,
TreeStoreElem * tselem )
static

◆ id_override_library_clear_single_process()

◆ id_override_library_create_hierarchy()

◆ id_override_library_create_hierarchy_pre_process()

◆ id_override_library_create_hierarchy_process()

◆ id_override_library_delete_hierarchy()

static void blender::ed::outliner::id_override_library_delete_hierarchy ( OutlinerLibOverrideData * data,
TreeStoreElem * tselem )
static

◆ id_override_library_delete_hierarchy_process()

static void blender::ed::outliner::id_override_library_delete_hierarchy_process ( bContext * C,
ReportList * ,
OutlinerLibOverrideData & data )
static

◆ id_override_library_reset()

◆ id_override_library_resync()

static void blender::ed::outliner::id_override_library_resync ( OutlinerLibOverrideData * data,
TreeStoreElem * tselem )
static

◆ id_override_library_resync_hierarchy_process()

static void blender::ed::outliner::id_override_library_resync_hierarchy_process ( bContext * C,
ReportList * reports,
OutlinerLibOverrideData & data )
static

◆ id_remap_fn()

◆ id_select_linked_fn()

static void blender::ed::outliner::id_select_linked_fn ( bContext * C,
ReportList * ,
Scene * ,
TreeElement * ,
TreeStoreElem * ,
TreeStoreElem * tselem )
static

◆ is_collection_element()

static bool blender::ed::outliner::is_collection_element ( TreeElement * te)
static

◆ is_edit_bone_selected()

static bool blender::ed::outliner::is_edit_bone_selected ( GSet * selected_ebones,
EditBone * ebone )
static

Definition at line 196 of file outliner_sync.cc.

References BLI_gset_haskey().

Referenced by outliner_select_sync_to_edit_bone().

◆ is_object_data_in_editmode()

static bool blender::ed::outliner::is_object_data_in_editmode ( const ID * id,
const Object * obact )
static

The active object is only needed for reference.

Definition at line 119 of file outliner_draw.cc.

References BKE_object_data_is_in_editmode(), Object::data, GPENCIL_EDIT_MODE, GS, ID_GD_LEGACY, Object::mode, OB_DATA_SUPPORT_EDITMODE, and OB_MODE_EDIT.

Referenced by outliner_draw_iconrow(), and outliner_draw_tree_element().

◆ is_object_element()

static bool blender::ed::outliner::is_object_element ( TreeElement * te)
static

◆ is_object_selected()

static bool blender::ed::outliner::is_object_selected ( GSet * selected_objects,
Base * base )
static

Definition at line 190 of file outliner_sync.cc.

References BLI_gset_haskey().

Referenced by outliner_select_sync_to_object().

◆ is_pchan_element()

static bool blender::ed::outliner::is_pchan_element ( TreeElement * te)
static

Definition at line 207 of file outliner_dragdrop.cc.

References TREESTORE, TSE_POSE_CHANNEL, and TreeStoreElem::type.

Referenced by datastack_drop_init().

◆ is_pose_bone_selected()

static bool blender::ed::outliner::is_pose_bone_selected ( GSet * selected_pbones,
bPoseChannel * pchan )
static

Definition at line 202 of file outliner_sync.cc.

References BLI_gset_haskey().

Referenced by outliner_select_sync_to_pose_bone().

◆ item_rename_fn()

void blender::ed::outliner::item_rename_fn ( bContext * C,
ReportList * reports,
Scene * ,
TreeElement * te,
TreeStoreElem * ,
TreeStoreElem * tselem )

◆ iterate_properties_to_display()

◆ layer_collection_collect_data_to_edit()

◆ lib_reload_fn()

void blender::ed::outliner::lib_reload_fn ( bContext * C,
ReportList * ,
Scene * ,
TreeElement * te,
TreeStoreElem * ,
TreeStoreElem * tselem )

Definition at line 1071 of file outliner_edit.cc.

References lib_relocate(), ot, and WM_operatortype_find().

Referenced by outliner_lib_operation_exec().

◆ lib_relocate()

◆ lib_relocate_fn()

void blender::ed::outliner::lib_relocate_fn ( bContext * C,
ReportList * ,
Scene * ,
TreeElement * te,
TreeStoreElem * ,
TreeStoreElem * tselem )

Definition at line 1015 of file outliner_edit.cc.

References lib_relocate(), ot, and WM_operatortype_find().

Referenced by outliner_lib_operation_exec().

◆ material_drop_invoke()

◆ material_drop_poll()

static bool blender::ed::outliner::material_drop_poll ( bContext * C,
wmDrag * drag,
const wmEvent * event )
static

◆ merged_element_search_exec_fn()

static void blender::ed::outliner::merged_element_search_exec_fn ( bContext * C,
void * ,
void * element )
static

◆ merged_element_search_fn_recursive()

static void blender::ed::outliner::merged_element_search_fn_recursive ( const ListBase * tree,
short tselem_type,
short type,
const char * str,
uiSearchItems * items )
static

◆ merged_element_search_menu()

◆ merged_element_search_menu_invoke()

void blender::ed::outliner::merged_element_search_menu_invoke ( bContext * C,
TreeElement * parent_te,
TreeElement * activate_te )

◆ merged_element_search_update_fn()

static void blender::ed::outliner::merged_element_search_update_fn ( const bContext * ,
void * data,
const char * str,
uiSearchItems * items,
const bool  )
static

◆ modifier_fn()

◆ namebutton_fn()

static void blender::ed::outliner::namebutton_fn ( bContext * C,
void * tsep,
char * oldname )
static

Definition at line 687 of file outliner_draw.cc.

References ANIM_armature_bonecoll_name_set(), BKE_gpencil_layer_active_set(), BKE_library_filepath_set(), BKE_main_blendfile_path(), BKE_object_defgroup_unique_name(), BKE_reportf(), BKE_view_layer_rename(), BLI_assert, BLI_exists(), BLI_path_abs(), BLI_strncpy(), BLI_uniquename(), bPoseChannel::bone, CTX_data_main(), CTX_wm_message_bus(), CTX_wm_reports(), CTX_wm_space_outliner(), Object::data, DEG_id_tag_update(), blender::ed::outliner::TreeElement::directdata, ED_armature_bone_rename(), ED_id_rename(), ED_undo_push(), bArmature::edbo, ELEM, FILE_MAX, TreeStoreElem::flag, GS, bArmature::id, bGPdata::id, GreasePencil::id, Object::id, TreeStoreElem::id, ID_IM, ID_LI, ID_MA, ID_RECALC_GEOMETRY, ID_RECALC_SYNC_TO_EVAL, ID_SCE, ID_TAG_MISSING, ID_TE, blender::ed::outliner::TreeElement::idcode, bGPDlayer::info, bGPdata::layers, lib, NA_RENAME, NA_SELECTED, Bone::name, BoneCollection::name, bPoseChannel::name, EditBone::name, ID::name, ViewLayer::name, NC_ANIMATION, NC_GPENCIL, NC_ID, NC_IMAGE, NC_MATERIAL, NC_OBJECT, NC_SCENE, NC_TEXTURE, ND_ANIMCHAN, ND_BONE_COLLECTION, ND_DATA, ND_POSE, OB_ARMATURE, offsetof, OL_SETSEL_NORMAL, outliner_find_tree_element(), outliner_viewcontext_init(), RPT_ERROR, RPT_INFO, STRNCPY, SpaceOutliner::tree, tree_element_activate(), tree_element_cast(), SpaceOutliner::treestore, TSE_BONE, TSE_BONE_COLLECTION, TSE_DEFGROUP, TSE_EBONE, TSE_GP_LAYER, TSE_GREASE_PENCIL_NODE, TSE_LAYER_COLLECTION, TSE_LINKED_NODE_TREE, TSE_NLA_ACTION, TSE_NLA_TRACK, TSE_POSE_CHANNEL, TSE_R_LAYER, TSE_SOME_ID, Object::type, TreeStoreElem::type, WM_event_add_notifier(), and WM_msg_publish_rna_prop.

Referenced by outliner_buttons().

◆ object_batch_delete_hierarchy_tag_fn()

◆ object_deselect_fn()

static void blender::ed::outliner::object_deselect_fn ( bContext * C,
ReportList * ,
Scene * ,
TreeElement * ,
TreeStoreElem * ,
TreeStoreElem * tselem )
static

◆ object_select_fn()

◆ object_select_hierarchy_fn()

static void blender::ed::outliner::object_select_hierarchy_fn ( bContext * C,
ReportList * ,
Scene * ,
TreeElement * te,
TreeStoreElem * ,
TreeStoreElem *  )
static

◆ outliner__base_set_flag_recursive_fn()

static void blender::ed::outliner::outliner__base_set_flag_recursive_fn ( bContext * C,
void * poin,
void * poin2 )
static

Base properties.

Definition at line 331 of file outliner_draw.cc.

References outliner_object_set_flag_recursive_fn().

Referenced by outliner_draw_restrictbuts().

◆ outliner__object_set_flag_recursive_fn()

static void blender::ed::outliner::outliner__object_set_flag_recursive_fn ( bContext * C,
void * poin,
void * poin2 )
static

Object properties.

Definition at line 321 of file outliner_draw.cc.

References outliner_object_set_flag_recursive_fn().

Referenced by outliner_draw_restrictbuts().

◆ outliner_action_set_exec()

◆ outliner_active_collection()

static TreeElement * blender::ed::outliner::outliner_active_collection ( bContext * C)
static

◆ outliner_active_layer_collection()

static LayerCollection * blender::ed::outliner::outliner_active_layer_collection ( bContext * C)
static

◆ outliner_add_bone()

static void blender::ed::outliner::outliner_add_bone ( SpaceOutliner * space_outliner,
ListBase * lb,
ID * id,
Bone * curBone,
TreeElement * parent,
int * a )
static

◆ outliner_add_collection_init()

BLI_INLINE void blender::ed::outliner::outliner_add_collection_init ( TreeElement * te,
Collection * collection )

◆ outliner_add_collection_objects()

BLI_INLINE void blender::ed::outliner::outliner_add_collection_objects ( SpaceOutliner * space_outliner,
ListBase * tree,
Collection * collection,
TreeElement * parent )

◆ outliner_add_collection_recursive()

◆ outliner_animdata_operation_exec()

◆ outliner_animdata_test()

bool blender::ed::outliner::outliner_animdata_test ( const AnimData * adt)

◆ outliner_back()

◆ outliner_base_or_object_pointer_create()

static void blender::ed::outliner::outliner_base_or_object_pointer_create ( Scene * scene,
ViewLayer * view_layer,
Collection * collection,
Object * ob,
PointerRNA * ptr )
static

Create either a RNA_ObjectBase or a RNA_Object pointer.

Definition at line 353 of file outliner_draw.cc.

References BKE_view_layer_base_find(), BKE_view_layer_synced_ensure(), Object::id, ptr, RNA_id_pointer_create(), and RNA_pointer_create().

Referenced by outliner_collection_set_flag_recursive().

◆ outliner_batch_delete_object_hierarchy()

static void blender::ed::outliner::outliner_batch_delete_object_hierarchy ( Main * bmain,
Scene * scene )
static

◆ outliner_batch_delete_object_hierarchy_tag()

static void blender::ed::outliner::outliner_batch_delete_object_hierarchy_tag ( ReportList * reports,
Main * bmain,
ViewLayer * view_layer,
Scene * scene,
Base * base )
static

◆ outliner_batch_delete_object_tag()

static void blender::ed::outliner::outliner_batch_delete_object_tag ( ReportList * reports,
Main * bmain,
Scene * scene,
Object * object )
static

◆ outliner_box_select()

static void blender::ed::outliner::outliner_box_select ( bContext * C,
SpaceOutliner * space_outliner,
const rctf * rectf,
const bool select )
static

◆ outliner_box_select_exec()

◆ outliner_box_select_invoke()

◆ outliner_build_tree()

◆ outliner_but_identity_cmp_context_id_fn()

static bool blender::ed::outliner::outliner_but_identity_cmp_context_id_fn ( const uiBut * a,
const uiBut * b )
static

◆ outliner_buttons()

◆ outliner_cleanup_tree()

◆ outliner_clear_filter_exec()

static int blender::ed::outliner::outliner_clear_filter_exec ( bContext * C,
wmOperator *  )
static

◆ outliner_clear_newid_from_main()

static void blender::ed::outliner::outliner_clear_newid_from_main ( Main * bmain)
static

Definition at line 1131 of file outliner_tree.cc.

References FOREACH_MAIN_ID_BEGIN, FOREACH_MAIN_ID_END, and ID::newid.

Referenced by outliner_build_tree().

◆ outliner_collect_objects_to_delete()

◆ outliner_collect_selected_collections()

◆ outliner_collect_selected_objects()

◆ outliner_collection_delete()

◆ outliner_collection_from_tree_element()

◆ outliner_collection_get_for_recursive()

◆ outliner_collection_is_isolated()

static bool blender::ed::outliner::outliner_collection_is_isolated ( Scene * scene,
const LayerCollection * layer_collection_cmp,
const Collection * collection_cmp,
const bool value_cmp,
const PropertyRNA * layer_or_collection_prop,
LayerCollection * layer_collection,
Collection * collection )
static

Check if collection is already isolated.

A collection is isolated if all its parents and children are "visible". All the other collections must be "invisible".

NOTE: We could/should boost performance by iterating over the tree twice. First tagging all the children/parent collections, then getting their values and comparing. To run BKE_collection_has_collection() so many times is silly and slow.

Definition at line 437 of file outliner_draw.cc.

References BKE_collection_has_collection(), LayerCollection::collection, COLLECTION_IS_MASTER, Collection::flag, LayerCollection::flag, LAYER_COLLECTION_EXCLUDE, LayerCollection::layer_collections, LISTBASE_FOREACH, outliner_collection_is_isolated(), outliner_layer_or_collection_pointer_create(), ptr, and RNA_property_boolean_get().

Referenced by outliner_collection_is_isolated(), and outliner_collection_isolate_flag().

◆ outliner_collection_isolate_flag()

◆ outliner_collection_set_flag_recursive()

◆ outliner_collection_set_flag_recursive_fn()

◆ outliner_collections_children_sort()

◆ outliner_color_tag_set_exec()

◆ outliner_constraint_operation_exec()

◆ outliner_context_selected_ids()

◆ outliner_copybuffer_filepath_get()

static void blender::ed::outliner::outliner_copybuffer_filepath_get ( char filepath[FILE_MAX],
size_t filepath_maxncpy )
static

Definition at line 91 of file outliner_edit.cc.

References BKE_tempdir_base(), and BLI_path_join.

Referenced by outliner_id_copy_exec(), and outliner_id_paste_exec().

◆ outliner_count_levels()

static int blender::ed::outliner::outliner_count_levels ( ListBase * lb,
const int curlevel )
static

Definition at line 1089 of file outliner_edit.cc.

References LISTBASE_FOREACH, and outliner_count_levels().

Referenced by outliner_count_levels(), and outliner_one_level_exec().

◆ outliner_create()

◆ outliner_data_api_buttons_start_x()

static int blender::ed::outliner::outliner_data_api_buttons_start_x ( int max_tree_width)
static

◆ outliner_data_from_tree_element_and_parents()

static TreeElement * blender::ed::outliner::outliner_data_from_tree_element_and_parents ( CheckTypeFn check_type,
TreeElement * te )
static

◆ outliner_data_op_sets_enum_item_fn()

◆ outliner_data_operation_exec()

◆ outliner_data_operation_poll()

static bool blender::ed::outliner::outliner_data_operation_poll ( bContext * C)
static

◆ outliner_deactivate()

static void blender::ed::outliner::outliner_deactivate ( ScrArea * area)
static

◆ outliner_delete_exec()

◆ outliner_do_data_operation()

static void blender::ed::outliner::outliner_do_data_operation ( SpaceOutliner * space_outliner,
int type,
int event,
void(* operation_fn )(int, TreeElement *, TreeStoreElem *, void *),
void * arg )
static

◆ outliner_do_id_set_operation()

static void blender::ed::outliner::outliner_do_id_set_operation ( SpaceOutliner * space_outliner,
int type,
ID * newid,
void(* operation_fn )(TreeElement *, TreeStoreElem *, TreeStoreElem *, ID *) )
static

◆ outliner_do_libdata_operation()

◆ outliner_do_libdata_operation_selection_set() [1/2]

static void blender::ed::outliner::outliner_do_libdata_operation_selection_set ( bContext * C,
ReportList * reports,
Scene * scene,
SpaceOutliner * space_outliner,
const ListBase & subtree,
const bool has_parent_selected,
outliner_operation_fn operation_fn,
eOutlinerLibOpSelectionSet selection_set )
static

◆ outliner_do_libdata_operation_selection_set() [2/2]

static void blender::ed::outliner::outliner_do_libdata_operation_selection_set ( bContext * C,
ReportList * reports,
Scene * scene,
SpaceOutliner * space_outliner,
outliner_operation_fn operation_fn,
eOutlinerLibOpSelectionSet selection_set,
const bool do_active_element_first )
static

◆ outliner_do_libdata_operation_selection_set_element()

static bool blender::ed::outliner::outliner_do_libdata_operation_selection_set_element ( bContext * C,
ReportList * reports,
Scene * scene,
TreeElement * element,
TreeStoreElem * tselem,
const bool has_parent_selected,
outliner_operation_fn operation_fn,
eOutlinerLibOpSelectionSet selection_set )
static

◆ outliner_do_object_delete()

static void blender::ed::outliner::outliner_do_object_delete ( bContext * C,
ReportList * reports,
Scene * scene,
GSet * objects_to_delete,
OutlinerDeleteFn delete_fn )
static

Definition at line 2604 of file outliner_tools.cc.

References BLI_gsetIterator_getKey(), and GSET_ITER.

Referenced by outliner_delete_exec().

◆ outliner_do_object_operation()

void blender::ed::outliner::outliner_do_object_operation ( bContext * C,
ReportList * reports,
Scene * scene,
SpaceOutliner * space_outliner,
ListBase * lb,
outliner_operation_fn operation_fn )

Definition at line 1711 of file outliner_tools.cc.

References outliner_do_object_operation_ex().

Referenced by outliner_object_operation_exec().

◆ outliner_do_object_operation_ex()

void blender::ed::outliner::outliner_do_object_operation_ex ( bContext * C,
ReportList * reports,
Scene * scene,
SpaceOutliner * space_outliner,
ListBase * lb,
outliner_operation_fn operation_fn,
bool recurse_selected )

◆ outliner_do_scene_operation()

static bool blender::ed::outliner::outliner_do_scene_operation ( bContext * C,
SpaceOutliner * space_outliner,
eOutliner_PropSceneOps event,
bool(* operation_fn )(bContext *, eOutliner_PropSceneOps, TreeElement *, TreeStoreElem *) )
static

◆ outliner_draw_active_indicator()

static void blender::ed::outliner::outliner_draw_active_indicator ( const float minx,
const float miny,
const float maxx,
const float maxy,
const float icon_color[4],
const float icon_border[4] )
static

◆ outliner_draw_get_warning_tree_element()

◆ outliner_draw_get_warning_tree_element_subtree()

◆ outliner_draw_hierarchy_line()

static void blender::ed::outliner::outliner_draw_hierarchy_line ( const uint pos,
const int x,
const int y1,
const int y2,
const bool draw_dashed )
static

◆ outliner_draw_hierarchy_lines()

◆ outliner_draw_hierarchy_lines_recursive()

◆ outliner_draw_highlights() [1/2]

◆ outliner_draw_highlights() [2/2]

static void blender::ed::outliner::outliner_draw_highlights ( uint pos,
const ARegion * region,
const SpaceOutliner * space_outliner,
const float col_selection[4],
const float col_active[4],
const float col_highlight[4],
const float col_searchmatch[4],
int start_x,
int * io_start_y )
static

◆ outliner_draw_iconrow()

◆ outliner_draw_iconrow_doit()

◆ outliner_draw_mode_column()

◆ outliner_draw_mode_column_toggle()

◆ outliner_draw_overrides_restrictbuts()

◆ outliner_draw_overrides_rna_buts()

◆ outliner_draw_restrictbuts()

static void blender::ed::outliner::outliner_draw_restrictbuts ( uiBlock * block,
Scene * scene,
ViewLayer * view_layer,
ARegion * region,
SpaceOutliner * space_outliner,
ListBase * lb,
RestrictPropertiesActive props_active_parent )
static

Definition at line 1083 of file outliner_draw.cc.

References blender::ed::outliner::RestrictProperties::base_hide_viewport, blender::ed::outliner::RestrictPropertiesActive::base_hide_viewport, BKE_view_layer_base_find(), BKE_view_layer_synced_ensure(), BLI_assert, bPoseChannel::bone, BONE_HIDDEN_A, blender::ed::outliner::RestrictProperties::bone_hide_viewport, BONE_UNSELECTABLE, blender::ed::outliner::RestrictProperties::collection_hide_render, blender::ed::outliner::RestrictPropertiesActive::collection_hide_render, blender::ed::outliner::RestrictProperties::collection_hide_select, blender::ed::outliner::RestrictPropertiesActive::collection_hide_select, blender::ed::outliner::RestrictProperties::collection_hide_viewport, blender::ed::outliner::RestrictPropertiesActive::collection_hide_viewport, blender::ed::outliner::RestrictProperties::constraint_enable, blender::ed::outliner::RestrictPropertiesActive::constraint_enable, Object::data, ELEM, bGPDlayer::flag, Bone::flag, EditBone::flag, uiBlock::flag, GP_LAYER_HIDE, GP_LAYER_LOCKED, bArmature::id, Object::id, TreeStoreElem::id, ID_OB, blender::ed::outliner::RestrictProperties::initialized, blender::ed::outliner::RestrictProperties::layer_collection_exclude, blender::ed::outliner::RestrictProperties::layer_collection_hide_viewport, blender::ed::outliner::RestrictPropertiesActive::layer_collection_hide_viewport, blender::ed::outliner::RestrictProperties::layer_collection_holdout, blender::ed::outliner::RestrictPropertiesActive::layer_collection_holdout, blender::ed::outliner::RestrictProperties::layer_collection_indirect_only, blender::ed::outliner::RestrictPropertiesActive::layer_collection_indirect_only, LISTBASE_FOREACH, blender::ed::outliner::RestrictProperties::modifier_show_render, blender::ed::outliner::RestrictPropertiesActive::modifier_show_render, blender::ed::outliner::RestrictProperties::modifier_show_viewport, blender::ed::outliner::RestrictPropertiesActive::modifier_show_viewport, blender::ed::outliner::RestrictProperties::object_hide_render, blender::ed::outliner::RestrictPropertiesActive::object_hide_render, blender::ed::outliner::RestrictProperties::object_hide_select, blender::ed::outliner::RestrictPropertiesActive::object_hide_select, blender::ed::outliner::RestrictProperties::object_hide_viewport, blender::ed::outliner::RestrictPropertiesActive::object_hide_viewport, outliner__base_set_flag_recursive_fn(), outliner__object_set_flag_recursive_fn(), outliner_collection_from_tree_element(), outliner_draw_restrictbuts(), outliner_is_collection_tree_element(), outliner_restrict_properties_collection_set(), outliner_right_columns_width(), SpaceOutliner::outlinevis, ptr, restrictbutton_bone_select_fn(), restrictbutton_bone_visibility_fn(), restrictbutton_ebone_select_fn(), restrictbutton_ebone_visibility_fn(), restrictbutton_gp_layer_flag_fn(), restrictbutton_r_lay_fn(), RNA_id_pointer_create(), RNA_pointer_create(), RNA_struct_type_find_property(), scenes__collection_set_flag_recursive_fn(), select(), SpaceOutliner::show_restrict_flags, SO_RESTRICT_ENABLE, SO_RESTRICT_HIDE, SO_RESTRICT_HOLDOUT, SO_RESTRICT_INDIRECT_ONLY, SO_RESTRICT_RENDER, SO_RESTRICT_SELECT, SO_RESTRICT_VIEWPORT, SO_SCENES, SO_VIEW_LAYER, TE_CHILD_NOT_IN_COLLECTION, TIP_, tree_element_cast(), TREESTORE, TSE_CONSTRAINT, TSE_EBONE, TSE_GP_LAYER, TSE_GREASE_PENCIL_NODE, TSE_LAYER_COLLECTION, TSE_MODIFIER, TSE_POSE_CHANNEL, TSE_R_LAYER, TSE_SOME_ID, TSELEM_OPEN, TreeStoreElem::type, UI_BTYPE_ICON_TOGGLE, UI_BTYPE_ICON_TOGGLE_N, UI_BUT_DRAG_LOCK, UI_but_drawflag_enable(), UI_but_flag_enable(), UI_but_func_set(), UI_BUT_ICON_REVERSE, UI_BUT_INACTIVE, UI_UNIT_X, UI_UNIT_Y, uiDefIconButBitI(), uiDefIconButBitS(), uiDefIconButR_prop(), V2D_SCROLL_WIDTH, view_layer__collection_set_flag_recursive_fn(), view_layer__layer_collection_set_flag_recursive_fn(), and VIEW_LAYER_RENDER.

Referenced by draw_outliner(), and outliner_draw_restrictbuts().

◆ outliner_draw_rnabuts()

◆ outliner_draw_separator()

◆ outliner_draw_struct_marks()

◆ outliner_draw_tree()

static void blender::ed::outliner::outliner_draw_tree ( bContext * C,
uiBlock * block,
const TreeViewContext * tvc,
ARegion * region,
SpaceOutliner * space_outliner,
const float right_column_width,
const bool use_mode_column,
const bool use_warning_column,
TreeElement ** te_edit )
static

◆ outliner_draw_tree_element()

static void blender::ed::outliner::outliner_draw_tree_element ( bContext * C,
uiBlock * block,
const uiFontStyle * fstyle,
const TreeViewContext * tvc,
ARegion * region,
SpaceOutliner * space_outliner,
TreeElement * te,
bool draw_grayed_out,
int startx,
int * starty,
const float restrict_column_width,
TreeElement ** te_edit )
static

Definition at line 3384 of file outliner_draw.cc.

References BASE_SELECTED, BKE_view_layer_base_find(), BKE_view_layer_synced_ensure(), BLI_listbase_is_empty(), blender::ed::outliner::TreeElement::directdata, ELEM, element_should_draw_faded(), ListBase::first, Base::flag, blender::ed::outliner::TreeElement::flag, TreeStoreElem::flag, blender::ed::outliner::TreeElementRNACommon::get_pointer_rna(), GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, TreeStoreElem::id, ID_OB, ID_SCE, blender::ed::outliner::TreeElement::idcode, int, is_object_data_in_editmode(), LISTBASE_FOREACH, blender::ed::outliner::TreeElement::name, blender::ed::outliner::TreeViewContext::obact, OL_DRAWSEL_ACTIVE, OL_DRAWSEL_NONE, outliner_draw_active_indicator(), outliner_draw_iconrow(), outliner_draw_tree_element(), outliner_icon_background_colors(), outliner_set_subtree_coords(), RNA_struct_is_ID(), blender::ed::outliner::TreeViewContext::scene, blender::ed::outliner::TreeElement::subtree, TE_ACTIVE, TE_DRAGGING, TE_PRETEND_HAS_CHILDREN, TH_ACTIVE_OBJECT, TH_BACK, TH_EDITED_OBJECT, TH_SELECTED_OBJECT, TH_TEXT, tree_element_active_state_get(), tree_element_type_active_state_get(), TREESTORE, TSE_HIGHLIGHTED_ICON, TSE_ID_BASE, TSE_LAYER_COLLECTION, TSE_LINKED_NODE_TREE, TSE_R_LAYER, TSE_RNA_ARRAY_ELEM, TSE_RNA_PROPERTY, TSE_SOME_ID, TSE_TEXTBUT, TSE_VIEW_COLLECTION_BASE, tselem_draw_icon(), TSELEM_OPEN, PointerRNA::type, TreeStoreElem::type, UI_fontstyle_draw_simple(), UI_fontstyle_string_width(), UI_GetThemeColor3ubv(), UI_GetThemeColor4fv(), UI_GetThemeColor4ubv(), UI_GetThemeColorBlend3ubv(), UI_icon_draw_alpha(), UI_icon_from_library(), UI_UNIT_X, UI_UNIT_Y, blender::ed::outliner::TreeViewContext::view_layer, blender::ed::outliner::TreeElement::xend, blender::ed::outliner::TreeElement::xs, and blender::ed::outliner::TreeElement::ys.

Referenced by outliner_draw_tree(), and outliner_draw_tree_element().

◆ outliner_draw_userbuts()

◆ outliner_draw_warning_column()

static void blender::ed::outliner::outliner_draw_warning_column ( uiBlock * block,
const SpaceOutliner * space_outliner,
const bool use_mode_column )
static

◆ outliner_draw_warning_tree_element()

static void blender::ed::outliner::outliner_draw_warning_tree_element ( uiBlock * block,
const SpaceOutliner * space_outliner,
StringRefNull warning_msg,
const bool use_mode_column,
const int te_ys )
static

◆ outliner_drivers_addsel_exec()

◆ outliner_drivers_deletesel_exec()

static int blender::ed::outliner::outliner_drivers_deletesel_exec ( bContext * C,
wmOperator * op )
static

◆ outliner_drop_find()

static TreeElement * blender::ed::outliner::outliner_drop_find ( bContext * C,
const wmEvent * event )
static

◆ outliner_drop_insert_collection_find()

static TreeElement * blender::ed::outliner::outliner_drop_insert_collection_find ( bContext * C,
const int xy[2],
TreeElementInsertType * r_insert_type )
static

◆ outliner_drop_insert_find()

◆ outliner_dropboxes()

◆ outliner_dropzone_element()

◆ outliner_dropzone_find()

static TreeElement * blender::ed::outliner::outliner_dropzone_find ( const SpaceOutliner * space_outliner,
const float fmval[2],
const bool children )
static

◆ outliner_duplicate()

static SpaceLink * blender::ed::outliner::outliner_duplicate ( SpaceLink * sl)
static

◆ outliner_element_find_successor_in_parents()

static TreeElement * blender::ed::outliner::outliner_element_find_successor_in_parents ( TreeElement * te)
static

◆ outliner_element_is_collection_or_object()

static bool blender::ed::outliner::outliner_element_is_collection_or_object ( TreeElement * te)
static

◆ outliner_element_visible_get()

◆ outliner_exclude_filter_get()

◆ outliner_extract_children_from_subtree()

◆ outliner_filter_has_name()

static bool blender::ed::outliner::outliner_filter_has_name ( TreeElement * te,
const char * name,
int flags )
static

◆ outliner_filter_subtree()

◆ outliner_filter_tree()

static void blender::ed::outliner::outliner_filter_tree ( SpaceOutliner * space_outliner,
const Scene * scene,
ViewLayer * view_layer )
static

◆ outliner_find_editbone()

TreeElement * blender::ed::outliner::outliner_find_editbone ( ListBase * lb,
const EditBone * ebone )

◆ outliner_find_element_with_flag()

TreeElement * blender::ed::outliner::outliner_find_element_with_flag ( const ListBase * lb,
short flag )

◆ outliner_find_first_desired_element_at_y()

static TreeElement * blender::ed::outliner::outliner_find_first_desired_element_at_y ( const SpaceOutliner * space_outliner,
const float view_co,
const float view_co_limit )
static

Find the first element that passes a test starting from a reference vertical coordinate

If the element that is in the position is not what we are looking for, keep looking for its children, siblings, and eventually, aunts, cousins, distant families, ... etc.

Basically we keep going up and down the outliner tree from that point forward, until we find what we are looking for. If we are past the visible range and we can't find a valid element we return nullptr.

Definition at line 754 of file outliner_tree.cc.

References SpaceOutliner::filter, blender::ed::outliner::TreeElement::next, outliner_find_first_desired_element_at_y_recursive(), outliner_find_item_at_y(), SpaceOutliner::outlinevis, blender::ed::outliner::TreeElement::parent, SO_FILTER_NO_COLLECTION, SO_VIEW_LAYER, test_collection_callback(), test_object_callback(), SpaceOutliner::tree, UI_UNIT_Y, and blender::ed::outliner::TreeElement::ys.

Referenced by outliner_store_scrolling_position().

◆ outliner_find_first_desired_element_at_y_recursive()

static TreeElement * blender::ed::outliner::outliner_find_first_desired_element_at_y_recursive ( const SpaceOutliner * space_outliner,
TreeElement * te,
const float limit,
bool(* callback_test )(TreeElement *) )
static

◆ outliner_find_first_selected_collection()

static TreeTraversalAction blender::ed::outliner::outliner_find_first_selected_collection ( TreeElement * te,
void * customdata )
static

◆ outliner_find_first_selected_layer_collection()

◆ outliner_find_id()

TreeElement * blender::ed::outliner::outliner_find_id ( SpaceOutliner * space_outliner,
ListBase * lb,
const ID * id )

◆ outliner_find_item_at_x_in_row()

TreeElement * blender::ed::outliner::outliner_find_item_at_x_in_row ( const SpaceOutliner * space_outliner,
TreeElement * parent_te,
float view_co_x,
bool * r_is_merged_icon,
bool * r_is_over_icon )

Collapsed items can show their children as click-able icons. This function tries to find such an icon that represents the child item at x-coordinate view_co_x (view-space).

Returns
a hovered child item or parent_te (if no hovered child found).

Definition at line 134 of file outliner_utils.cc.

References outliner_find_item_at_x_in_row_recursive(), outliner_item_is_co_over_icon(), TREESTORE, TSE_R_LAYER, TSELEM_OPEN, and TreeStoreElem::type.

Referenced by outliner_highlight_update_invoke(), and outliner_item_do_activate_from_cursor().

◆ outliner_find_item_at_x_in_row_recursive()

◆ outliner_find_item_at_y()

◆ outliner_find_next_element()

◆ outliner_find_parent_bone()

◆ outliner_find_parent_element()

TreeElement * blender::ed::outliner::outliner_find_parent_element ( ListBase * lb,
TreeElement * parent_te,
const TreeElement * child_te )

Find parent element of te.

Definition at line 169 of file outliner_utils.cc.

References LISTBASE_FOREACH, and outliner_find_parent_element().

Referenced by collection_drop_invoke(), and outliner_find_parent_element().

◆ outliner_find_posechannel()

TreeElement * blender::ed::outliner::outliner_find_posechannel ( ListBase * lb,
const bPoseChannel * pchan )

◆ outliner_find_previous_element()

◆ outliner_find_rightmost_visible_child()

static TreeElement * blender::ed::outliner::outliner_find_rightmost_visible_child ( SpaceOutliner * space_outliner,
TreeElement * te )
static

◆ outliner_find_tree_element()

TreeElement * blender::ed::outliner::outliner_find_tree_element ( ListBase * lb,
const TreeStoreElem * store_elem )

◆ outliner_flag_flip() [1/2]

bool blender::ed::outliner::outliner_flag_flip ( const ListBase & lb,
const short flag )

◆ outliner_flag_flip() [2/2]

bool blender::ed::outliner::outliner_flag_flip ( const SpaceOutliner & space_outliner,
const short flag )

Definition at line 1145 of file outliner_edit.cc.

References flag, outliner_flag_flip(), and SpaceOutliner::tree.

Referenced by outliner_flag_flip(), and outliner_select_all_exec().

◆ outliner_flag_is_any_test()

int blender::ed::outliner::outliner_flag_is_any_test ( ListBase * lb,
short flag,
const int curlevel )

◆ outliner_flag_set() [1/2]

bool blender::ed::outliner::outliner_flag_set ( const ListBase & lb,
const short flag,
const short set )

◆ outliner_flag_set() [2/2]

◆ outliner_foreach_id()

◆ outliner_free()

static void blender::ed::outliner::outliner_free ( SpaceLink * sl)
static

◆ outliner_free_tree()

void blender::ed::outliner::outliner_free_tree ( ListBase * tree)

◆ outliner_free_tree_element()

void blender::ed::outliner::outliner_free_tree_element ( TreeElement * element,
ListBase * parent_subtree )

Free element and its sub-tree and remove its link in parent_subtree.

Note
Does not remove the TreeStoreElem of element!
Parameters
parent_subtreeSub-tree of the parent element, so the list containing element.

Definition at line 163 of file outliner_tree.cc.

References BLI_assert, BLI_findindex(), BLI_remlink(), MEM_freeN(), outliner_free_tree(), and TE_FREE_NAME.

Referenced by blender::ed::outliner::TreeDisplayOverrideLibraryHierarchies::build_tree(), outliner_extract_children_from_subtree(), outliner_filter_subtree(), and outliner_free_tree().

◆ outliner_get_insert_index()

◆ outliner_has_element_warnings()

bool blender::ed::outliner::outliner_has_element_warnings ( const SpaceOutliner & space_outliner)

Definition at line 27 of file outliner_query.cc.

References LISTBASE_FOREACH, and SpaceOutliner::tree.

Referenced by draw_outliner().

◆ outliner_header_region_draw()

static void blender::ed::outliner::outliner_header_region_draw ( const bContext * C,
ARegion * region )
static

Definition at line 341 of file space_outliner.cc.

References ED_region_header().

◆ outliner_header_region_free()

static void blender::ed::outliner::outliner_header_region_free ( ARegion * )
static

Definition at line 346 of file space_outliner.cc.

◆ outliner_header_region_init()

static void blender::ed::outliner::outliner_header_region_init ( wmWindowManager * ,
ARegion * region )
static

Definition at line 336 of file space_outliner.cc.

References ED_region_header_init().

◆ outliner_header_region_listener()

static void blender::ed::outliner::outliner_header_region_listener ( const wmRegionListenerParams * params)
static

◆ outliner_hide_collect_data_to_edit()

◆ outliner_hide_exec()

◆ outliner_highlight_update_invoke()

◆ outliner_icon_background_colors()

static void blender::ed::outliner::outliner_icon_background_colors ( float icon_color[4],
float icon_border[4] )
static

◆ outliner_id_copy_exec()

◆ outliner_id_copy_tag()

◆ outliner_id_delete_invoke()

◆ outliner_id_delete_tag()

◆ outliner_ID_drop_find()

static ID * blender::ed::outliner::outliner_ID_drop_find ( bContext * C,
const wmEvent * event,
short idcode )
static

◆ outliner_id_itemf()

◆ outliner_id_operation_exec()

◆ outliner_id_operation_item_poll()

static bool blender::ed::outliner::outliner_id_operation_item_poll ( bContext * C,
PointerRNA * ,
PropertyRNA * ,
const int enum_value )
static

◆ outliner_id_operation_itemf()

static const EnumPropertyItem * blender::ed::outliner::outliner_id_operation_itemf ( bContext * C,
PointerRNA * ptr,
PropertyRNA * prop,
bool * r_free )
static

◆ outliner_id_paste_exec()

◆ outliner_id_remap()

◆ outliner_id_remap_exec()

◆ outliner_id_remap_find_tree_element()

static bool blender::ed::outliner::outliner_id_remap_find_tree_element ( bContext * C,
wmOperator * op,
ListBase * tree,
const float y )
static

◆ outliner_id_remap_invoke()

◆ outliner_idcode_to_plural()

const char * blender::ed::outliner::outliner_idcode_to_plural ( short idcode)

◆ outliner_init()

static void blender::ed::outliner::outliner_init ( wmWindowManager * ,
ScrArea * area )
static

Definition at line 414 of file space_outliner.cc.

References SpaceOutliner::runtime.

◆ outliner_is_co_within_active_mode_column()

◆ outliner_is_co_within_mode_column()

bool blender::ed::outliner::outliner_is_co_within_mode_column ( SpaceOutliner * space_outliner,
const float view_mval[2] )

◆ outliner_is_co_within_restrict_columns()

static bool blender::ed::outliner::outliner_is_co_within_restrict_columns ( const SpaceOutliner * space_outliner,
const ARegion * region,
float view_co_x )
static

◆ outliner_is_collection_tree_element()

◆ outliner_is_element_in_view()

bool blender::ed::outliner::outliner_is_element_in_view ( const TreeElement * te,
const View2D * v2d )

Check if the element is displayed within the view bounds. Doesn't check if all parents are open/uncollapsed.

Definition at line 391 of file outliner_utils.cc.

References View2D::cur, UI_UNIT_Y, rctf::ymax, rctf::ymin, and blender::ed::outliner::TreeElement::ys.

Referenced by outliner_draw_overrides_restrictbuts(), outliner_draw_overrides_rna_buts(), outliner_draw_rnabuts(), and outliner_draw_userbuts().

◆ outliner_is_element_visible()

bool blender::ed::outliner::outliner_is_element_visible ( const TreeElement * te)

Find if element is visible in the outliner tree, i.e. if all of its parents are expanded. Doesn't check if the item is in view-bounds, for that use outliner_is_element_in_view().

Definition at line 375 of file outliner_utils.cc.

References TreeStoreElem::flag, blender::ed::outliner::TreeElement::parent, TREESTORE, and TSE_CLOSED.

Referenced by do_outliner_range_select(), and find_walk_select_start_element().

◆ outliner_item_activate_invoke()

static int blender::ed::outliner::outliner_item_activate_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ outliner_item_do_activate_from_cursor()

◆ outliner_item_drag_drop_invoke()

static int blender::ed::outliner::outliner_item_drag_drop_invoke ( bContext * C,
wmOperator * ,
const wmEvent * event )
static

◆ outliner_item_drag_element_find()

static TreeElement * blender::ed::outliner::outliner_item_drag_element_find ( SpaceOutliner * space_outliner,
ARegion * region,
const wmEvent * event )
static

◆ outliner_item_is_co_over_icon()

bool blender::ed::outliner::outliner_item_is_co_over_icon ( const TreeElement * te,
float view_co_x )

Definition at line 406 of file outliner_utils.cc.

References UI_UNIT_X, and blender::ed::outliner::TreeElement::xs.

Referenced by outliner_find_item_at_x_in_row().

◆ outliner_item_is_co_over_name()

bool blender::ed::outliner::outliner_item_is_co_over_name ( const TreeElement * te,
float view_co_x )

Find if x coordinate is over element name.

Definition at line 411 of file outliner_utils.cc.

References UI_UNIT_X, blender::ed::outliner::TreeElement::xend, and blender::ed::outliner::TreeElement::xs.

Referenced by outliner_item_rename_find_hovered().

◆ outliner_item_is_co_over_name_icons()

bool blender::ed::outliner::outliner_item_is_co_over_name_icons ( const TreeElement * te,
float view_co_x )

◆ outliner_item_is_co_within_close_toggle()

bool blender::ed::outliner::outliner_item_is_co_within_close_toggle ( const TreeElement * te,
float view_co_x )

Find if x coordinate is over element disclosure toggle.

Definition at line 416 of file outliner_utils.cc.

References UI_UNIT_X, and blender::ed::outliner::TreeElement::xs.

Referenced by outliner_item_do_activate_from_cursor(), outliner_item_drag_drop_invoke(), and outliner_item_openclose_invoke().

◆ outliner_item_mode_toggle()

◆ outliner_item_openclose()

void blender::ed::outliner::outliner_item_openclose ( TreeElement * te,
bool open,
bool toggle_all )

◆ outliner_item_openclose_invoke()

◆ outliner_item_openclose_modal()

◆ outliner_item_rename_find_active()

static TreeElement * blender::ed::outliner::outliner_item_rename_find_active ( const SpaceOutliner * space_outliner,
ReportList * reports )
static

◆ outliner_item_rename_find_hovered()

static TreeElement * blender::ed::outliner::outliner_item_rename_find_hovered ( const SpaceOutliner * space_outliner,
ARegion * region,
const wmEvent * event )
static

◆ outliner_item_rename_invoke()

◆ outliner_item_select()

◆ outliner_keyingset_additems_exec()

◆ outliner_keyingset_removeitems_exec()

◆ outliner_keymap()

void blender::ed::outliner::outliner_keymap ( wmKeyConfig * keyconf)

Definition at line 105 of file outliner_ops.cc.

References RGN_TYPE_WINDOW, SPACE_OUTLINER, and WM_keymap_ensure().

◆ outliner_layer_or_collection_pointer_create()

static void blender::ed::outliner::outliner_layer_or_collection_pointer_create ( Scene * scene,
LayerCollection * layer_collection,
Collection * collection,
PointerRNA * ptr )
static

◆ outliner_lib_operation_exec()

◆ outliner_lib_reload_invoke()

static int blender::ed::outliner::outliner_lib_reload_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ outliner_lib_relocate_invoke()

static int blender::ed::outliner::outliner_lib_relocate_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ outliner_lib_relocate_invoke_do()

◆ outliner_liboverride_operation_exec()

◆ outliner_liboverride_operation_poll()

static bool blender::ed::outliner::outliner_liboverride_operation_poll ( bContext * C)
static

◆ outliner_main_region_context()

◆ outliner_main_region_draw()

static void blender::ed::outliner::outliner_main_region_draw ( const bContext * C,
ARegion * region )
static

◆ outliner_main_region_free()

static void blender::ed::outliner::outliner_main_region_free ( ARegion * )
static

Definition at line 114 of file space_outliner.cc.

◆ outliner_main_region_init()

◆ outliner_main_region_listener()

◆ outliner_main_region_message_subscribe()

static void blender::ed::outliner::outliner_main_region_message_subscribe ( const wmRegionMessageSubscribeParams * params)
static

◆ outliner_make_object_parent_hierarchy()

◆ outliner_mode_toggle_fn()

◆ outliner_modifier_operation_exec()

◆ outliner_object_delete_fn()

◆ outliner_object_operation_exec()

◆ outliner_object_set_flag_recursive_fn()

◆ outliner_one_level_exec()

◆ outliner_open_back()

static int blender::ed::outliner::outliner_open_back ( TreeElement * te)
static

◆ outliner_openclose_level()

static void blender::ed::outliner::outliner_openclose_level ( ListBase * lb,
int curlevel,
int level,
int open )
static

◆ outliner_operation_invoke()

◆ outliner_operation_tree_element_poll()

static bool blender::ed::outliner::outliner_operation_tree_element_poll ( bContext * C)
static

◆ outliner_operator_menu()

◆ outliner_operatortypes()

void blender::ed::outliner::outliner_operatortypes ( )

Definition at line 20 of file outliner_ops.cc.

References OUTLINER_OT_action_set(), OUTLINER_OT_animdata_operation(), OUTLINER_OT_clear_filter(), OUTLINER_OT_collection_color_tag_set(), OUTLINER_OT_collection_disable(), OUTLINER_OT_collection_disable_render(), OUTLINER_OT_collection_drop(), OUTLINER_OT_collection_duplicate(), OUTLINER_OT_collection_duplicate_linked(), OUTLINER_OT_collection_enable(), OUTLINER_OT_collection_enable_render(), OUTLINER_OT_collection_exclude_clear(), OUTLINER_OT_collection_exclude_set(), OUTLINER_OT_collection_hide(), OUTLINER_OT_collection_hide_inside(), OUTLINER_OT_collection_hierarchy_delete(), OUTLINER_OT_collection_holdout_clear(), OUTLINER_OT_collection_holdout_set(), OUTLINER_OT_collection_indirect_only_clear(), OUTLINER_OT_collection_indirect_only_set(), OUTLINER_OT_collection_instance(), OUTLINER_OT_collection_isolate(), OUTLINER_OT_collection_link(), OUTLINER_OT_collection_new(), OUTLINER_OT_collection_objects_deselect(), OUTLINER_OT_collection_objects_select(), OUTLINER_OT_collection_show(), OUTLINER_OT_collection_show_inside(), OUTLINER_OT_constraint_operation(), OUTLINER_OT_data_operation(), OUTLINER_OT_datastack_drop(), OUTLINER_OT_delete(), OUTLINER_OT_drivers_add_selected(), OUTLINER_OT_drivers_delete_selected(), OUTLINER_OT_expanded_toggle(), OUTLINER_OT_hide(), OUTLINER_OT_highlight_update(), OUTLINER_OT_id_copy(), OUTLINER_OT_id_delete(), OUTLINER_OT_id_operation(), OUTLINER_OT_id_paste(), OUTLINER_OT_id_remap(), OUTLINER_OT_item_activate(), OUTLINER_OT_item_drag_drop(), OUTLINER_OT_item_openclose(), OUTLINER_OT_item_rename(), OUTLINER_OT_keyingset_add_selected(), OUTLINER_OT_keyingset_remove_selected(), OUTLINER_OT_lib_operation(), OUTLINER_OT_lib_relocate(), OUTLINER_OT_liboverride_operation(), OUTLINER_OT_liboverride_troubleshoot_operation(), OUTLINER_OT_material_drop(), OUTLINER_OT_modifier_operation(), OUTLINER_OT_object_operation(), OUTLINER_OT_operation(), OUTLINER_OT_orphans_manage(), OUTLINER_OT_orphans_purge(), OUTLINER_OT_parent_clear(), OUTLINER_OT_parent_drop(), OUTLINER_OT_scene_drop(), OUTLINER_OT_scene_operation(), OUTLINER_OT_scroll_page(), OUTLINER_OT_select_all(), OUTLINER_OT_select_box(), OUTLINER_OT_select_walk(), OUTLINER_OT_show_active(), OUTLINER_OT_show_hierarchy(), OUTLINER_OT_show_one_level(), OUTLINER_OT_start_filter(), OUTLINER_OT_unhide_all(), and WM_operatortype_append().

◆ outliner_orphans_manage_invoke()

static int blender::ed::outliner::outliner_orphans_manage_invoke ( bContext * C,
wmOperator * ,
const wmEvent * event )
static

◆ outliner_orphans_purge_cancel()

static void blender::ed::outliner::outliner_orphans_purge_cancel ( bContext * ,
wmOperator * op )
static

Definition at line 2328 of file outliner_edit.cc.

References outliner_orphans_purge_cleanup().

Referenced by OUTLINER_OT_orphans_purge().

◆ outliner_orphans_purge_check()

static bool blender::ed::outliner::outliner_orphans_purge_check ( bContext * C,
wmOperator * op )
static

◆ outliner_orphans_purge_cleanup()

static void blender::ed::outliner::outliner_orphans_purge_cleanup ( wmOperator * op)
static

◆ outliner_orphans_purge_exec()

◆ outliner_orphans_purge_invoke()

static int blender::ed::outliner::outliner_orphans_purge_invoke ( bContext * C,
wmOperator * op,
const wmEvent *  )
static

◆ outliner_orphans_purge_ui()

static void blender::ed::outliner::outliner_orphans_purge_ui ( bContext * ,
wmOperator * op )
static

◆ OUTLINER_OT_action_set()

◆ OUTLINER_OT_animdata_operation()

◆ OUTLINER_OT_clear_filter()

◆ OUTLINER_OT_collection_color_tag_set()

◆ OUTLINER_OT_collection_disable()

◆ OUTLINER_OT_collection_disable_render()

◆ OUTLINER_OT_collection_drop()

◆ OUTLINER_OT_collection_duplicate()

◆ OUTLINER_OT_collection_duplicate_linked()

◆ OUTLINER_OT_collection_enable()

◆ OUTLINER_OT_collection_enable_render()

◆ OUTLINER_OT_collection_exclude_clear()

◆ OUTLINER_OT_collection_exclude_set()

◆ OUTLINER_OT_collection_hide()

◆ OUTLINER_OT_collection_hide_inside()

◆ OUTLINER_OT_collection_hierarchy_delete()

◆ OUTLINER_OT_collection_holdout_clear()

◆ OUTLINER_OT_collection_holdout_set()

◆ OUTLINER_OT_collection_indirect_only_clear()

◆ OUTLINER_OT_collection_indirect_only_set()

◆ OUTLINER_OT_collection_instance()

◆ OUTLINER_OT_collection_isolate()

◆ OUTLINER_OT_collection_link()

◆ OUTLINER_OT_collection_new()

◆ OUTLINER_OT_collection_objects_deselect()

◆ OUTLINER_OT_collection_objects_select()

◆ OUTLINER_OT_collection_show()

◆ OUTLINER_OT_collection_show_inside()

◆ OUTLINER_OT_constraint_operation()

◆ OUTLINER_OT_data_operation()

◆ OUTLINER_OT_datastack_drop()

◆ OUTLINER_OT_delete()

◆ OUTLINER_OT_drivers_add_selected()

◆ OUTLINER_OT_drivers_delete_selected()

◆ OUTLINER_OT_expanded_toggle()

◆ OUTLINER_OT_hide()

◆ OUTLINER_OT_highlight_update()

◆ OUTLINER_OT_id_copy()

◆ OUTLINER_OT_id_delete()

◆ OUTLINER_OT_id_operation()

◆ OUTLINER_OT_id_paste()

◆ OUTLINER_OT_id_remap()

◆ OUTLINER_OT_item_activate()

◆ OUTLINER_OT_item_drag_drop()

◆ OUTLINER_OT_item_openclose()

◆ OUTLINER_OT_item_rename()

◆ OUTLINER_OT_keyingset_add_selected()

◆ OUTLINER_OT_keyingset_remove_selected()

◆ OUTLINER_OT_lib_operation()

◆ OUTLINER_OT_lib_reload()

◆ OUTLINER_OT_lib_relocate()

◆ OUTLINER_OT_liboverride_operation()

◆ OUTLINER_OT_liboverride_troubleshoot_operation()

◆ OUTLINER_OT_material_drop()

◆ OUTLINER_OT_modifier_operation()

◆ OUTLINER_OT_object_operation()

◆ OUTLINER_OT_operation()

◆ OUTLINER_OT_orphans_manage()

◆ OUTLINER_OT_orphans_purge()

◆ OUTLINER_OT_parent_clear()

◆ OUTLINER_OT_parent_drop()

◆ OUTLINER_OT_scene_drop()

◆ OUTLINER_OT_scene_operation()

◆ OUTLINER_OT_scroll_page()

◆ OUTLINER_OT_select_all()

◆ OUTLINER_OT_select_box()

◆ OUTLINER_OT_select_walk()

◆ OUTLINER_OT_show_active()

◆ OUTLINER_OT_show_hierarchy()

◆ OUTLINER_OT_show_one_level()

◆ OUTLINER_OT_start_filter()

◆ OUTLINER_OT_unhide_all()

◆ outliner_requires_rebuild_on_select_or_active_change()

bool blender::ed::outliner::outliner_requires_rebuild_on_select_or_active_change ( const SpaceOutliner * space_outliner)

◆ outliner_restore_scrolling_position()

static void blender::ed::outliner::outliner_restore_scrolling_position ( SpaceOutliner * space_outliner,
ARegion * region,
OutlinerTreeElementFocus * focus )
static

Bring the outliner scrolling back to where it was in relation to the original focus element Caller is expected to handle redrawing of ARegion.

Definition at line 683 of file outliner_tree.cc.

References BLI_rctf_translate(), View2D::cur, outliner_find_tree_element(), outliner_set_coordinates(), SpaceOutliner::tree, rctf::ymax, and blender::ed::outliner::TreeElement::ys.

Referenced by outliner_build_tree().

◆ outliner_restrict_properties_collection_set()

◆ outliner_restrict_properties_enable_collection_set()

static void blender::ed::outliner::outliner_restrict_properties_enable_collection_set ( PointerRNA * collection_ptr,
RestrictProperties * props,
RestrictPropertiesActive * props_active )
static

◆ outliner_restrict_properties_enable_layer_collection_set()

◆ outliner_right_columns_width()

◆ outliner_scene_operation_exec()

◆ outliner_scroll_page_exec()

static int blender::ed::outliner::outliner_scroll_page_exec ( bContext * C,
wmOperator * op )
static

◆ outliner_scroll_view()

void blender::ed::outliner::outliner_scroll_view ( SpaceOutliner * space_outliner,
ARegion * region,
int delta_y )

Scroll view vertically while keeping within total bounds.

Definition at line 421 of file outliner_utils.cc.

References outliner_tree_dimensions(), and UI_UNIT_Y.

Referenced by outliner_item_rename_invoke(), outliner_scroll_page_exec(), outliner_show_active_exec(), and outliner_walk_scroll().

◆ outliner_search_back()

◆ outliner_search_back_te()

TreeElement * blender::ed::outliner::outliner_search_back_te ( TreeElement * te,
short idcode )

◆ outliner_select_all_exec()

◆ outliner_select_sync_from_edit_bone()

static void blender::ed::outliner::outliner_select_sync_from_edit_bone ( EditBone * ebone_active,
TreeElement * te,
TreeStoreElem * tselem )
static

◆ outliner_select_sync_from_object()

static void blender::ed::outliner::outliner_select_sync_from_object ( const Scene * scene,
ViewLayer * view_layer,
Object * obact,
TreeElement * te,
TreeStoreElem * tselem )
static

◆ outliner_select_sync_from_pose_bone()

static void blender::ed::outliner::outliner_select_sync_from_pose_bone ( bPoseChannel * pchan_active,
TreeElement * te,
TreeStoreElem * tselem )
static

◆ outliner_select_sync_from_sequence()

static void blender::ed::outliner::outliner_select_sync_from_sequence ( Sequence * sequence_active,
const TreeElement * te )
static

◆ outliner_select_sync_to_edit_bone()

◆ outliner_select_sync_to_object()

◆ outliner_select_sync_to_pose_bone()

◆ outliner_select_sync_to_sequence()

static void blender::ed::outliner::outliner_select_sync_to_sequence ( Scene * scene,
const TreeElement * te )
static

◆ outliner_set_coordinates()

void blender::ed::outliner::outliner_set_coordinates ( const ARegion * region,
const SpaceOutliner * space_outliner )

◆ outliner_set_properties_tab()

static void blender::ed::outliner::outliner_set_properties_tab ( bContext * C,
TreeElement * te,
TreeStoreElem * tselem )
static

Definition at line 1253 of file outliner_select.cc.

References BCONTEXT_BONE, BCONTEXT_BONE_CONSTRAINT, BCONTEXT_COLLECTION, BCONTEXT_CONSTRAINT, BCONTEXT_DATA, BCONTEXT_MATERIAL, BCONTEXT_MODIFIER, BCONTEXT_OBJECT, BCONTEXT_PARTICLE, BCONTEXT_PHYSICS, BCONTEXT_SCENE, BCONTEXT_SHADERFX, BCONTEXT_VIEW_LAYER, BCONTEXT_WORLD, BKE_constraint_panel_expand(), BKE_modifier_panel_expand(), BKE_shaderfx_panel_expand(), Object::data, PointerRNA::data, blender::ed::outliner::TreeElement::directdata, eModifierType_Cloth, eModifierType_Collision, eModifierType_DynamicPaint, eModifierType_Fluid, eModifierType_Fluidsim, eModifierType_ParticleSystem, eModifierType_Softbody, bArmature::id, Object::id, TreeStoreElem::id, ID_AR, ID_CA, ID_CU_LEGACY, ID_CV, ID_GD_LEGACY, ID_GP, ID_IM, ID_KE, ID_LA, ID_LP, ID_LT, ID_MA, ID_MB, ID_ME, ID_OB, ID_PT, ID_SCE, ID_SPK, ID_VO, ID_WO, blender::ed::outliner::TreeElement::idcode, outliner_find_parent_bone(), outliner_sync_to_properties_editors(), psys_get_current(), ptr, RNA_id_pointer_create(), RNA_pointer_create(), TREESTORE, TSE_BONE, TSE_BONE_COLLECTION, TSE_BONE_COLLECTION_BASE, TSE_CONSTRAINT, TSE_CONSTRAINT_BASE, TSE_DEFGROUP, TSE_DEFGROUP_BASE, TSE_EBONE, TSE_GP_LAYER, TSE_GPENCIL_EFFECT, TSE_GPENCIL_EFFECT_BASE, TSE_GREASE_PENCIL_NODE, TSE_LAYER_COLLECTION, TSE_LINKED_NODE_TREE, TSE_LINKED_PSYS, TSE_MODIFIER, TSE_MODIFIER_BASE, TSE_POSE_BASE, TSE_POSE_CHANNEL, TSE_R_LAYER, TSE_SOME_ID, ModifierData::type, and TreeStoreElem::type.

Referenced by outliner_item_do_activate_from_cursor().

◆ outliner_set_subtree_coords()

static void blender::ed::outliner::outliner_set_subtree_coords ( const TreeElement * te)
static

◆ outliner_show_active()

static void blender::ed::outliner::outliner_show_active ( SpaceOutliner * space_outliner,
ARegion * region,
TreeElement * te,
ID * id )
static

◆ outliner_show_active_exec()

◆ outliner_show_active_get_element()

static TreeElement * blender::ed::outliner::outliner_show_active_get_element ( bContext * C,
SpaceOutliner * space_outliner,
const Scene * scene,
ViewLayer * view_layer )
static

◆ outliner_show_hierarchy_exec()

static int blender::ed::outliner::outliner_show_hierarchy_exec ( bContext * C,
wmOperator *  )
static

◆ outliner_shows_mode_column()

bool blender::ed::outliner::outliner_shows_mode_column ( const SpaceOutliner & space_outliner)

Iterate over the entire tree (including collapsed sub-elements), probing if any of the elements has a warning to be displayed.

Definition at line 20 of file outliner_query.cc.

References SpaceOutliner::flag, SpaceOutliner::runtime, SO_MODE_COLUMN, blender::ed::outliner::AbstractTreeDisplay::supports_mode_column(), and blender::ed::outliner::SpaceOutliner_Runtime::tree_display.

Referenced by draw_outliner(), and outliner_is_co_within_mode_column().

◆ outliner_sort()

◆ outliner_space_blend_read_after_liblink()

static void blender::ed::outliner::outliner_space_blend_read_after_liblink ( BlendLibReader * ,
ID * ,
SpaceLink * sl )
static

◆ outliner_space_blend_read_data()

◆ outliner_space_blend_write()

static void blender::ed::outliner::outliner_space_blend_write ( BlendWriter * writer,
SpaceLink * sl )
static

Definition at line 637 of file space_outliner.cc.

References write_space_outliner().

◆ outliner_start_filter_exec()

static int blender::ed::outliner::outliner_start_filter_exec ( bContext * C,
wmOperator *  )
static

◆ outliner_storage_cleanup()

◆ outliner_store_scrolling_position()

static void blender::ed::outliner::outliner_store_scrolling_position ( SpaceOutliner * space_outliner,
ARegion * region,
OutlinerTreeElementFocus * focus )
static

Store information of current outliner scrolling status to be restored later.

Finds the top-most collection visible in the outliner and populates the #OutlinerTreeElementFocus struct to retrieve this element later to make sure it is in the same original position as before filtering.

Definition at line 809 of file outliner_tree.cc.

References outliner_find_first_desired_element_at_y(), outliner_set_coordinates(), TREESTORE, and blender::ed::outliner::TreeElement::ys.

Referenced by outliner_build_tree().

◆ outliner_sync_select_from_outliner_set_types()

static void blender::ed::outliner::outliner_sync_select_from_outliner_set_types ( bContext * C,
SpaceOutliner * space_outliner,
SyncSelectTypes * sync_types )
static

◆ outliner_sync_select_to_outliner_set_types()

static bool blender::ed::outliner::outliner_sync_select_to_outliner_set_types ( const bContext * C,
SpaceOutliner * space_outliner,
SyncSelectTypes * sync_types )
static

◆ outliner_sync_selection()

◆ outliner_sync_selection_from_outliner()

◆ outliner_sync_selection_to_outliner()

◆ outliner_sync_to_properties_editors()

static void blender::ed::outliner::outliner_sync_to_properties_editors ( const bContext * C,
PointerRNA * ptr,
const int context )
static

◆ outliner_tag_redraw_avoid_rebuild_on_open_change()

void blender::ed::outliner::outliner_tag_redraw_avoid_rebuild_on_open_change ( const SpaceOutliner * space_outliner,
ARegion * region )

The outliner should generally use ED_region_tag_redraw_no_rebuild() to avoid unnecessary tree rebuilds. If elements are open or closed, we may still have to rebuild. Upon changing the open/closed state, call this to avoid rebuilds if possible.

Definition at line 444 of file outliner_utils.cc.

References ED_region_tag_redraw(), ED_region_tag_redraw_no_rebuild(), SpaceOutliner::runtime, and blender::ed::outliner::SpaceOutliner_Runtime::tree_display.

Referenced by outliner_item_openclose_invoke(), outliner_item_openclose_modal(), and outliner_walk_select_invoke().

◆ outliner_toggle_expanded_exec()

static int blender::ed::outliner::outliner_toggle_expanded_exec ( bContext * C,
wmOperator *  )
static

◆ outliner_tree_dimensions()

void blender::ed::outliner::outliner_tree_dimensions ( SpaceOutliner * space_outliner,
int * r_width,
int * r_height )

Definition at line 109 of file outliner_draw.cc.

References outliner_tree_dimensions_impl(), and SpaceOutliner::tree.

Referenced by draw_outliner(), and outliner_scroll_view().

◆ outliner_tree_dimensions_impl()

static void blender::ed::outliner::outliner_tree_dimensions_impl ( SpaceOutliner * space_outliner,
ListBase * lb,
int * width,
int * height )
static

◆ outliner_tree_traverse()

bool blender::ed::outliner::outliner_tree_traverse ( const SpaceOutliner * space_outliner,
ListBase * tree,
int filter_te_flag,
int filter_tselem_flag,
TreeTraversalFunc func,
void * customdata )

Iterate over all tree elements (pre-order traversal), executing func callback for each tree element matching the optional filters.

Parameters
filter_te_flagIf not 0, only TreeElements with this flag will be visited.
filter_tselem_flagSame as filter_te_flag, but for the TreeStoreElem.
funcCustom callback to execute for each visited item.

Definition at line 268 of file outliner_utils.cc.

References TreeStoreElem::flag, outliner_tree_traverse(), TRAVERSE_BREAK, TRAVERSE_CONTINUE, TRAVERSE_SKIP_CHILDS, tree, and TREESTORE.

Referenced by collection_flag_exec(), collection_instance_exec(), collection_isolate_exec(), collection_link_exec(), collection_new_exec(), collection_objects_select_exec(), collection_view_layer_exec(), collection_visibility_exec(), collections_view_layer_poll(), outliner_active_collection(), outliner_active_layer_collection(), outliner_collection_delete(), outliner_color_tag_set_exec(), outliner_delete_exec(), outliner_hide_exec(), outliner_item_drag_drop_invoke(), and outliner_tree_traverse().

◆ outliner_unhide_all_exec()

◆ outliner_update_viewable_area()

static void blender::ed::outliner::outliner_update_viewable_area ( ARegion * region,
SpaceOutliner * space_outliner,
int tree_width,
int tree_height,
float right_column_width )
static

◆ outliner_view_layer_collections_editor_poll()

static bool blender::ed::outliner::outliner_view_layer_collections_editor_poll ( bContext * C)
static

◆ outliner_viewcontext_init()

◆ outliner_walk_left()

static TreeElement * blender::ed::outliner::outliner_walk_left ( SpaceOutliner * space_outliner,
TreeElement * te,
bool toggle_all )
static

◆ outliner_walk_right()

static TreeElement * blender::ed::outliner::outliner_walk_right ( SpaceOutliner * space_outliner,
TreeElement * te,
bool toggle_all )
static

◆ outliner_walk_scroll()

static void blender::ed::outliner::outliner_walk_scroll ( SpaceOutliner * space_outliner,
ARegion * region,
TreeElement * te )
static

◆ outliner_walk_select_invoke()

◆ outliner_width()

static int blender::ed::outliner::outliner_width ( SpaceOutliner * space_outliner,
int max_tree_width,
float right_column_width )
static

◆ parent_clear_invoke()

◆ parent_clear_poll()

◆ parent_drop_allowed()

◆ parent_drop_invoke()

◆ parent_drop_poll()

◆ parent_drop_set_parents()

static void blender::ed::outliner::parent_drop_set_parents ( bContext * C,
ReportList * reports,
wmDragID * drag,
Object * parent,
short parent_type,
const bool keep_transform )
static

◆ pchan_fn()

static void blender::ed::outliner::pchan_fn ( int event,
TreeElement * te,
TreeStoreElem * ,
void *  )
static

◆ refreshdrivers_animdata_fn()

static void blender::ed::outliner::refreshdrivers_animdata_fn ( int ,
TreeElement * ,
TreeStoreElem * tselem,
void *  )
static

◆ restrictbutton_bone_select_fn()

static void blender::ed::outliner::restrictbutton_bone_select_fn ( bContext * C,
void * poin,
void * poin2 )
static

◆ restrictbutton_bone_visibility_fn()

static void blender::ed::outliner::restrictbutton_bone_visibility_fn ( bContext * C,
void * poin,
void *  )
static

◆ restrictbutton_ebone_select_fn()

static void blender::ed::outliner::restrictbutton_ebone_select_fn ( bContext * C,
void * poin,
void * poin2 )
static

◆ restrictbutton_ebone_visibility_fn()

static void blender::ed::outliner::restrictbutton_ebone_visibility_fn ( bContext * C,
void * poin,
void * poin2 )
static

◆ restrictbutton_gp_layer_flag_fn()

static void blender::ed::outliner::restrictbutton_gp_layer_flag_fn ( bContext * C,
void * poin,
void *  )
static

◆ restrictbutton_id_user_toggle()

static void blender::ed::outliner::restrictbutton_id_user_toggle ( bContext * ,
void * poin,
void *  )
static

Definition at line 245 of file outliner_draw.cc.

References BLI_assert, ID_FLAG_FAKEUSER, id_us_min(), and id_us_plus().

Referenced by outliner_draw_userbuts().

◆ restrictbutton_r_lay_fn()

static void blender::ed::outliner::restrictbutton_r_lay_fn ( bContext * C,
void * poin,
void *  )
static

Definition at line 174 of file outliner_draw.cc.

References NC_SCENE, ND_RENDER_OPTIONS, and WM_event_add_notifier().

Referenced by outliner_draw_restrictbuts().

◆ restrictbutton_recursive_bone()

static void blender::ed::outliner::restrictbutton_recursive_bone ( Bone * bone_parent,
int flag,
bool set_flag )
static

◆ restrictbutton_recursive_ebone()

static void blender::ed::outliner::restrictbutton_recursive_ebone ( bArmature * arm,
EditBone * ebone_parent,
int flag,
bool set_flag )
static

◆ scene_drop_invoke()

◆ scene_drop_poll()

static bool blender::ed::outliner::scene_drop_poll ( bContext * C,
wmDrag * drag,
const wmEvent * event )
static

Definition at line 555 of file outliner_dragdrop.cc.

References ID_OB, ID_SCE, outliner_ID_drop_find(), and WM_drag_get_local_ID().

Referenced by outliner_dropboxes().

◆ scene_fn()

static bool blender::ed::outliner::scene_fn ( bContext * C,
eOutliner_PropSceneOps event,
TreeElement * ,
TreeStoreElem * tselem )
static

◆ scenes__collection_set_flag_recursive_fn()

static void blender::ed::outliner::scenes__collection_set_flag_recursive_fn ( bContext * C,
void * poin,
void * poin2 )
static

Collection properties called from the Scenes mode. Change the collection children but no objects.

Definition at line 680 of file outliner_draw.cc.

References outliner_collection_set_flag_recursive_fn().

Referenced by outliner_draw_restrictbuts().

◆ selected_items_free()

static void blender::ed::outliner::selected_items_free ( SelectedItems * selected_items)
static

◆ selected_items_init()

◆ sequence_fn()

◆ singleuser_action_fn()

static void blender::ed::outliner::singleuser_action_fn ( bContext * C,
ReportList * ,
Scene * ,
TreeElement * te,
TreeStoreElem * tsep,
TreeStoreElem * tselem )
static

◆ singleuser_world_fn()

static void blender::ed::outliner::singleuser_world_fn ( bContext * C,
ReportList * ,
Scene * ,
TreeElement * ,
TreeStoreElem * tsep,
TreeStoreElem * tselem )
static

◆ subtree_contains_object()

static bool blender::ed::outliner::subtree_contains_object ( ListBase * lb)
static

◆ subtree_has_objects()

static int blender::ed::outliner::subtree_has_objects ( ListBase * lb)
static

Helper function for #tree_element_shwo_hierarchy() - recursively checks whether subtrees have any objects.

Definition at line 1574 of file outliner_edit.cc.

References ID_OB, LISTBASE_FOREACH, subtree_has_objects(), TREESTORE, TSE_SOME_ID, and TreeStoreElem::type.

Referenced by subtree_has_objects(), and tree_element_show_hierarchy().

◆ test_collection_callback()

static bool blender::ed::outliner::test_collection_callback ( TreeElement * te)
static

◆ test_object_callback()

static bool blender::ed::outliner::test_object_callback ( TreeElement * te)
static

◆ tree_element_activate()

void blender::ed::outliner::tree_element_activate ( bContext * C,
const TreeViewContext * tvc,
TreeElement * te,
eOLSetState set,
bool handle_all_types )

Generic call for ID data check or make/check active in UI.

Note
ID_OB only if handle_all_type is true, else objects are handled specially to allow multiple selection. See #do_outliner_item_activate.
ID_OB only if handle_all_type is true, else objects are handled specially to allow multiple selection. See #do_outliner_item_activate.

Definition at line 811 of file outliner_select.cc.

References ID_CA, ID_MA, ID_OB, ID_TXT, ID_WO, blender::ed::outliner::TreeElement::idcode, blender::ed::outliner::TreeViewContext::scene, tree_element_camera_activate(), tree_element_material_activate(), tree_element_object_activate(), tree_element_text_activate(), tree_element_world_activate(), and blender::ed::outliner::TreeViewContext::view_layer.

Referenced by namebutton_fn().

◆ tree_element_active_camera_get()

static eOLDrawState blender::ed::outliner::tree_element_active_camera_get ( const Scene * scene,
const TreeElement * te )
static

◆ tree_element_active_ebone__sel()

static void blender::ed::outliner::tree_element_active_ebone__sel ( bContext * C,
bArmature * arm,
EditBone * ebone,
short sel )
static

◆ tree_element_active_material_get()

◆ tree_element_active_scene_get()

static eOLDrawState blender::ed::outliner::tree_element_active_scene_get ( const TreeViewContext * tvc,
const TreeElement * te,
const TreeStoreElem * tselem )
static

◆ tree_element_active_state_get()

◆ tree_element_active_world_get()

static eOLDrawState blender::ed::outliner::tree_element_active_world_get ( const Scene * scene,
const TreeElement * te )
static

◆ tree_element_bone_activate()

◆ tree_element_bone_collection_state_get()

static eOLDrawState blender::ed::outliner::tree_element_bone_collection_state_get ( const TreeElement * te,
const TreeStoreElem * tselem )
static

◆ tree_element_bone_state_get()

static eOLDrawState blender::ed::outliner::tree_element_bone_state_get ( const Scene * scene,
ViewLayer * view_layer,
const TreeElement * te,
const TreeStoreElem * tselem )
static

◆ tree_element_bonecollection_activate()

static void blender::ed::outliner::tree_element_bonecollection_activate ( bContext * C,
TreeElement * te,
TreeStoreElem * tselem )
static

◆ tree_element_camera_activate()

◆ tree_element_cast()

◆ tree_element_constraint_activate()

static void blender::ed::outliner::tree_element_constraint_activate ( bContext * C,
const Scene * scene,
ViewLayer * view_layer,
TreeElement * te,
TreeStoreElem * tselem,
const eOLSetState set )
static

◆ tree_element_defgroup_activate()

◆ tree_element_defgroup_state_get()

static eOLDrawState blender::ed::outliner::tree_element_defgroup_state_get ( const Scene * scene,
ViewLayer * view_layer,
const TreeElement * te,
const TreeStoreElem * tselem )
static

◆ tree_element_ebone_activate()

◆ tree_element_ebone_state_get()

static eOLDrawState blender::ed::outliner::tree_element_ebone_state_get ( const TreeElement * te)
static

◆ tree_element_expand()

void blender::ed::outliner::tree_element_expand ( const AbstractTreeElement & tree_element,
SpaceOutliner & space_outliner )

◆ tree_element_get_icon()

TreeElementIcon blender::ed::outliner::tree_element_get_icon ( TreeStoreElem * tselem,
TreeElement * te )

Definition at line 2590 of file outliner_draw.cc.

References blender::ed::outliner::TreeElement::abstract_element, BKE_modifier_get_info(), BLI_findlink(), COLLECTION_IS_MASTER, GreasePencilLayerTreeGroup::color_tag, CONSTRAINT_TYPE_ACTION, CONSTRAINT_TYPE_ARMATURE, CONSTRAINT_TYPE_CAMERASOLVER, CONSTRAINT_TYPE_CHILDOF, CONSTRAINT_TYPE_CLAMPTO, CONSTRAINT_TYPE_DAMPTRACK, CONSTRAINT_TYPE_DISTLIMIT, CONSTRAINT_TYPE_FOLLOWPATH, CONSTRAINT_TYPE_FOLLOWTRACK, CONSTRAINT_TYPE_KINEMATIC, CONSTRAINT_TYPE_LOCKTRACK, CONSTRAINT_TYPE_LOCLIKE, CONSTRAINT_TYPE_LOCLIMIT, CONSTRAINT_TYPE_MINMAX, CONSTRAINT_TYPE_OBJECTSOLVER, CONSTRAINT_TYPE_PIVOT, CONSTRAINT_TYPE_ROTLIKE, CONSTRAINT_TYPE_ROTLIMIT, CONSTRAINT_TYPE_SAMEVOL, CONSTRAINT_TYPE_SHRINKWRAP, CONSTRAINT_TYPE_SIZELIKE, CONSTRAINT_TYPE_SIZELIMIT, CONSTRAINT_TYPE_SPLINEIK, CONSTRAINT_TYPE_STRETCHTO, CONSTRAINT_TYPE_TRACKTO, CONSTRAINT_TYPE_TRANSFORM, CONSTRAINT_TYPE_TRANSFORM_CACHE, CONSTRAINT_TYPE_TRANSLIKE, data, PointerRNA::data, blender::ed::outliner::TreeElement::directdata, eGpencilModifierType_Armature, eGpencilModifierType_Array, eGpencilModifierType_Build, eGpencilModifierType_Color, eGpencilModifierType_Hook, eGpencilModifierType_Lattice, eGpencilModifierType_Mirror, eGpencilModifierType_Multiply, eGpencilModifierType_Noise, eGpencilModifierType_Offset, eGpencilModifierType_Opacity, eGpencilModifierType_Shrinkwrap, eGpencilModifierType_Simplify, eGpencilModifierType_Smooth, eGpencilModifierType_Subdiv, eGpencilModifierType_Texture, eGpencilModifierType_Thick, eGpencilModifierType_Time, eGpencilModifierType_Tint, eGpencilModifierType_WeightAngle, eGpencilModifierType_WeightProximity, blender::ed::outliner::TreeElementRNACommon::get_pointer_rna(), blender::ed::outliner::TreeElementSequence::get_sequence_type(), Object::greasepencil_modifiers, blender::ed::outliner::TreeElementIcon::icon, ModifierTypeInfo::icon, blender::ed::outliner::TreeElementOverridesBase::id, TreeStoreElem::id, LAYERGROUP_COLOR_NONE, Object::modifiers, TreeStoreElem::nr, OB_GPENCIL_LEGACY, outliner_collection_from_tree_element(), blender::ed::outliner::TreeElement::parent, ptr, RNA_struct_is_ID(), RNA_struct_ui_icon(), SEQ_TYPE_ADD, SEQ_TYPE_ADJUSTMENT, SEQ_TYPE_ALPHAOVER, SEQ_TYPE_ALPHAUNDER, SEQ_TYPE_COLOR, SEQ_TYPE_COLORMIX, SEQ_TYPE_CROSS, SEQ_TYPE_GAMCROSS, SEQ_TYPE_GAUSSIAN_BLUR, SEQ_TYPE_GLOW, SEQ_TYPE_IMAGE, SEQ_TYPE_MASK, SEQ_TYPE_META, SEQ_TYPE_MOVIE, SEQ_TYPE_MOVIECLIP, SEQ_TYPE_MUL, SEQ_TYPE_MULTICAM, SEQ_TYPE_OVERDROP, SEQ_TYPE_SCENE, SEQ_TYPE_SOUND_RAM, SEQ_TYPE_SPEED, SEQ_TYPE_SUB, SEQ_TYPE_TEXT, SEQ_TYPE_TRANSFORM, SEQ_TYPE_WIPE, tree_element_cast(), tree_element_get_icon_from_id(), TREESTORE, TSE_ANIM_DATA, TSE_BONE, TSE_BONE_COLLECTION, TSE_BONE_COLLECTION_BASE, TSE_CONSTRAINT, TSE_CONSTRAINT_BASE, TSE_DEFGROUP, TSE_DEFGROUP_BASE, TSE_DRIVER_BASE, TSE_EBONE, TSE_GP_LAYER, TSE_GPENCIL_EFFECT, TSE_GPENCIL_EFFECT_BASE, TSE_GREASE_PENCIL_NODE, TSE_LAYER_COLLECTION, TSE_LIBRARY_OVERRIDE, TSE_LIBRARY_OVERRIDE_BASE, TSE_LINKED_NODE_TREE, TSE_LINKED_OB, TSE_LINKED_PSYS, TSE_MODIFIER, TSE_MODIFIER_BASE, TSE_NLA, TSE_NLA_ACTION, TSE_NLA_TRACK, TSE_POSE_BASE, TSE_POSE_CHANNEL, TSE_R_LAYER, TSE_R_LAYER_BASE, TSE_RNA_STRUCT, TSE_SCENE_COLLECTION_BASE, TSE_SCENE_OBJECTS_BASE, TSE_SEQ_STRIP, TSE_SEQUENCE, TSE_SEQUENCE_DUP, TSE_SOME_ID, TSE_VIEW_COLLECTION_BASE, bConstraint::type, GpencilModifierData::type, ModifierData::type, Object::type, PointerRNA::type, and TreeStoreElem::type.

Referenced by merged_element_search_fn_recursive(), outliner_item_drag_drop_invoke(), and tselem_draw_icon().

◆ tree_element_get_icon_from_id()

◆ tree_element_gplayer_activate()

◆ tree_element_gplayer_state_get()

static eOLDrawState blender::ed::outliner::tree_element_gplayer_state_get ( const TreeElement * te)
static

◆ tree_element_grease_pencil_node_activate()

static void blender::ed::outliner::tree_element_grease_pencil_node_activate ( bContext * C,
TreeElement * te,
TreeStoreElem * tselem )
static

◆ tree_element_grease_pencil_node_state_get()

static eOLDrawState blender::ed::outliner::tree_element_grease_pencil_node_state_get ( const TreeElement * te)
static

◆ tree_element_id_type_to_index()

int blender::ed::outliner::tree_element_id_type_to_index ( TreeElement * te)

Return the index to use based on the TreeElement ID and object type

We use a continuum of indices until we get to the object data-blocks and we then make room for the object types.

Definition at line 3148 of file outliner_draw.cc.

References BKE_idtype_idcode_to_index(), TreeStoreElem::id, blender::ed::outliner::TreeElement::idcode, INDEX_ID_GP, INDEX_ID_GR, INDEX_ID_OB, OB_TYPE_MAX, TREESTORE, TSE_GREASE_PENCIL_NODE, TSE_SOME_ID, Object::type, and TreeStoreElem::type.

Referenced by merged_element_search_fn_recursive(), merged_element_search_update_fn(), and outliner_draw_iconrow().

◆ tree_element_layer_collection_activate()

◆ tree_element_layer_collection_state_get()

static eOLDrawState blender::ed::outliner::tree_element_layer_collection_state_get ( const bContext * C,
const TreeElement * te )
static

◆ tree_element_master_collection_activate()

static void blender::ed::outliner::tree_element_master_collection_activate ( const bContext * C)
static

◆ tree_element_master_collection_state_get()

static eOLDrawState blender::ed::outliner::tree_element_master_collection_state_get ( const bContext * C)
static

◆ tree_element_material_activate()

◆ tree_element_modifier_activate()

static void blender::ed::outliner::tree_element_modifier_activate ( bContext * C,
TreeElement * te,
TreeStoreElem * tselem,
const eOLSetState set )
static

◆ tree_element_modifier_state_get()

static eOLDrawState blender::ed::outliner::tree_element_modifier_state_get ( const TreeElement * te,
const TreeStoreElem * tselem )
static

◆ tree_element_object_activate()

◆ tree_element_object_state_get()

static eOLDrawState blender::ed::outliner::tree_element_object_state_get ( const TreeViewContext * tvc,
const TreeStoreElem * tselem )
static

◆ tree_element_pose_state_get()

static eOLDrawState blender::ed::outliner::tree_element_pose_state_get ( const Scene * scene,
const ViewLayer * view_layer,
const TreeStoreElem * tselem )
static

◆ tree_element_posechannel_activate()

◆ tree_element_posechannel_state_get()

static eOLDrawState blender::ed::outliner::tree_element_posechannel_state_get ( const Object * ob_pose,
const TreeElement * te,
const TreeStoreElem * tselem )
static

◆ tree_element_psys_activate()

static void blender::ed::outliner::tree_element_psys_activate ( bContext * C,
TreeStoreElem * tselem )
static

◆ tree_element_sequence_activate()

◆ tree_element_sequence_dup_activate()

static void blender::ed::outliner::tree_element_sequence_dup_activate ( Scene * scene,
TreeElement *  )
static

◆ tree_element_sequence_dup_state_get()

static eOLDrawState blender::ed::outliner::tree_element_sequence_dup_state_get ( const TreeElement * te)
static

◆ tree_element_sequence_state_get()

static eOLDrawState blender::ed::outliner::tree_element_sequence_state_get ( const Scene * scene,
const TreeElement * te )
static

◆ tree_element_show_hierarchy()

◆ tree_element_text_activate()

static void blender::ed::outliner::tree_element_text_activate ( bContext * C,
TreeElement * te )
static

◆ tree_element_to_path()

◆ tree_element_type_active_set()

◆ tree_element_type_active_state_get()

◆ tree_element_viewlayer_activate()

◆ tree_element_viewlayer_state_get()

static eOLDrawState blender::ed::outliner::tree_element_viewlayer_state_get ( const bContext * C,
const TreeElement * te )
static

◆ tree_element_world_activate()

static void blender::ed::outliner::tree_element_world_activate ( bContext * C,
Scene * scene,
TreeElement * te )
static

◆ treesort_alpha()

static int blender::ed::outliner::treesort_alpha ( const void * v1,
const void * v2 )
static

Definition at line 498 of file outliner_tree.cc.

References BLI_strcasecmp_natural(), blender::ed::outliner::tTreeSort::name, and v2.

Referenced by outliner_sort().

◆ treesort_alpha_ob()

static int blender::ed::outliner::treesort_alpha_ob ( const void * v1,
const void * v2 )
static

◆ treesort_child_not_in_collection()

static int blender::ed::outliner::treesort_child_not_in_collection ( const void * v1,
const void * v2 )
static

◆ tselem_draw_icon()

◆ unlink_action_fn()

static void blender::ed::outliner::unlink_action_fn ( bContext * C,
ReportList * reports,
Scene * ,
TreeElement * ,
TreeStoreElem * tsep,
TreeStoreElem * tselem )
static

◆ unlink_collection_fn()

◆ unlink_material_fn()

◆ unlink_object_fn()

◆ unlink_texture_fn()

static void blender::ed::outliner::unlink_texture_fn ( bContext * ,
ReportList * reports,
Scene * ,
TreeElement * te,
TreeStoreElem * tsep,
TreeStoreElem * tselem )
static

◆ unlink_world_fn()

static void blender::ed::outliner::unlink_world_fn ( bContext * ,
ReportList * reports,
Scene * ,
TreeElement * ,
TreeStoreElem * tsep,
TreeStoreElem * tselem )
static

◆ unlinkact_animdata_fn()

static void blender::ed::outliner::unlinkact_animdata_fn ( int ,
TreeElement * ,
TreeStoreElem * tselem,
void *  )
static

◆ unused_message_gen()

static void blender::ed::outliner::unused_message_gen ( std::string & message,
const std::array< int, INDEX_ID_MAX > & num_tagged )
static

◆ unused_message_popup_width_compute()

◆ verify_active_keyingset()

static KeyingSet * blender::ed::outliner::verify_active_keyingset ( Scene * scene,
short add )
static

◆ view_layer__collection_set_flag_recursive_fn()

static void blender::ed::outliner::view_layer__collection_set_flag_recursive_fn ( bContext * C,
void * poin,
void * poin2 )
static

Collection properties called from the ViewLayer mode. Change the (non-excluded) collection children, and the objects nested to them all.

Definition at line 668 of file outliner_draw.cc.

References LayerCollection::collection, and outliner_collection_set_flag_recursive_fn().

Referenced by outliner_draw_restrictbuts().

◆ view_layer__layer_collection_set_flag_recursive_fn()

static void blender::ed::outliner::view_layer__layer_collection_set_flag_recursive_fn ( bContext * C,
void * poin,
void * poin2 )
static

Layer collection properties called from the ViewLayer mode. Change the (non-excluded) collection children, and the objects nested to them all.

Definition at line 655 of file outliner_draw.cc.

References outliner_collection_set_flag_recursive_fn().

Referenced by outliner_draw_restrictbuts().

◆ write_space_outliner()

Variable Documentation

◆ LOG

CLG_LogRef blender::ed::outliner::LOG = {"ed.outliner.tools"}
static

◆ outliner_context_dir

const char* blender::ed::outliner::outliner_context_dir[]
static
Initial value:
= {
"id",
"selected_ids",
nullptr,
}

Definition at line 30 of file outliner_context.cc.

Referenced by outliner_main_region_context().

◆ outliner_lib_op_type_items

const EnumPropertyItem blender::ed::outliner::outliner_lib_op_type_items[]
static
Initial value:
= {
{OL_LIB_DELETE, "DELETE", ICON_X, "Delete", "Delete this library and all its items"},
"RELOCATE",
0,
"Relocate",
"Select a new path for this library, and reload all its data"},
{OL_LIB_RELOAD, "RELOAD", ICON_FILE_REFRESH, "Reload", "Reload all data from this library"},
{0, nullptr, 0, nullptr, nullptr},
}

Definition at line 3074 of file outliner_tools.cc.

Referenced by OUTLINER_OT_lib_operation().

◆ prop_animdata_op_types

const EnumPropertyItem blender::ed::outliner::prop_animdata_op_types[]
static
Initial value:
= {
"CLEAR_ANIMDATA",
0,
"Clear Animation Data",
"Remove this animation data container"},
{OUTLINER_ANIMOP_SET_ACT, "SET_ACT", 0, "Set Action", ""},
{OUTLINER_ANIMOP_CLEAR_ACT, "CLEAR_ACT", 0, "Unlink Action", ""},
{OUTLINER_ANIMOP_REFRESH_DRV, "REFRESH_DRIVERS", 0, "Refresh Drivers", ""},
{OUTLINER_ANIMOP_CLEAR_DRV, "CLEAR_DRIVERS", 0, "Clear Drivers", ""},
{0, nullptr, 0, nullptr, nullptr},
}

Definition at line 3283 of file outliner_tools.cc.

Referenced by OUTLINER_OT_animdata_operation().

◆ prop_constraint_op_types

const EnumPropertyItem blender::ed::outliner::prop_constraint_op_types[]
static
Initial value:
= {
{OL_CONSTRAINTOP_ENABLE, "ENABLE", ICON_HIDE_OFF, "Enable", ""},
{OL_CONSTRAINTOP_DISABLE, "DISABLE", ICON_HIDE_ON, "Disable", ""},
{OL_CONSTRAINTOP_DELETE, "DELETE", ICON_X, "Delete", ""},
{0, nullptr, 0, nullptr, nullptr},
}

Definition at line 3384 of file outliner_tools.cc.

Referenced by OUTLINER_OT_constraint_operation().

◆ prop_id_op_types

const EnumPropertyItem blender::ed::outliner::prop_id_op_types[]
static
Initial value:
= {
{OUTLINER_IDOP_UNLINK, "UNLINK", 0, "Unlink", ""},
{OUTLINER_IDOP_LOCAL, "LOCAL", 0, "Make Local", ""},
{OUTLINER_IDOP_SINGLE, "SINGLE", 0, "Make Single User", ""},
{OUTLINER_IDOP_DELETE, "DELETE", ICON_X, "Delete", ""},
{OUTLINER_IDOP_REMAP,
"REMAP",
0,
"Remap Users",
"Make all users of selected data-blocks to use instead current (clicked) one"},
{OUTLINER_IDOP_COPY, "COPY", ICON_COPYDOWN, "Copy", ""},
{OUTLINER_IDOP_PASTE, "PASTE", ICON_PASTEDOWN, "Paste", ""},
"ADD_FAKE",
0,
"Add Fake User",
"Ensure data-block gets saved even if it isn't in use (e.g. for motion and material "
"libraries)"},
{OUTLINER_IDOP_FAKE_CLEAR, "CLEAR_FAKE", 0, "Clear Fake User", ""},
{OUTLINER_IDOP_RENAME, "RENAME", 0, "Rename", ""},
{OUTLINER_IDOP_SELECT_LINKED, "SELECT_LINKED", 0, "Select Linked", ""},
{0, nullptr, 0, nullptr, nullptr},
}
#define RNA_ENUM_ITEM_SEPR
Definition RNA_types.hh:528

Definition at line 2788 of file outliner_tools.cc.

Referenced by outliner_id_operation_itemf(), and OUTLINER_OT_id_operation().

◆ prop_lib_op_selection_set

const EnumPropertyItem blender::ed::outliner::prop_lib_op_selection_set[]
static
Initial value:
= {
"SELECTED",
0,
"Selected",
"Apply the operation over selected data-blocks only"},
"CONTENT",
0,
"Content",
"Apply the operation over content of the selected items only (the data-blocks in their "
"sub-tree)"},
{OUTLINER_LIB_LIB_SELECTIONSET_SELECTED_AND_CONTENT,
"SELECTED_AND_CONTENT",
0,
"Selected & Content",
"Apply the operation over selected data-blocks and all their dependencies"},
{0, nullptr, 0, nullptr, nullptr},
}

Definition at line 563 of file outliner_tools.cc.

Referenced by OUTLINER_OT_liboverride_operation(), and OUTLINER_OT_liboverride_troubleshoot_operation().

◆ prop_liboverride_op_types

const EnumPropertyItem blender::ed::outliner::prop_liboverride_op_types[]
static
Initial value:
= {
"OVERRIDE_LIBRARY_CREATE_HIERARCHY",
0,
"Make",
"Create a local override of the selected linked data-blocks, and their hierarchy of "
"dependencies"},
"OVERRIDE_LIBRARY_RESET",
0,
"Reset",
"Reset the selected local overrides to their linked references values"},
{OUTLINER_LIBOVERRIDE_OP_CLEAR_SINGLE,
"OVERRIDE_LIBRARY_CLEAR_SINGLE",
0,
"Clear",
"Delete the selected local overrides and relink their usages to the linked data-blocks if "
"possible, else reset them and mark them as non editable"},
{0, nullptr, 0, nullptr, nullptr},
}

Definition at line 1794 of file outliner_tools.cc.

Referenced by OUTLINER_OT_liboverride_operation().

◆ prop_liboverride_troubleshoot_op_types

const EnumPropertyItem blender::ed::outliner::prop_liboverride_troubleshoot_op_types[]
static
Initial value:
= {
"OVERRIDE_LIBRARY_RESYNC_HIERARCHY",
0,
"Resync",
"Rebuild the selected local overrides from their linked references, as well as their "
"hierarchies of dependencies"},
"OVERRIDE_LIBRARY_RESYNC_HIERARCHY_ENFORCE",
0,
"Resync Enforce",
"Rebuild the selected local overrides from their linked references, as well as their "
"hierarchies of dependencies, enforcing these hierarchies to match the linked data (i.e. "
"ignoring existing overrides on data-blocks pointer properties)"},
{OUTLINER_LIBOVERRIDE_OP_DELETE_HIERARCHY,
"OVERRIDE_LIBRARY_DELETE_HIERARCHY",
0,
"Delete",
"Delete the selected local overrides (including their hierarchies of override dependencies) "
"and relink their usages to the linked data-blocks"},
{0, nullptr, 0, nullptr, nullptr},
}

Definition at line 1815 of file outliner_tools.cc.

Referenced by OUTLINER_OT_liboverride_troubleshoot_operation().

◆ prop_modifier_op_types

const EnumPropertyItem blender::ed::outliner::prop_modifier_op_types[]
static
Initial value:
= {
{OL_MODIFIER_OP_APPLY, "APPLY", ICON_CHECKMARK, "Apply", ""},
{OL_MODIFIER_OP_DELETE, "DELETE", ICON_X, "Delete", ""},
{OL_MODIFIER_OP_TOGVIS, "TOGVIS", ICON_RESTRICT_VIEW_OFF, "Toggle Viewport Use", ""},
{OL_MODIFIER_OP_TOGREN, "TOGREN", ICON_RESTRICT_RENDER_OFF, "Toggle Render Use", ""},
{0, nullptr, 0, nullptr, nullptr},
}

Definition at line 3430 of file outliner_tools.cc.

Referenced by OUTLINER_OT_modifier_operation().

◆ prop_object_op_types

const EnumPropertyItem blender::ed::outliner::prop_object_op_types[]
static
Initial value:
= {
{OL_OP_SELECT, "SELECT", ICON_RESTRICT_SELECT_OFF, "Select", ""},
{OL_OP_DESELECT, "DESELECT", 0, "Deselect", ""},
{OL_OP_SELECT_HIERARCHY, "SELECT_HIERARCHY", 0, "Select Hierarchy", ""},
{OL_OP_REMAP,
"REMAP",
0,
"Remap Users",
"Make all users of selected data-blocks to use instead a new chosen one"},
{OL_OP_RENAME, "RENAME", 0, "Rename", ""},
{0, nullptr, 0, nullptr, nullptr},
}

Definition at line 2477 of file outliner_tools.cc.

Referenced by OUTLINER_OT_object_operation().

◆ prop_scene_op_types

const EnumPropertyItem blender::ed::outliner::prop_scene_op_types[]
static
Initial value:
= {
{OL_SCENE_OP_DELETE, "DELETE", ICON_X, "Delete", ""},
{0, nullptr, 0, nullptr, nullptr},
}

Definition at line 681 of file outliner_tools.cc.

Referenced by OUTLINER_OT_scene_operation().