From c121bc62193ab22b37cf3d8cf7bd1d21205f1f3c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 8 Nov 2018 08:15:22 +1100 Subject: Cleanup: use explicit 'select_and_set_active' API name Selection should be separated from active state and handled by higher level code (operators/editors) instead of happening automatically. --- source/blender/alembic/intern/alembic_capi.cc | 3 ++- source/blender/blenkernel/BKE_layer.h | 4 +++- source/blender/blenkernel/intern/layer.c | 9 +++++++-- source/blender/blenkernel/intern/object.c | 6 +++--- source/blender/collada/collada_utils.cpp | 3 ++- source/blender/editors/object/object_relations.c | 3 ++- source/blender/makesrna/intern/rna_object_api.c | 2 +- 7 files changed, 20 insertions(+), 10 deletions(-) diff --git a/source/blender/alembic/intern/alembic_capi.cc b/source/blender/alembic/intern/alembic_capi.cc index c3e07fcdb2d..e1d4eb3490b 100644 --- a/source/blender/alembic/intern/alembic_capi.cc +++ b/source/blender/alembic/intern/alembic_capi.cc @@ -815,7 +815,8 @@ static void import_endjob(void *user_data) BKE_collection_object_add(data->bmain, lc->collection, ob); base = BKE_view_layer_base_find(view_layer, ob); - BKE_view_layer_base_select(view_layer, base); + /* TODO: is setting active needed? */ + BKE_view_layer_base_select_and_set_active(view_layer, base); DEG_id_tag_update(&lc->collection->id, DEG_TAG_COPY_ON_WRITE); DEG_id_tag_update_ex(data->bmain, &ob->id, diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h index 80d8d237e53..2d736b41d1a 100644 --- a/source/blender/blenkernel/BKE_layer.h +++ b/source/blender/blenkernel/BKE_layer.h @@ -73,7 +73,9 @@ struct Object *BKE_view_layer_camera_find(struct ViewLayer *view_layer); struct ViewLayer *BKE_view_layer_find_from_collection(const struct Scene *scene, struct LayerCollection *lc); 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 ViewLayer *view_layer, struct Base *selbase); + +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, const struct Scene *scene_src, diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c index c259ec0da9c..f27a199097f 100644 --- a/source/blender/blenkernel/intern/layer.c +++ b/source/blender/blenkernel/intern/layer.c @@ -340,14 +340,19 @@ void BKE_view_layer_base_deselect_all(ViewLayer *view_layer) } } -void BKE_view_layer_base_select(struct ViewLayer *view_layer, Base *selbase) +void BKE_view_layer_base_select(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( diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 0d7fa973a61..bd14de144da 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -924,7 +924,7 @@ Object *BKE_object_add( BKE_collection_object_add(bmain, layer_collection->collection, ob); base = BKE_view_layer_base_find(view_layer, ob); - BKE_view_layer_base_select(view_layer, base); + BKE_view_layer_base_select_and_set_active(view_layer, base); return ob; } @@ -945,7 +945,7 @@ Object *BKE_object_add_from( BKE_collection_object_add_from(bmain, scene, ob_src, ob); base = BKE_view_layer_base_find(view_layer, ob); - BKE_view_layer_base_select(view_layer, base); + BKE_view_layer_base_select_and_set_active(view_layer, base); return ob; } @@ -979,7 +979,7 @@ Object *BKE_object_add_for_data( BKE_collection_object_add(bmain, layer_collection->collection, ob); base = BKE_view_layer_base_find(view_layer, ob); - BKE_view_layer_base_select(view_layer, base); + BKE_view_layer_base_select_and_set_active(view_layer, base); return ob; } diff --git a/source/blender/collada/collada_utils.cpp b/source/blender/collada/collada_utils.cpp index 5f01a092699..5019916b06f 100644 --- a/source/blender/collada/collada_utils.cpp +++ b/source/blender/collada/collada_utils.cpp @@ -154,7 +154,8 @@ Object *bc_add_object(Main *bmain, Scene *scene, ViewLayer *view_layer, int type BKE_collection_object_add(bmain, layer_collection->collection, ob); Base *base = BKE_view_layer_base_find(view_layer, ob); - BKE_view_layer_base_select(view_layer, base); + /* TODO: is setting active needed? */ + BKE_view_layer_base_select_and_set_active(view_layer, base); return ob; } diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index 12de37a7787..0a35b572bbe 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -2347,7 +2347,8 @@ static int make_override_static_exec(bContext *C, wmOperator *op) new_ob->parent = obcollection; } if (new_ob == (Object *)obact->id.newid) { - BKE_view_layer_base_select(view_layer, base); + /* TODO: is setting active needed? */ + BKE_view_layer_base_select_and_set_active(view_layer, base); } else { /* Disable auto-override tags for non-active objects, will help with performaces... */ diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c index bba6918044a..da0ed8e10a8 100644 --- a/source/blender/makesrna/intern/rna_object_api.c +++ b/source/blender/makesrna/intern/rna_object_api.c @@ -117,7 +117,7 @@ static void rna_Object_select_set(Object *ob, bContext *C, ReportList *reports, break; case 0: /* SELECT */ default: - BKE_view_layer_base_select(view_layer, base); + BKE_view_layer_base_select_and_set_active(view_layer, base); break; } -- cgit v1.2.3