[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