[Bf-blender-cvs] [e1238bccedb] blender2.8: Outliner: Always show the master collection on top of the tree
Dalai Felinto
noreply at git.blender.org
Tue Jan 2 18:01:37 CET 2018
Commit: e1238bccedb095389c07d729b18cd572d8f65ca3
Author: Dalai Felinto
Date: Tue Jan 2 12:30:48 2018 -0200
Branches: blender2.8
https://developer.blender.org/rBe1238bccedb095389c07d729b18cd572d8f65ca3
Outliner: Always show the master collection on top of the tree
This reverts commit 0d0d68d39dad8e14b80489bc28d591fc6eff5f21 with extra changes.
This is part of T53495.
===================================================================
M source/blender/editors/space_outliner/outliner_tree.c
===================================================================
diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c
index 0d0714a3453..2906e2122dd 100644
--- a/source/blender/editors/space_outliner/outliner_tree.c
+++ b/source/blender/editors/space_outliner/outliner_tree.c
@@ -1474,35 +1474,43 @@ static bool outliner_scene_collections_reorder_poll(
return true;
}
-static void outliner_add_scene_collection_objects(
+static void inline outliner_add_scene_collection_init(TreeElement *te, SceneCollection *collection)
+{
+ te->name = collection->name;
+ te->directdata = collection;
+ te->reinsert = outliner_scene_collections_reorder;
+ te->reinsert_poll = outliner_scene_collections_reorder_poll;
+}
+
+static void inline outliner_add_scene_collection_objects(
SpaceOops *soops, ListBase *tree, SceneCollection *collection, TreeElement *parent)
{
for (LinkData *link = collection->objects.first; link; link = link->next) {
outliner_add_element(soops, tree, link->data, parent, 0, 0);
}
- outliner_make_hierarchy(tree);
}
-static void outliner_add_scene_collections_recursive(
- SpaceOops *soops, ListBase *tree, ListBase *scene_collections, TreeElement *parent_ten)
+static void outliner_add_scene_collection_recursive(
+ SpaceOops *soops, ListBase *tree, SceneCollection *scene_collection, TreeElement *parent_ten)
{
- for (SceneCollection *collection = scene_collections->first; collection; collection = collection->next) {
- TreeElement *ten = outliner_add_element(soops, tree, collection, parent_ten, TSE_SCENE_COLLECTION, 0);
-
- ten->name = collection->name;
- ten->directdata = collection;
- ten->reinsert = outliner_scene_collections_reorder;
- ten->reinsert_poll = outliner_scene_collections_reorder_poll;
+ TreeElement *ten = outliner_add_element(soops, tree, scene_collection, parent_ten, TSE_SCENE_COLLECTION, 0);
+ outliner_add_scene_collection_init(ten, scene_collection);
+ outliner_add_scene_collection_objects(soops, &ten->subtree, scene_collection, ten);
- outliner_add_scene_collections_recursive(soops, &ten->subtree, &collection->scene_collections, ten);
- outliner_add_scene_collection_objects(soops, &ten->subtree, collection, ten);
+ for (SceneCollection *scene_collection_nested = scene_collection->scene_collections.first;
+ scene_collection_nested != NULL;
+ scene_collection_nested = scene_collection_nested->next)
+ {
+ outliner_add_scene_collection_recursive(soops, &ten->subtree, scene_collection_nested, ten);
}
+
+ outliner_make_hierarchy(&ten->subtree);
}
+
static void outliner_add_collections_master(SpaceOops *soops, Scene *scene)
{
- SceneCollection *master = BKE_collection_master(&scene->id);
- outliner_add_scene_collections_recursive(soops, &soops->tree, &master->scene_collections, NULL);
- outliner_add_scene_collection_objects(soops, &soops->tree, master, NULL);
+ SceneCollection *master_collection = BKE_collection_master(&scene->id);
+ outliner_add_scene_collection_recursive(soops, &soops->tree, master_collection, NULL);
}
/* ======================================================= */
More information about the Bf-blender-cvs
mailing list