[Bf-blender-cvs] [5ce6388f7c] blender2.8: Outliner: add hooks for (yet to be implemented) layer reordering routines
Dalai Felinto
noreply at git.blender.org
Thu Mar 2 18:12:34 CET 2017
Commit: 5ce6388f7c2a7fed483ae3ff187063f94f139e94
Author: Dalai Felinto
Date: Thu Mar 2 18:12:30 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB5ce6388f7c2a7fed483ae3ff187063f94f139e94
Outliner: add hooks for (yet to be implemented) layer reordering routines
===================================================================
M source/blender/blenkernel/BKE_collection.h
M source/blender/blenkernel/intern/collection.c
M source/blender/editors/space_outliner/outliner_tree.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_collection.h b/source/blender/blenkernel/BKE_collection.h
index 45014b801b..e090584ad7 100644
--- a/source/blender/blenkernel/BKE_collection.h
+++ b/source/blender/blenkernel/BKE_collection.h
@@ -52,6 +52,9 @@ void BKE_collection_object_add_from(struct Scene *scene, struct Object *ob_src,
void BKE_collection_object_remove(struct Main *bmain, struct Scene *scene, struct SceneCollection *sc, struct Object *object, const bool free_us);
void BKE_collections_object_remove(struct Main *bmain, struct Scene *scene, struct Object *object, const bool free_us);
+void BKE_collection_reinsert_after(const struct Scene *scene, struct SceneCollection *sc_reinsert, struct SceneCollection *sc_after);
+void BKE_collection_reinsert_into(struct SceneCollection *sc_reinsert, struct SceneCollection *sc_into);
+
typedef void (*BKE_scene_objects_Cb)(struct Object *ob, void *data);
typedef void (*BKE_scene_collections_Cb)(struct SceneCollection *ob, void *data);
diff --git a/source/blender/blenkernel/intern/collection.c b/source/blender/blenkernel/intern/collection.c
index 370a595396..eac0fc7a2f 100644
--- a/source/blender/blenkernel/intern/collection.c
+++ b/source/blender/blenkernel/intern/collection.c
@@ -298,6 +298,18 @@ void BKE_collections_object_remove(Main *bmain, Scene *scene, Object *ob, const
FOREACH_SCENE_COLLECTION_END
}
+void BKE_collection_reinsert_after(const struct Scene *scene, SceneCollection *sc_reinsert, SceneCollection *sc_after)
+{
+ UNUSED_VARS(scene, sc_reinsert, sc_after);
+ TODO_LAYER_OPERATORS;
+}
+
+void BKE_collection_reinsert_into(SceneCollection *sc_reinsert, SceneCollection *sc_into)
+{
+ UNUSED_VARS(sc_reinsert, sc_into);
+ TODO_LAYER_OPERATORS;
+}
+
/* ---------------------------------------------------------------------- */
/* Iteractors */
/* scene collection iteractor */
diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c
index 0cf76a671a..afd9610b6b 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,
More information about the Bf-blender-cvs
mailing list