[Bf-blender-cvs] [088d59c3d37] master: Refactor: Use object select API - ED_object_base_select

Dalai Felinto noreply at git.blender.org
Tue Apr 30 21:57:21 CEST 2019


Commit: 088d59c3d379f1a53fd2ee20a4bd569a70bbbd96
Author: Dalai Felinto
Date:   Tue Apr 23 17:22:27 2019 -0300
Branches: master
https://developer.blender.org/rB088d59c3d379f1a53fd2ee20a4bd569a70bbbd96

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.

===================================================================

M	source/blender/blenkernel/BKE_layer.h
M	source/blender/blenkernel/intern/layer.c
M	source/blender/editors/gpencil/gpencil_convert.c
M	source/blender/editors/object/object_constraint.c
M	source/blender/editors/object/object_relations.c
M	source/blender/editors/object/object_select.c
M	source/blender/editors/space_outliner/outliner_tools.c
M	source/blender/editors/space_view3d/view3d_select.c
M	source/blender/editors/transform/transform_conversions.c
M	source/blender/makesrna/intern/rna_object_api.c

===================================================================

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



More information about the Bf-blender-cvs mailing list