diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2016-11-23 16:08:12 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2016-11-23 16:08:12 +0300 |
commit | d9dbd58035cb9f6690250a522d2ebc4a64c98d4c (patch) | |
tree | 36bc5a9cddc3eeece4ab49a5fb06d740e3618669 /source/blender/makesrna/intern | |
parent | f5499f8092f5d35686f2f5f3768096eccd5ec303 (diff) |
Finish nested collections rna (recursions ftw)
Diffstat (limited to 'source/blender/makesrna/intern')
-rw-r--r-- | source/blender/makesrna/intern/rna_scene.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 74e8658d2a5..f9dc013a4de 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -1368,44 +1368,37 @@ static void rna_LayerNestedCollection_remove( static int rna_Layer_active_collection_index_get(PointerRNA *ptr) { - /* TODO account for nested collections */ SceneLayer *sl = (SceneLayer *)ptr->data; return sl->active_collection; } static void rna_Layer_active_collection_index_set(PointerRNA *ptr, int value) { - /* TODO account for nested collections */ SceneLayer *sl = (SceneLayer *)ptr->data; - int num_collections = BLI_listbase_count(&sl->collections); + int num_collections = BKE_scene_layer_collection_count(sl); sl->active_collection = min_ff(value, num_collections - 1); } static void rna_Layer_active_collection_index_range( PointerRNA *ptr, int *min, int *max, int *UNUSED(softmin), int *UNUSED(softmax)) { - /* TODO account for nested collections */ SceneLayer *sl = (SceneLayer *)ptr->data; - *min = 0; - *max = max_ii(0, BLI_listbase_count(&sl->collections) - 1); + *max = max_ii(0, BKE_scene_layer_collection_count(sl) - 1); } static PointerRNA rna_Layer_active_collection_get(PointerRNA *ptr) { - /* TODO account for nested collections */ SceneLayer *sl = (SceneLayer *)ptr->data; - LayerCollection *lc = BLI_findlink(&sl->collections, sl->active_collection); - + LayerCollection *lc = BKE_scene_layer_collection_active(sl); return rna_pointer_inherit_refine(ptr, &RNA_LayerCollection, lc); } static void rna_Layer_active_collection_set(PointerRNA *ptr, PointerRNA value) { - /* TODO account for nested collections */ SceneLayer *sl = (SceneLayer *)ptr->data; LayerCollection *lc = (LayerCollection *)value.data; - const int index = BLI_findindex(&sl->collections, lc); + const int index = BKE_scene_layer_collection_findindex(sl, lc); if (index != -1) sl->active_collection = index; } |