Commit: ae79eb2105de519bcc408256d25272efa3195818
Author: Sybren A. Stüvel
Date:   Thu Apr 20 12:01:31 2017 +0200
Branches: master
https://developer.blender.org/rBae79eb2105de519bcc408256d25272efa3195818

Alembic import: select imported objects

When the Alembic import is finished, all imported objects are selected.

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

M       source/blender/alembic/intern/alembic_capi.cc
M       tests/python/bl_alembic_import_test.py

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

diff --git a/source/blender/alembic/intern/alembic_capi.cc 
b/source/blender/alembic/intern/alembic_capi.cc
index 104b19beaf0..e44f66b7e56 100644
--- a/source/blender/alembic/intern/alembic_capi.cc
+++ b/source/blender/alembic/intern/alembic_capi.cc
@@ -795,13 +795,16 @@ static void import_endjob(void *user_data)
        }
        else {
                /* Add object to scene. */
+               Base *base;
+
                BKE_scene_base_deselect_all(data->scene);
 
                for (iter = data->readers.begin(); iter != data->readers.end(); 
++iter) {
                        Object *ob = (*iter)->object();
                        ob->lay = data->scene->lay;
 
-                       BKE_scene_base_add(data->scene, ob);
+                       base = BKE_scene_base_add(data->scene, ob);
+                       BKE_scene_base_select(data->scene, base);
 
                        DAG_id_tag_update_ex(data->bmain, &ob->id, OB_RECALC_OB 
| OB_RECALC_DATA | OB_RECALC_TIME);
                }
diff --git a/tests/python/bl_alembic_import_test.py 
b/tests/python/bl_alembic_import_test.py
index fd43e404e82..cd23183ec06 100644
--- a/tests/python/bl_alembic_import_test.py
+++ b/tests/python/bl_alembic_import_test.py
@@ -63,6 +63,28 @@ class SimpleImportTest(unittest.TestCase):
         self.assertEqual(objects['Cube_003'], objects['Cube_005'].parent)
         self.assertEqual(objects['Cube_003'], objects['Cube_006'].parent)
 
+    def test_select_after_import(self):
+        # Add a sphere, so that there is something in the scene, selected, and 
active,
+        # before we do the Alembic import.
+        bpy.ops.mesh.primitive_uv_sphere_add()
+        sphere = bpy.context.active_object
+        self.assertEqual('Sphere', sphere.name)
+        self.assertEqual([sphere], bpy.context.selected_objects)
+
+        bpy.ops.wm.alembic_import(
+            filepath=str(self.testdir / "cubes-hierarchy.abc"),
+            as_background_job=False)
+
+        # The active object is probably the first one that was imported, but 
this
+        # behaviour is not defined. At least it should be one of the cubes, and
+        # not the sphere.
+        self.assertNotEqual(sphere, bpy.context.active_object)
+        self.assertTrue('Cube' in bpy.context.active_object.name)
+
+        # All cubes should be selected, but the sphere shouldn't be.
+        for ob in bpy.data.objects:
+            self.assertEqual('Cube' in ob.name, ob.select)
+
 
 def main():
     global args

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to