Blender  V2.93
Classes | Typedefs | Functions
outliner_sync.c File Reference
#include <stdio.h>
#include "DNA_armature_types.h"
#include "DNA_layer_types.h"
#include "DNA_outliner_types.h"
#include "DNA_screen_types.h"
#include "DNA_sequence_types.h"
#include "DNA_space_types.h"
#include "BLI_compiler_compat.h"
#include "BLI_ghash.h"
#include "BLI_listbase.h"
#include "BKE_armature.h"
#include "BKE_context.h"
#include "BKE_layer.h"
#include "BKE_main.h"
#include "DEG_depsgraph.h"
#include "ED_armature.h"
#include "ED_object.h"
#include "ED_outliner.h"
#include "SEQ_select.h"
#include "WM_api.h"
#include "WM_types.h"
#include "outliner_intern.h"

Go to the source code of this file.

Classes

struct  SyncSelectTypes
 
struct  SelectedItems
 
struct  SyncSelectActiveData
 

Typedefs

typedef struct SyncSelectTypes SyncSelectTypes
 
typedef struct SelectedItems SelectedItems
 
typedef struct SyncSelectActiveData SyncSelectActiveData
 

Functions

void ED_outliner_select_sync_from_object_tag (bContext *C)
 
void ED_outliner_select_sync_from_edit_bone_tag (bContext *C)
 
void ED_outliner_select_sync_from_pose_bone_tag (bContext *C)
 
void ED_outliner_select_sync_from_sequence_tag (bContext *C)
 
void ED_outliner_select_sync_from_all_tag (bContext *C)
 
bool ED_outliner_select_sync_is_dirty (const bContext *C)
 
void ED_outliner_select_sync_flag_outliners (const bContext *C)
 
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 (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, TreeStoreElem *tselem)
 
static void outliner_sync_selection_from_outliner (Scene *scene, ViewLayer *view_layer, ListBase *tree, const SyncSelectTypes *sync_types, SelectedItems *selected_items)
 
void ED_outliner_select_sync_from_outliner (bContext *C, SpaceOutliner *space_outliner)
 
static void outliner_select_sync_from_object (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, TreeStoreElem *tselem)
 
static void outliner_sync_selection_to_outliner (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)
 
void outliner_sync_selection (const bContext *C, SpaceOutliner *space_outliner)
 

Typedef Documentation

◆ SelectedItems

typedef struct SelectedItems SelectedItems

Stores items selected from a sync from the outliner. Prevents syncing the selection state of the last instance of an object linked in multiple collections.

◆ SyncSelectActiveData

Contains active object, bones, and sequence for syncing to prevent getting active data repeatedly throughout syncing to the outliner.

◆ SyncSelectTypes

Outliner sync select dirty flags are not enough to determine which types to sync, outliner display mode also needs to be considered. This stores the types of data to sync to increase code clarity.

Function Documentation

◆ add_selected_item()

static void add_selected_item ( GSet selected,
void *  data 
)
static

◆ ED_outliner_select_sync_flag_outliners()

void ED_outliner_select_sync_flag_outliners ( const bContext C)

◆ ED_outliner_select_sync_from_all_tag()

void ED_outliner_select_sync_from_all_tag ( bContext C)

◆ ED_outliner_select_sync_from_edit_bone_tag()

void ED_outliner_select_sync_from_edit_bone_tag ( bContext C)

◆ ED_outliner_select_sync_from_object_tag()

void ED_outliner_select_sync_from_object_tag ( bContext C)

◆ ED_outliner_select_sync_from_outliner()

void ED_outliner_select_sync_from_outliner ( bContext C,
SpaceOutliner space_outliner 
)

◆ ED_outliner_select_sync_from_pose_bone_tag()

void ED_outliner_select_sync_from_pose_bone_tag ( bContext C)

◆ ED_outliner_select_sync_from_sequence_tag()

void ED_outliner_select_sync_from_sequence_tag ( bContext C)

◆ ED_outliner_select_sync_is_dirty()

bool ED_outliner_select_sync_is_dirty ( const bContext C)

◆ get_sync_select_active_data()

static void get_sync_select_active_data ( const bContext C,
SyncSelectActiveData active_data 
)
static

◆ is_edit_bone_selected()

static bool is_edit_bone_selected ( GSet selected_ebones,
EditBone ebone 
)
static

Definition at line 205 of file outliner_sync.c.

References BLI_gset_haskey().

Referenced by outliner_select_sync_to_edit_bone().

◆ is_object_selected()

static bool is_object_selected ( GSet selected_objects,
Base base 
)
static

Definition at line 199 of file outliner_sync.c.

References BLI_gset_haskey().

Referenced by outliner_select_sync_to_object().

◆ is_pose_bone_selected()

static bool is_pose_bone_selected ( GSet selected_pbones,
bPoseChannel pchan 
)
static

Definition at line 211 of file outliner_sync.c.

References BLI_gset_haskey().

Referenced by outliner_select_sync_to_pose_bone().

◆ outliner_select_sync_from_edit_bone()

static void outliner_select_sync_from_edit_bone ( EditBone ebone_active,
TreeElement te,
TreeStoreElem tselem 
)
static

◆ outliner_select_sync_from_object()

static void outliner_select_sync_from_object ( ViewLayer view_layer,
Object obact,
TreeElement te,
TreeStoreElem tselem 
)
static

◆ outliner_select_sync_from_pose_bone()

static void outliner_select_sync_from_pose_bone ( bPoseChannel pchan_active,
TreeElement te,
TreeStoreElem tselem 
)
static

◆ outliner_select_sync_from_sequence()

static void outliner_select_sync_from_sequence ( Sequence sequence_active,
TreeStoreElem tselem 
)
static

◆ outliner_select_sync_to_edit_bone()

static void outliner_select_sync_to_edit_bone ( ViewLayer view_layer,
TreeElement te,
TreeStoreElem tselem,
GSet selected_ebones 
)
static

◆ outliner_select_sync_to_object()

static void outliner_select_sync_to_object ( ViewLayer view_layer,
TreeElement te,
TreeStoreElem tselem,
GSet selected_objects 
)
static

◆ outliner_select_sync_to_pose_bone()

static void outliner_select_sync_to_pose_bone ( TreeElement te,
TreeStoreElem tselem,
GSet selected_pbones 
)
static

◆ outliner_select_sync_to_sequence()

static void outliner_select_sync_to_sequence ( Scene scene,
TreeStoreElem tselem 
)
static

◆ outliner_sync_select_from_outliner_set_types()

static void outliner_sync_select_from_outliner_set_types ( bContext C,
SpaceOutliner space_outliner,
SyncSelectTypes sync_types 
)
static

Set which types of data to sync when syncing selection from the outliner based on object interaction mode and outliner display mode

Definition at line 130 of file outliner_sync.c.

References C, SyncSelectTypes::edit_bone, Object::mode, OB_ARMATURE, TreeViewContext::ob_edit, OB_MODE_POSE, TreeViewContext::ob_pose, SyncSelectTypes::object, outliner_viewcontext_init(), SpaceOutliner::outlinevis, SyncSelectTypes::pose_bone, SyncSelectTypes::sequence, SO_SEQUENCE, and Object::type.

Referenced by ED_outliner_select_sync_from_outliner().

◆ outliner_sync_select_to_outliner_set_types()

static bool outliner_sync_select_to_outliner_set_types ( const bContext C,
SpaceOutliner space_outliner,
SyncSelectTypes sync_types 
)
static

◆ outliner_sync_selection()

void outliner_sync_selection ( const bContext C,
SpaceOutliner space_outliner 
)

◆ outliner_sync_selection_from_outliner()

static void outliner_sync_selection_from_outliner ( Scene scene,
ViewLayer view_layer,
ListBase tree,
const SyncSelectTypes sync_types,
SelectedItems selected_items 
)
static

◆ outliner_sync_selection_to_outliner()

static void outliner_sync_selection_to_outliner ( ViewLayer view_layer,
SpaceOutliner space_outliner,
ListBase tree,
SyncSelectActiveData active_data,
const SyncSelectTypes sync_types 
)
static

◆ selected_items_free()

static void selected_items_free ( SelectedItems selected_items)
static

◆ selected_items_init()

static void selected_items_init ( SelectedItems selected_items)
static