Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDalai Felinto <dfelinto@gmail.com>2017-03-02 20:12:30 +0300
committerDalai Felinto <dfelinto@gmail.com>2017-03-02 20:12:30 +0300
commit5ce6388f7c2a7fed483ae3ff187063f94f139e94 (patch)
tree6cbaf43e123924517299a91536020cbf7a3806dd /source/blender/editors/space_outliner/outliner_tree.c
parent0322700d875a1d518a730512531a881f1278124b (diff)
Outliner: add hooks for (yet to be implemented) layer reordering routines
Diffstat (limited to 'source/blender/editors/space_outliner/outliner_tree.c')
-rw-r--r--source/blender/editors/space_outliner/outliner_tree.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c
index 0cf76a671a4..afd9610b6bf 100644
--- a/source/blender/editors/space_outliner/outliner_tree.c
+++ b/source/blender/editors/space_outliner/outliner_tree.c
@@ -1287,7 +1287,7 @@ static void outliner_add_orphaned_datablocks(Main *mainvar, SpaceOops *soops)
}
}
-static void outliner_collections_reorder(const Scene *scene, TreeElement *insert_element, TreeElement *insert_handle,
+static void outliner_layer_collections_reorder(const Scene *scene, TreeElement *insert_element, TreeElement *insert_handle,
TreeElementInsertType action)
{
SceneLayer *sl = BKE_scene_layer_render_active(scene);
@@ -1302,6 +1302,20 @@ static void outliner_collections_reorder(const Scene *scene, TreeElement *insert
}
}
+static void outliner_scene_collections_reorder(const Scene *scene, TreeElement *insert_element, TreeElement *insert_handle,
+ TreeElementInsertType action)
+{
+ SceneCollection *insert_coll = insert_element->directdata;
+ SceneCollection *insert_handle_coll = insert_handle ? insert_handle->directdata : NULL;
+
+ if (action == TE_INSERT_AFTER) {
+ BKE_collection_reinsert_after(scene, insert_coll, insert_handle_coll);
+ }
+ else if (action == TE_INSERT_INTO) {
+ BKE_collection_reinsert_into(insert_coll, insert_handle_coll);
+ }
+}
+
static void outliner_add_layer_collections_recursive(SpaceOops *soops, ListBase *tree, Scene *scene,
ListBase *layer_collections, TreeElement *parent_ten,
int *io_collection_counter)
@@ -1312,7 +1326,7 @@ static void outliner_add_layer_collections_recursive(SpaceOops *soops, ListBase
ten->name = collection->scene_collection->name;
ten->directdata = collection;
- ten->reinsert = outliner_collections_reorder;
+ ten->reinsert = outliner_layer_collections_reorder;
for (LinkData *link = collection->object_bases.first; link; link = link->next) {
outliner_add_element(soops, &ten->subtree, ((Base *)link->data)->object, NULL, 0, 0);
@@ -1333,6 +1347,7 @@ static void outliner_add_scene_collection_init(TreeElement *te, SceneCollection
{
te->name = collection->name;
te->directdata = collection;
+ te->reinsert = outliner_scene_collections_reorder;
}
static void outliner_add_scene_collections_recursive(SpaceOops *soops, ListBase *tree, Scene *scene,