Blender V4.3
outliner_tools.cc File Reference
#include "MEM_guardedalloc.h"
#include "CLG_log.h"
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
#include "DNA_collection_types.h"
#include "DNA_constraint_types.h"
#include "DNA_curves_types.h"
#include "DNA_gpencil_legacy_types.h"
#include "DNA_light_types.h"
#include "DNA_linestyle_types.h"
#include "DNA_material_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meta_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "DNA_pointcloud_types.h"
#include "DNA_scene_types.h"
#include "DNA_sequence_types.h"
#include "DNA_volume_types.h"
#include "DNA_world_types.h"
#include "BLI_blenlib.h"
#include "BLI_ghash.h"
#include "BLI_linklist.h"
#include "BLI_map.hh"
#include "BLI_set.hh"
#include "BLI_utildefines.h"
#include "BLI_vector.hh"
#include "BKE_anim_data.hh"
#include "BKE_animsys.h"
#include "BKE_armature.hh"
#include "BKE_collection.hh"
#include "BKE_constraint.h"
#include "BKE_context.hh"
#include "BKE_fcurve.hh"
#include "BKE_global.hh"
#include "BKE_grease_pencil.hh"
#include "BKE_idtype.hh"
#include "BKE_layer.hh"
#include "BKE_lib_id.hh"
#include "BKE_lib_override.hh"
#include "BKE_lib_query.hh"
#include "BKE_lib_remap.hh"
#include "BKE_main.hh"
#include "BKE_object.hh"
#include "BKE_report.hh"
#include "BKE_scene.hh"
#include "BKE_screen.hh"
#include "DEG_depsgraph.hh"
#include "DEG_depsgraph_build.hh"
#include "ED_node.hh"
#include "ED_object.hh"
#include "ED_outliner.hh"
#include "ED_scene.hh"
#include "ED_screen.hh"
#include "ED_sequencer.hh"
#include "ED_undo.hh"
#include "WM_api.hh"
#include "WM_message.hh"
#include "WM_types.hh"
#include "UI_interface.hh"
#include "UI_resources.hh"
#include "UI_view2d.hh"
#include "../../blender/blenloader/BLO_readfile.hh"
#include "RNA_access.hh"
#include "RNA_define.hh"
#include "RNA_enum_types.hh"
#include "SEQ_relations.hh"
#include "SEQ_sequencer.hh"
#include "outliner_intern.hh"
#include "tree/tree_element_grease_pencil_node.hh"
#include "tree/tree_element_rna.hh"
#include "tree/tree_element_seq.hh"
#include "tree/tree_iterator.hh"

Go to the source code of this file.

Classes

struct  blender::ed::outliner::MergedSearchData
 
struct  blender::ed::outliner::OutlinerLiboverrideDataIDRoot
 
struct  blender::ed::outliner::OutlinerLibOverrideData
 
struct  blender::ed::outliner::ModifierFnArgs
 
struct  blender::ed::outliner::ObjectEditData
 

Namespaces

namespace  blender
 
namespace  blender::ed
 
namespace  blender::ed::outliner
 

Functions

Search Utilities
static void blender::ed::outliner::merged_element_search_fn_recursive (const ListBase *tree, short tselem_type, short type, const char *str, uiSearchItems *items)
 
static void blender::ed::outliner::merged_element_search_update_fn (const bContext *, void *data, const char *str, uiSearchItems *items, const bool)
 
static void blender::ed::outliner::merged_element_search_exec_fn (bContext *C, void *, void *element)
 
static uiBlockblender::ed::outliner::merged_element_search_menu (bContext *C, ARegion *region, void *data)
 
void blender::ed::outliner::merged_element_search_menu_invoke (bContext *C, TreeElement *parent_te, TreeElement *activate_te)
 
static void blender::ed::outliner::object_select_fn (bContext *C, ReportList *, Scene *, TreeElement *, TreeStoreElem *, TreeStoreElem *tselem)
 
Callbacks (Selection, Users & Library) Utilities
static void blender::ed::outliner::object_select_hierarchy_fn (bContext *C, ReportList *, Scene *, TreeElement *te, TreeStoreElem *, TreeStoreElem *)
 
static void blender::ed::outliner::object_deselect_fn (bContext *C, ReportList *, Scene *, TreeElement *, TreeStoreElem *, TreeStoreElem *tselem)
 
static void blender::ed::outliner::outliner_object_delete_fn (bContext *C, ReportList *reports, Scene *scene, Object *ob)
 
static void blender::ed::outliner::id_local_fn (bContext *C, ReportList *, Scene *, TreeElement *, TreeStoreElem *, TreeStoreElem *tselem)
 
static void blender::ed::outliner::id_override_library_create_hierarchy_pre_process (bContext *C, OutlinerLibOverrideData *data, ReportList *reports, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
 
static void blender::ed::outliner::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 blender::ed::outliner::id_override_library_create_hierarchy_process (bContext *C, ReportList *reports, OutlinerLibOverrideData &data)
 
static void blender::ed::outliner::id_override_library_reset (bContext *C, OutlinerLibOverrideData *data, TreeStoreElem *tselem)
 
static void blender::ed::outliner::id_override_library_clear_single_process (bContext *C, ReportList *, OutlinerLibOverrideData &data)
 
static void blender::ed::outliner::id_override_library_clear_single (OutlinerLibOverrideData *data, ReportList *reports, TreeStoreElem *tselem)
 
static void blender::ed::outliner::id_override_library_resync (OutlinerLibOverrideData *data, TreeStoreElem *tselem)
 
static void blender::ed::outliner::id_override_library_resync_hierarchy_process (bContext *C, ReportList *reports, OutlinerLibOverrideData &data)
 
static void blender::ed::outliner::id_override_library_delete_hierarchy (OutlinerLibOverrideData *data, TreeStoreElem *tselem)
 
static void blender::ed::outliner::id_override_library_delete_hierarchy_process (bContext *C, ReportList *, OutlinerLibOverrideData &data)
 
static void blender::ed::outliner::id_fake_user_set_fn (bContext *, ReportList *, Scene *, TreeElement *, TreeStoreElem *, TreeStoreElem *tselem)
 
static void blender::ed::outliner::id_fake_user_clear_fn (bContext *, ReportList *, Scene *, TreeElement *, TreeStoreElem *, TreeStoreElem *tselem)
 
static void blender::ed::outliner::id_select_linked_fn (bContext *C, ReportList *, Scene *, TreeElement *, TreeStoreElem *, TreeStoreElem *tselem)
 
static void blender::ed::outliner::singleuser_action_fn (bContext *C, ReportList *, Scene *, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
 
static void blender::ed::outliner::singleuser_world_fn (bContext *C, ReportList *, Scene *, TreeElement *, TreeStoreElem *tsep, TreeStoreElem *tselem)
 
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)
 
void blender::ed::outliner::outliner_do_object_operation (bContext *C, ReportList *reports, Scene *scene, SpaceOutliner *space_outliner, ListBase *lb, outliner_operation_fn operation_fn)
 
Internal Tagging Utilities
static void blender::ed::outliner::clear_animdata_fn (int, TreeElement *, TreeStoreElem *tselem, void *)
 
static void blender::ed::outliner::unlinkact_animdata_fn (int, TreeElement *, TreeStoreElem *tselem, void *)
 
static void blender::ed::outliner::cleardrivers_animdata_fn (int, TreeElement *, TreeStoreElem *tselem, void *)
 
static void blender::ed::outliner::refreshdrivers_animdata_fn (int, TreeElement *, TreeStoreElem *tselem, void *)
 
Outliner Set Active Action Operator
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 void blender::ed::outliner::actionset_id_fn (TreeElement *, TreeStoreElem *tselem, TreeStoreElem *tsep, ID *actId)
 
static int blender::ed::outliner::outliner_action_set_exec (bContext *C, wmOperator *op)
 
void blender::ed::outliner::OUTLINER_OT_action_set (wmOperatorType *ot)
 
Data Menu Operator
static bool blender::ed::outliner::outliner_data_operation_poll (bContext *C)
 
static int blender::ed::outliner::outliner_data_operation_exec (bContext *C, wmOperator *op)
 
static const EnumPropertyItemblender::ed::outliner::outliner_data_op_sets_enum_item_fn (bContext *C, PointerRNA *, PropertyRNA *, bool *)
 
void blender::ed::outliner::OUTLINER_OT_data_operation (wmOperatorType *ot)
 
Context Menu Operator
static int blender::ed::outliner::outliner_operator_menu (bContext *C, const char *opname)
 
static int blender::ed::outliner::do_outliner_operation_event (bContext *C, ARegion *region, SpaceOutliner *space_outliner, TreeElement *te)
 
static int blender::ed::outliner::outliner_operation_invoke (bContext *C, wmOperator *, const wmEvent *event)
 
void blender::ed::outliner::OUTLINER_OT_operation (wmOperatorType *ot)
 

Variables

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

ID/Library/Data Set/Un-link Utilities

enum  blender::ed::outliner::eOutlinerLibOpSelectionSet { blender::ed::outliner::OUTLINER_LIB_SELECTIONSET_SELECTED , blender::ed::outliner::OUTLINER_LIB_LIB_SELECTIONSET_CONTENT , blender::ed::outliner::OUTLINER_LIB_LIB_SELECTIONSET_SELECTED_AND_CONTENT }
 
static const EnumPropertyItem blender::ed::outliner::prop_lib_op_selection_set []
 
static void blender::ed::outliner::get_element_operation_type (const TreeElement *te, int *scenelevel, int *objectlevel, int *idlevel, int *datalevel)
 
static TreeElementblender::ed::outliner::get_target_element (const SpaceOutliner *space_outliner)
 
static bool blender::ed::outliner::outliner_operation_tree_element_poll (bContext *C)
 
static void blender::ed::outliner::unlink_action_fn (bContext *C, ReportList *reports, Scene *, TreeElement *, TreeStoreElem *tsep, TreeStoreElem *tselem)
 
static void blender::ed::outliner::unlink_material_fn (bContext *, ReportList *reports, Scene *, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
 
static void blender::ed::outliner::unlink_texture_fn (bContext *, ReportList *reports, Scene *, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
 
static void blender::ed::outliner::unlink_collection_fn (bContext *C, ReportList *reports, Scene *, TreeElement *, TreeStoreElem *tsep, TreeStoreElem *tselem)
 
static void blender::ed::outliner::unlink_object_fn (bContext *C, ReportList *reports, Scene *, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
 
static void blender::ed::outliner::unlink_world_fn (bContext *, ReportList *reports, Scene *, TreeElement *, TreeStoreElem *tsep, TreeStoreElem *tselem)
 
static void blender::ed::outliner::outliner_do_libdata_operation (bContext *C, ReportList *reports, Scene *scene, SpaceOutliner *space_outliner, outliner_operation_fn operation_fn)
 
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 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 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)
 

Scene Menu Operator

enum  blender::ed::outliner::eOutliner_PropSceneOps { blender::ed::outliner::OL_SCENE_OP_DELETE = 1 }
 
static const EnumPropertyItem blender::ed::outliner::prop_scene_op_types []
 
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 bool blender::ed::outliner::scene_fn (bContext *C, eOutliner_PropSceneOps event, TreeElement *, TreeStoreElem *tselem)
 
static int blender::ed::outliner::outliner_scene_operation_exec (bContext *C, wmOperator *op)
 
void blender::ed::outliner::OUTLINER_OT_scene_operation (wmOperatorType *ot)
 

Library Overrides Operation Menu.

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

Object Operation Utilities

enum  blender::ed::outliner::eOutliner_PropDataOps {
  blender::ed::outliner::OL_DOP_SELECT = 1 , blender::ed::outliner::OL_DOP_DESELECT , blender::ed::outliner::OL_DOP_HIDE , blender::ed::outliner::OL_DOP_UNHIDE ,
  blender::ed::outliner::OL_DOP_SELECT_LINKED
}
 
enum  blender::ed::outliner::eOutliner_PropConstraintOps { blender::ed::outliner::OL_CONSTRAINTOP_ENABLE = 1 , blender::ed::outliner::OL_CONSTRAINTOP_DISABLE , blender::ed::outliner::OL_CONSTRAINTOP_DELETE }
 
enum  blender::ed::outliner::eOutliner_PropModifierOps { blender::ed::outliner::OL_MODIFIER_OP_TOGVIS = 1 , blender::ed::outliner::OL_MODIFIER_OP_TOGREN , blender::ed::outliner::OL_MODIFIER_OP_DELETE , blender::ed::outliner::OL_MODIFIER_OP_APPLY }
 
static void blender::ed::outliner::pchan_fn (int event, TreeElement *te, TreeStoreElem *, void *)
 
static void blender::ed::outliner::bone_fn (int event, TreeElement *te, TreeStoreElem *, void *)
 
static void blender::ed::outliner::ebone_fn (int event, TreeElement *te, TreeStoreElem *, void *)
 
static void blender::ed::outliner::sequence_fn (int event, TreeElement *te, TreeStoreElem *, void *scene_ptr)
 
static void blender::ed::outliner::gpencil_layer_fn (int event, TreeElement *te, TreeStoreElem *, void *)
 
static void blender::ed::outliner::grease_pencil_node_fn (int event, TreeElement *te, TreeStoreElem *, void *)
 
static void blender::ed::outliner::data_select_linked_fn (int event, TreeElement *te, TreeStoreElem *, void *C_v)
 
static void blender::ed::outliner::constraint_fn (int event, TreeElement *te, TreeStoreElem *, void *C_v)
 
static void blender::ed::outliner::modifier_fn (int event, TreeElement *te, TreeStoreElem *, void *arg)
 
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 void blender::ed::outliner::outliner_batch_delete_object_tag (ReportList *reports, Main *bmain, Scene *scene, Object *object)
 
static void blender::ed::outliner::outliner_batch_delete_object_hierarchy_tag (ReportList *reports, Main *bmain, ViewLayer *view_layer, Scene *scene, Base *base)
 
static void blender::ed::outliner::object_batch_delete_hierarchy_tag_fn (bContext *C, ReportList *reports, Scene *scene, Object *ob)
 
static void blender::ed::outliner::outliner_batch_delete_object_hierarchy (Main *bmain, Scene *scene)
 

Object Menu Operator

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

ID-Data Menu Operator

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

Library Menu Operator

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

Animation Menu Operator

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

Delete Object/Collection Operator

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

Constraint Menu Operator

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

Modifier Menu Operator

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