[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