Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_outliner/outliner_draw.c
| Show First 20 Lines • Show All 289 Lines • ▼ Show 20 Lines | static void outliner_object_set_flag_recursive_cb(bContext *C, | ||||
| for (Object *ob_iter = bmain->objects.first; ob_iter; ob_iter = ob_iter->id.next) { | for (Object *ob_iter = bmain->objects.first; ob_iter; ob_iter = ob_iter->id.next) { | ||||
| if (BKE_object_is_child_recursive(ob_parent, ob_iter)) { | if (BKE_object_is_child_recursive(ob_parent, ob_iter)) { | ||||
| if (ob) { | if (ob) { | ||||
| RNA_id_pointer_create(&ob_iter->id, &ptr); | RNA_id_pointer_create(&ob_iter->id, &ptr); | ||||
| DEG_id_tag_update(&ob_iter->id, ID_RECALC_COPY_ON_WRITE); | DEG_id_tag_update(&ob_iter->id, ID_RECALC_COPY_ON_WRITE); | ||||
| } | } | ||||
| else { | else { | ||||
| Base *base_iter = BKE_view_layer_base_find(view_layer, ob_iter); | Base *base_iter = BKE_view_layer_base_find(view_layer, ob_iter); | ||||
| /* Child can be in a collection excluded from viewlayer. */ | |||||
| if (base_iter == NULL) { | |||||
| continue; | |||||
| } | |||||
| RNA_pointer_create(&scene->id, &RNA_ObjectBase, base_iter, &ptr); | RNA_pointer_create(&scene->id, &RNA_ObjectBase, base_iter, &ptr); | ||||
| } | } | ||||
| RNA_property_boolean_set(&ptr, base_or_object_prop, value); | RNA_property_boolean_set(&ptr, base_or_object_prop, value); | ||||
| } | } | ||||
| } | } | ||||
| /* We don't call RNA_property_update() due to performance, so we batch update them. */ | /* We don't call RNA_property_update() due to performance, so we batch update them. */ | ||||
| if (ob) { | if (ob) { | ||||
| ▲ Show 20 Lines • Show All 3,391 Lines • Show Last 20 Lines | |||||