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.
This commit is contained in:
Dalai Felinto 2019-04-23 17:22:27 -03:00
parent c7452f14c5
commit 088d59c3d3
10 changed files with 14 additions and 29 deletions

View File

@ -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,

View File

@ -345,17 +345,12 @@ void BKE_view_layer_base_deselect_all(ViewLayer *view_layer)
}
}
void BKE_view_layer_base_select(Base *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);
if ((selbase->flag & BASE_SELECTABLE) != 0) {
selbase->flag |= BASE_SELECTED;
}
}
/**************************** Copy View Layer and Layer Collections ***********************/

View File

@ -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);
}
/* --- */

View File

@ -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;

View File

@ -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;

View File

@ -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
*

View File

@ -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);
}
}

View File

@ -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);

View File

@ -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 |

View File

@ -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);