From 088d59c3d379f1a53fd2ee20a4bd569a70bbbd96 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Tue, 23 Apr 2019 17:22:27 -0300 Subject: Refactor: Use object select API - ED_object_base_select We had a mix of BKE_view_layer_base_select (harmless), and places where we simply set the BASE_SELECTED flag with no regard to its selectable state. --- source/blender/blenkernel/BKE_layer.h | 1 - source/blender/blenkernel/intern/layer.c | 9 ++------- source/blender/editors/gpencil/gpencil_convert.c | 5 ++--- source/blender/editors/object/object_constraint.c | 2 +- source/blender/editors/object/object_relations.c | 3 +-- source/blender/editors/object/object_select.c | 2 +- source/blender/editors/space_outliner/outliner_tools.c | 4 ++-- source/blender/editors/space_view3d/view3d_select.c | 6 ++---- source/blender/editors/transform/transform_conversions.c | 2 +- source/blender/makesrna/intern/rna_object_api.c | 7 +------ 10 files changed, 13 insertions(+), 28 deletions(-) diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h index 98fb59814fa..cc6c43c51f6 100644 --- a/source/blender/blenkernel/BKE_layer.h +++ b/source/blender/blenkernel/BKE_layer.h @@ -68,7 +68,6 @@ struct ViewLayer *BKE_view_layer_find_from_collection(const struct Scene *scene, struct Base *BKE_view_layer_base_find(struct ViewLayer *view_layer, struct Object *ob); void BKE_view_layer_base_deselect_all(struct ViewLayer *view_layer); -void BKE_view_layer_base_select(struct Base *selbase); void BKE_view_layer_base_select_and_set_active(struct ViewLayer *view_layer, struct Base *selbase); void BKE_view_layer_copy_data(struct Scene *scene_dst, diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c index 6f43a57584d..3cb4462aaf2 100644 --- a/source/blender/blenkernel/intern/layer.c +++ b/source/blender/blenkernel/intern/layer.c @@ -345,19 +345,14 @@ void BKE_view_layer_base_deselect_all(ViewLayer *view_layer) } } -void BKE_view_layer_base_select(Base *selbase) +void BKE_view_layer_base_select_and_set_active(struct ViewLayer *view_layer, Base *selbase) { + view_layer->basact = selbase; if ((selbase->flag & BASE_SELECTABLE) != 0) { selbase->flag |= BASE_SELECTED; } } -void BKE_view_layer_base_select_and_set_active(struct ViewLayer *view_layer, Base *selbase) -{ - view_layer->basact = selbase; - BKE_view_layer_base_select(selbase); -} - /**************************** Copy View Layer and Layer Collections ***********************/ static void layer_collections_copy_data(ViewLayer *view_layer_dst, diff --git a/source/blender/editors/gpencil/gpencil_convert.c b/source/blender/editors/gpencil/gpencil_convert.c index 63ccad66b4b..5afa379e04f 100644 --- a/source/blender/editors/gpencil/gpencil_convert.c +++ b/source/blender/editors/gpencil/gpencil_convert.c @@ -79,6 +79,7 @@ #include "ED_view3d.h" #include "ED_clip.h" #include "ED_keyframing.h" +#include "ED_object.h" #include "gpencil_intern.h" @@ -1395,9 +1396,7 @@ static void gp_layer_to_curve(bContext *C, } } - /* set the layer and select */ - base_new->flag |= BASE_SELECTED; - BKE_scene_object_base_flag_sync_from_base(base_new); + ED_object_base_select(base_new, BA_SELECT); } /* --- */ diff --git a/source/blender/editors/object/object_constraint.c b/source/blender/editors/object/object_constraint.c index 5b9b4304064..6a587bd6e2a 100644 --- a/source/blender/editors/object/object_constraint.c +++ b/source/blender/editors/object/object_constraint.c @@ -1843,7 +1843,7 @@ static bool get_new_constraint_target( /* restore, BKE_object_add sets active */ BASACT(view_layer) = base; - base->flag |= BASE_SELECTED; + ED_object_base_select(base, BA_SELECT); /* make our new target the new object */ *tar_ob = obt; diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index a62c0add521..e15d85a7953 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -2158,8 +2158,7 @@ static bool make_local_all__instance_indirect_unused(Main *bmain, BKE_collection_object_add(bmain, collection, ob); base = BKE_view_layer_base_find(view_layer, ob); - base->flag |= BASE_SELECTED; - BKE_scene_object_base_flag_sync_from_base(base); + ED_object_base_select(base, BA_SELECT); DEG_id_tag_update(&ob->id, ID_RECALC_TRANSFORM | ID_RECALC_GEOMETRY | ID_RECALC_ANIMATION); changed = true; diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c index f0508b5f35c..2568db4abe9 100644 --- a/source/blender/editors/object/object_select.c +++ b/source/blender/editors/object/object_select.c @@ -87,7 +87,7 @@ * \{ */ /** - * simple API for object selection, rather than just using the flag + * Simple API for object selection, rather than just using the flag * this takes into account the 'restrict selection in 3d view' flag. * deselect works always, the restriction just prevents selection * diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c index 650827a17c7..68688b64b3e 100644 --- a/source/blender/editors/space_outliner/outliner_tools.c +++ b/source/blender/editors/space_outliner/outliner_tools.c @@ -452,8 +452,8 @@ static void object_select_cb(bContext *C, Object *ob = (Object *)tselem->id; Base *base = BKE_view_layer_base_find(view_layer, ob); - if (base && ((base->flag & BASE_VISIBLE) != 0)) { - base->flag |= BASE_SELECTED; + if (base) { + ED_object_base_select(base, BA_SELECT); } } diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index bac24b80c3e..0e1b9d74268 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -1911,8 +1911,7 @@ static bool ed_object_select_pick(bContext *C, } } - basact->flag |= BASE_SELECTED; - BKE_scene_object_base_flag_sync_from_base(basact); + ED_object_base_select(basact, BA_SELECT); retval = true; @@ -1945,8 +1944,7 @@ static bool ed_object_select_pick(bContext *C, /* we make the armature selected: * not-selected active object in posemode won't work well for tools */ - basact->flag |= BASE_SELECTED; - BKE_scene_object_base_flag_sync_from_base(basact); + ED_object_base_select(basact, BA_SELECT); retval = true; WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, basact->object); diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 2b74f3849f7..b5b956441b3 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -6479,7 +6479,7 @@ static void clear_trans_object_base_flags(TransInfo *t) for (base = view_layer->object_bases.first; base; base = base->next) { if (base->flag_legacy & BA_WAS_SEL) { - base->flag |= BASE_SELECTED; + ED_object_base_select(base, BA_SELECT); } base->flag_legacy &= ~(BA_WAS_SEL | BA_SNAP_FIX_DEPS_FIASCO | BA_TEMP_TAG | diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c index 02b700a03c1..21300f22b95 100644 --- a/source/blender/makesrna/intern/rna_object_api.c +++ b/source/blender/makesrna/intern/rna_object_api.c @@ -106,12 +106,7 @@ static void rna_Object_select_set( return; } - if (select) { - BKE_view_layer_base_select(base); - } - else { - base->flag &= ~BASE_SELECTED; - } + ED_object_base_select(base, select ? BA_SELECT : BA_DESELECT); Scene *scene = CTX_data_scene(C); DEG_id_tag_update(&scene->id, ID_RECALC_SELECT); -- cgit v1.2.3