[Bf-blender-cvs] [57cef2fee31] temp-group-collections: Remove "Group Collection" functionality

Dalai Felinto noreply at git.blender.org
Tue Nov 7 02:08:09 CET 2017


Commit: 57cef2fee3104f38320c97adcabb08cf0ed7bdfb
Author: Dalai Felinto
Date:   Mon Nov 6 20:48:17 2017 -0200
Branches: temp-group-collections
https://developer.blender.org/rB57cef2fee3104f38320c97adcabb08cf0ed7bdfb

Remove "Group Collection" functionality

This may get "double-reverted" in the future. But we want to separate this
from the main patch before merging it. And then eventually merging them
separately.

===================================================================

M	release/scripts/startup/bl_ui/properties_collection.py
M	source/blender/blenkernel/BKE_layer.h
M	source/blender/blenkernel/intern/collection.c
M	source/blender/blenkernel/intern/layer.c
M	source/blender/blenloader/intern/readfile.c
M	source/blender/depsgraph/intern/builder/deg_builder_nodes_layer.cc
M	source/blender/depsgraph/intern/builder/deg_builder_relations_layer.cc
M	source/blender/depsgraph/intern/depsgraph_query.cc
M	source/blender/editors/space_outliner/outliner_collections.c
M	source/blender/editors/space_outliner/outliner_tools.c
M	source/blender/makesdna/DNA_layer_types.h
M	source/blender/makesrna/intern/rna_layer.c

===================================================================

diff --git a/release/scripts/startup/bl_ui/properties_collection.py b/release/scripts/startup/bl_ui/properties_collection.py
index d810e02984c..dab9def37f4 100644
--- a/release/scripts/startup/bl_ui/properties_collection.py
+++ b/release/scripts/startup/bl_ui/properties_collection.py
@@ -43,24 +43,6 @@ class COLLECTION_PT_context_collection(CollectionButtonsPanel, Panel):
             layout.prop(collection, "name", text="", icon='COLLAPSEMENU')
 
 
-class COLLECTION_PT_collection(CollectionButtonsPanel, Panel):
-    bl_label = "Collection"
-
-    @classmethod
-    def poll(cls, context):
-        collection = context.layer_collection
-        return collection and collection.collection.type == 'GROUP'
-
-    def draw(self, context):
-        layout = self.layout
-
-        layer_collection = context.layer_collection
-        scene_collection = layer_collection.collection
-
-        if scene_collection.type == 'GROUP':
-            layout.prop(scene_collection, "group")
-
-
 class COLLECTION_PT_clay_settings(CollectionButtonsPanel, Panel):
     bl_label = "Render Settings"
     COMPAT_ENGINES = {'BLENDER_CLAY'}
@@ -171,7 +153,6 @@ class COLLECTION_PT_paint_vertex_mode_settings(CollectionButtonsPanel, Panel):
 
 classes = (
     COLLECTION_PT_context_collection,
-    COLLECTION_PT_collection,
     COLLECTION_PT_clay_settings,
     COLLECTION_PT_object_mode_settings,
     COLLECTION_PT_edit_mode_settings,
diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h
index 0ce8c4a4a2e..78d5d40687e 100644
--- a/source/blender/blenkernel/BKE_layer.h
+++ b/source/blender/blenkernel/BKE_layer.h
@@ -80,7 +80,6 @@ void BKE_scene_layer_copy_data(struct SceneLayer *sl_dst, struct SceneLayer *sl_
                                const int flag);
 
 void BKE_layer_collection_free(struct SceneLayer *sl, struct LayerCollection *lc);
-void BKE_layer_collection_convert(struct SceneLayer *sl, struct LayerCollection *lc, const int type);
 
 struct LayerCollection *BKE_layer_collection_get_active(struct SceneLayer *sl);
 struct LayerCollection *BKE_layer_collection_get_active_ensure(struct Scene *scene, struct SceneLayer *sl);
diff --git a/source/blender/blenkernel/intern/collection.c b/source/blender/blenkernel/intern/collection.c
index b2e52060a26..7b34d377226 100644
--- a/source/blender/blenkernel/intern/collection.c
+++ b/source/blender/blenkernel/intern/collection.c
@@ -420,48 +420,6 @@ bool BKE_collections_object_remove(Main *bmain, ID *id, Object *ob, const bool f
 	return removed;
 }
 
-#if 0
-static void collection_group_set_linking(ListBase *lb, const SceneCollection *sc)
-{
-	for (LayerCollection *lc = sl->layer_collections.first; lc; lc = lc->next) {
-		if (lc->scene_collection == sc) {
-			//XXX link
-		}
-		else {
-			collection_group_set_linking(&lc->layer_collections, sc);
-		}
-	}
-}
-#endif
-
-/**
- * Define a group for a group collection, and populate the collections accordingly
- *
- * \param group can be NULL
- */
-void BKE_collection_group_set(Scene *UNUSED(scene), SceneCollection *sc, Group *group)
-{
-	BLI_assert(sc->type == COLLECTION_TYPE_GROUP);
-	/* Add */
-	sc->group = group;
-}
-
-/**
- * \param lb: ListBase of LayerCollection elements.
- */
-static void collection_group_convert_layer_collections(const Group *group, SceneLayer *sl,
-                                                       const SceneCollection *sc, ListBase *lb)
-{
-	for (LayerCollection *lc = lb->first; lc; lc = lc->next) {
-		if (lc->scene_collection == sc) {
-			BKE_layer_collection_convert(sl, lc, COLLECTION_TYPE_GROUP);
-		}
-		else {
-			collection_group_convert_layer_collections(group, sl, sc, &lc->layer_collections);
-		}
-	}
-}
-
 static void layer_collection_sync(LayerCollection *lc_dst, LayerCollection *lc_src)
 {
 	lc_dst->flag = lc_src->flag;
@@ -496,7 +454,7 @@ static void collection_group_cleanup(Group *group)
 }
 
 /**
- * Convert a collection into a group
+ * Create a group from a collection
  *
  * Any SceneLayer that may have this the related SceneCollection linked is converted
  * to a Group Collection.
@@ -506,11 +464,6 @@ Group *BKE_collection_group_create(Main *bmain, Scene *scene, LayerCollection *l
 	SceneCollection *sc_dst, *sc_src = lc_src->scene_collection;
 	LayerCollection *lc_dst;
 
-	/* We can't convert group collections into groups. */
-	if (sc_src->type == COLLECTION_TYPE_GROUP) {
-		return NULL;
-	}
-
 	/* The master collection can't be converted. */
 	if (sc_src == BKE_collection_master(scene)) {
 		return NULL;
@@ -540,16 +493,6 @@ Group *BKE_collection_group_create(Main *bmain, Scene *scene, LayerCollection *l
 	lc_dst = BKE_collection_link(group->scene_layer, sc_dst);
 	layer_collection_sync(lc_dst, lc_src);
 
-	/* Convert existing collections into group collections. */
-	for (SceneLayer *sl = scene->render_layers.first; sl; sl = sl->next) {
-		collection_group_convert_layer_collections(group, sl, sc_src, &sl->layer_collections);
-	}
-
-	/* Convert original SceneCollection into a group collection. */
-	sc_src->type = COLLECTION_TYPE_GROUP;
-	BKE_collection_group_set(scene, sc_src, group);
-	collection_free(sc_src, true);
-
 	return group;
 }
 
diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c
index 492a58b089f..3930ae34040 100644
--- a/source/blender/blenkernel/intern/layer.c
+++ b/source/blender/blenkernel/intern/layer.c
@@ -471,24 +471,6 @@ void BKE_layer_collection_free(SceneLayer *sl, LayerCollection *lc)
 	layer_collection_free(sl, lc);
 }
 
-/**
- * Convert a layer collection to a new type
- *
- * \param lc: LayerCollection to be converted.
- * \param type: New type for the LayerCollection->scene_collection.
- */
-void BKE_layer_collection_convert(SceneLayer *sl, LayerCollection *lc, const int type)
-{
-	/* Support group convertion only at the moment. */
-	BLI_assert(type == COLLECTION_TYPE_GROUP);
-	layer_collection_free(sl, lc);
-
-	/* Keep the properties around for collection evaluation. */
-	IDPropertyTemplate val = {0};
-	lc->properties = IDP_New(IDP_GROUP, &val, ROOT_PROP);
-	lc->properties_evaluated = NULL;
-}
-
 /* LayerCollection */
 
 /**
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 3f909f7d675..473942811d0 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -5780,8 +5780,6 @@ static void lib_link_scene_collection(FileData *fd, Library *lib, SceneCollectio
 		BLI_assert(link->data);
 	}
 
-	sc->group = newlibadr(fd, lib, sc->group);
-
 	for (SceneCollection *nsc = sc->scene_collections.first; nsc; nsc = nsc->next) {
 		lib_link_scene_collection(fd, lib, nsc);
 	}
@@ -9818,8 +9816,6 @@ static void expand_scene_collection(FileData *fd, Main *mainvar, SceneCollection
 		expand_doit(fd, mainvar, link->data);
 	}
 
-	expand_doit(fd, mainvar, sc->group);
-
 	for (SceneCollection *nsc= sc->scene_collections.first; nsc; nsc = nsc->next) {
 		expand_scene_collection(fd, mainvar, nsc);
 	}
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes_layer.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes_layer.cc
index 2555144f525..25d5f5db01b 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes_layer.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes_layer.cc
@@ -82,20 +82,6 @@ void DepsgraphNodeBuilder::build_layer_collection(Scene *scene,
 
 	SceneCollection *scene_collection = layer_collection->scene_collection;
 	switch (scene_collection->type) {
-		case COLLECTION_TYPE_GROUP:
-		{
-			Group *group = scene_collection->group;
-			if ((group != NULL) && !BLI_listbase_is_empty(&group->scene_layer->layer_collections)) {
-				build_group(scene, scene_collection->group, state);
-				/* Recurs into internal group layer collections. */
-				state->parent = layer_collection;
-				build_layer_collection(scene,
-				                       (LayerCollection *)group->scene_layer->layer_collections.first,
-				                       state);
-				state->parent = parent;
-			}
-			break;
-		}
 		case COLLECTION_TYPE_GROUP_INTERNAL:
 		case COLLECTION_TYPE_NONE:
 			/* Recurs into nested layer collections. */
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations_layer.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations_layer.cc
index 687694f2da6..1118f818b9f 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations_layer.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations_layer.cc
@@ -86,19 +86,6 @@ void DepsgraphRelationBuilder::build_layer_collection(Main *bmain,
 
 	SceneCollection *scene_collection = layer_collection->scene_collection;
 	switch (scene_collection->type) {
-		case COLLECTION_TYPE_GROUP:
-		{
-			Group *group = scene_collection->group;
-			if ((group != NULL) && !BLI_listbase_is_empty(&group->scene_layer->layer_collections)) {
-				build_group(bmain, scene, group, state);
-				/* Recurs into internal group layer collections. */
-				build_layer_collection(bmain,
-				                       scene,
-				                       (LayerCollection *)group->scene_layer->layer_collections.first,
-				                       state);
-			}
-			break;
-		}
 		case COLLECTION_TYPE_GROUP_INTERNAL:
 		case COLLECTION_TYPE_NONE:
 			break;
diff --git a/source/blender/depsgraph/intern/depsgraph_query.cc b/source/blender/depsgraph/intern/depsgraph_query.cc
index 9e330efcff9..af0c60f220b 100644
--- a/source/blender/depsgraph/intern/depsgraph_query.cc
+++ b/source/blender/depsgraph/intern/depsgraph_query.cc
@@ -171,50 +171,6 @@ static bool deg_flush_base_flags_and_settings(
 	return true;
 }
 
-
-/**
- * \param groups: GSet of looped over groups.
- * \param lb: ListBase of LayerCollection elements.
- */
-static void populate_scene_layer_groups_doit(GSet *groups, ListBase *lb)
-{
-	LayerCollection *layer_collection;
-	for (layer_collection = (LayerCollection *) lb->first;
-	     layer_collection;
-	     layer_collection = layer_collection->next)
-	{
-		/* TODO: Disabled collections shouldn't even be evaluated by the Depsgraph (dfelinto/sergey). */
-		if (layer_collection->flag & COLLECTION_DISABLED) {
-			continue;
-		}
-


@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list