[Bf-blender-cvs] [d78b1147be] blender2.8: Layers: handle doversion naming differently

Dalai Felinto noreply at git.blender.org
Wed Mar 15 14:13:02 CET 2017


Commit: d78b1147bed6a56dc8fbf6bc46e2e29cb7456c2e
Author: Dalai Felinto
Date:   Wed Mar 15 14:12:38 2017 +0100
Branches: blender2.8
https://developer.blender.org/rBd78b1147bed6a56dc8fbf6bc46e2e29cb7456c2e

Layers: handle doversion naming differently

Talked with Pablo Vazquez (venomgfx) and Julian Eisel (Severin), and we came up with this solution instead.

Basically, if the file has only one layer, it is converted to a collection named "Default Collection". Otherwise we name the collections: "Collection 1 [converted from 2.75]"

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

M	source/blender/blenloader/intern/versioning_280.c

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

diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index f63d20f3a3..ce1ea4e8ed 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -35,6 +35,7 @@
 #include "DNA_screen_types.h"
 #include "DNA_genfile.h"
 
+#include "BKE_blender.h"
 #include "BKE_collection.h"
 #include "BKE_layer.h"
 #include "BKE_main.h"
@@ -51,6 +52,9 @@
 void do_versions_after_linking_280(Main *main)
 {
 	if (!MAIN_VERSION_ATLEAST(main, 280, 0)) {
+		char version[48];
+		BKE_blender_version_string(version, sizeof(version), main->versionfile, main->subversionfile, false, false);
+
 		for (Scene *scene = main->scene.first; scene; scene = scene->id.next) {
 			/* since we don't have access to FileData we check the (always valid) first render layer instead */
 			if (scene->render_layers.first == NULL) {
@@ -64,7 +68,7 @@ void do_versions_after_linking_280(Main *main)
 				for (int i = 0; i < 20; i++) {
 					char name[MAX_NAME];
 
-					BLI_snprintf(name, sizeof(collections[i]->name), "%d", i + 1);
+					BLI_snprintf(name, sizeof(collections[i]->name), "Collection %d [converted from %s]", i + 1, version);
 					collections[i] = BKE_collection_add(scene, sc_master, name);
 
 					is_visible[i] = (scene->lay & (1 << i));
@@ -163,6 +167,11 @@ void do_versions_after_linking_280(Main *main)
 					}
 				}
 
+				/* Fallback name if only one layer was found in the original file */
+				if (BLI_listbase_count_ex(&sc_master->scene_collections, 2) == 1) {
+					BKE_collection_rename(scene, sc_master->scene_collections.first, "Default Collection");
+				}
+
 				/* remove bases once and for all */
 				for (Base *base = scene->base.first; base; base = base->next) {
 					id_us_min(&base->object->id);




More information about the Bf-blender-cvs mailing list