[Bf-blender-cvs] [1100ddeaa97] blender2.8: Layers: fix bug in move layer collection above/below

Dalai Felinto noreply at git.blender.org
Fri Mar 10 16:52:09 CET 2017


Commit: 1100ddeaa97c561c277a63c61b3ebee96b5ef877
Author: Dalai Felinto
Date:   Fri Mar 10 16:48:09 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB1100ddeaa97c561c277a63c61b3ebee96b5ef877

Layers: fix bug in move layer collection above/below

Reported by Julian Eisel (Severin)

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

M	source/blender/blenkernel/intern/layer.c
M	tests/python/render_layer/CMakeLists.txt
A	tests/python/render_layer/test_move_above_below_layer_collection_l.py

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

diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c
index 6da7cb13298..d7046d0899c 100644
--- a/source/blender/blenkernel/intern/layer.c
+++ b/source/blender/blenkernel/intern/layer.c
@@ -664,7 +664,8 @@ bool BKE_layer_collection_move_above(const Scene *scene, LayerCollection *lc_dst
 	else if (is_directly_linked_dst) {
 		/* Both directly linked to the SceneLayer, just need to swap */
 		if (is_directly_linked_src) {
-			BLI_listbase_swaplinks(&sl->layer_collections, lc_src, lc_dst);
+			BLI_remlink(&sl->layer_collections, lc_src);
+			BLI_insertlinkbefore(&sl->layer_collections, lc_dst, lc_src);
 			return true;
 		}
 		else {
@@ -738,7 +739,8 @@ bool BKE_layer_collection_move_below(const Scene *scene, LayerCollection *lc_dst
 	else if (is_directly_linked_dst) {
 		/* Both directly linked to the SceneLayer, just need to swap */
 		if (is_directly_linked_src) {
-			BLI_listbase_swaplinks(&sl->layer_collections, lc_src, lc_dst);
+			BLI_remlink(&sl->layer_collections, lc_src);
+			BLI_insertlinkafter(&sl->layer_collections, lc_dst, lc_src);
 			return true;
 		}
 		else {
diff --git a/tests/python/render_layer/CMakeLists.txt b/tests/python/render_layer/CMakeLists.txt
index d037b9cd3b7..3781ce02ec0 100644
--- a/tests/python/render_layer/CMakeLists.txt
+++ b/tests/python/render_layer/CMakeLists.txt
@@ -125,6 +125,7 @@ RENDER_LAYER_TEST(move_above_below_layer_collection_h)
 RENDER_LAYER_TEST(move_above_below_layer_collection_i)
 RENDER_LAYER_TEST(move_above_below_layer_collection_j)
 RENDER_LAYER_TEST(move_above_below_layer_collection_k)
+RENDER_LAYER_TEST(move_above_below_layer_collection_l)
 RENDER_LAYER_TEST(move_into_layer_collection_a)
 RENDER_LAYER_TEST(move_into_layer_collection_b)
 RENDER_LAYER_TEST(move_into_layer_collection_c)
diff --git a/tests/python/render_layer/test_move_above_below_layer_collection_l.py b/tests/python/render_layer/test_move_above_below_layer_collection_l.py
new file mode 100644
index 00000000000..db91b14c38d
--- /dev/null
+++ b/tests/python/render_layer/test_move_above_below_layer_collection_l.py
@@ -0,0 +1,68 @@
+# ./blender.bin --background -noaudio --python tests/python/render_layer/test_link.py -- --testdir="/data/lib/tests/"
+
+# ############################################################
+# Importing - Same For All Render Layer Tests
+# ############################################################
+
+import unittest
+
+import os, sys
+sys.path.append(os.path.dirname(__file__))
+
+from render_layer_common import *
+
+
+# ############################################################
+# Testing
+# ############################################################
+
+class UnitTesting(MoveLayerCollectionTesting):
+    def get_reference_scene_tree_map(self):
+        # original tree, no changes
+        return self.get_initial_scene_tree_map()
+
+    def get_reference_layers_tree_map(self):
+        reference_layers_map = [
+                ['Layer 1', [
+                    'Master Collection',
+                    'C',
+                    '3',
+                    ]],
+                ['Layer 2', [
+                    'C',
+                    'cat',
+                    '3',
+                    'dog',
+                    ]],
+                ]
+        return reference_layers_map
+
+    def test_layer_collection_move_a(self):
+        """
+        Test outliner operations
+        """
+        self.setup_tree()
+        self.assertTrue(self.move_below('Layer 2.cat', 'Layer 2.C'))
+        self.compare_tree_maps()
+
+    def test_layer_collection_move_b(self):
+        """
+        Test outliner operations
+        """
+        self.setup_tree()
+        self.assertTrue(self.move_above('Layer 2.cat', 'Layer 2.3'))
+        self.compare_tree_maps()
+
+
+# ############################################################
+# Main - Same For All Render Layer Tests
+# ############################################################
+
+if __name__ == '__main__':
+    import sys
+
+    extra_arguments = sys.argv[sys.argv.index("--") + 1:] if "--" in sys.argv else []
+    sys.argv = [__file__] + (sys.argv[sys.argv.index("--") + 2:] if "--" in sys.argv else [])
+
+    UnitTesting._extra_arguments = extra_arguments
+    unittest.main()




More information about the Bf-blender-cvs mailing list