From 04d22d73f30dfafab479747f88ea164b931ce087 Mon Sep 17 00:00:00 2001 From: Julian Eisel Date: Wed, 27 Sep 2023 11:52:02 +0200 Subject: [PATCH] UI: Hide asset shelf by default Only the pose library enables the asset shelf by default, but Blender doesn't come with pose assets, they have to be created by the user. So when entering pose mode with factory settings, the asset shelf will currently be just a big empty bar. Plus, pose mode is used for posing without pose assets quite a lot. So hide the asset shelf by default. The pose library already shows a toggle to hide/unhide it where the previous pose library UI was for discoverability. --- .../blender/blenkernel/BKE_blender_version.h | 2 +- .../blenloader/intern/versioning_400.cc | 51 +++++++++---------- 2 files changed, 26 insertions(+), 27 deletions(-) diff --git a/source/blender/blenkernel/BKE_blender_version.h b/source/blender/blenkernel/BKE_blender_version.h index 593d5176a2f..12fbb689fbf 100644 --- a/source/blender/blenkernel/BKE_blender_version.h +++ b/source/blender/blenkernel/BKE_blender_version.h @@ -29,7 +29,7 @@ extern "C" { /* Blender file format version. */ #define BLENDER_FILE_VERSION BLENDER_VERSION -#define BLENDER_FILE_SUBVERSION 27 +#define BLENDER_FILE_SUBVERSION 28 /* Minimum Blender version that supports reading file written with the current * version. Older Blender versions will test this and cancel loading the file, showing a warning to diff --git a/source/blender/blenloader/intern/versioning_400.cc b/source/blender/blenloader/intern/versioning_400.cc index 22ac8cb1ed4..e7b74cad782 100644 --- a/source/blender/blenloader/intern/versioning_400.cc +++ b/source/blender/blenloader/intern/versioning_400.cc @@ -1521,6 +1521,31 @@ void blo_do_versions_400(FileData *fd, Library * /*lib*/, Main *bmain) } } + if (!MAIN_VERSION_FILE_ATLEAST(bmain, 400, 28)) { + LISTBASE_FOREACH (bScreen *, screen, &bmain->screens) { + LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) { + LISTBASE_FOREACH (SpaceLink *, sl, &area->spacedata) { + const ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase : + &sl->regionbase; + LISTBASE_FOREACH (ARegion *, region, regionbase) { + if (region->regiontype != RGN_TYPE_ASSET_SHELF) { + continue; + } + + RegionAssetShelf *shelf_data = static_cast(region->regiondata); + if (shelf_data && shelf_data->active_shelf) { + AssetShelfSettings &settings = shelf_data->active_shelf->settings; + settings.asset_library_reference.custom_library_index = -1; + settings.asset_library_reference.type = ASSET_LIBRARY_ALL; + } + + region->flag |= RGN_FLAG_HIDDEN; + } + } + } + } + } + /** * Versioning code until next subversion bump goes here. * @@ -1533,31 +1558,5 @@ void blo_do_versions_400(FileData *fd, Library * /*lib*/, Main *bmain) */ { /* Keep this block, even when empty. */ - if (!DNA_struct_member_exists(fd->filesdna, - "AssetShelfSettings", - "AssetLibraryReference", - "asset_library_reference")) - { - LISTBASE_FOREACH (bScreen *, screen, &bmain->screens) { - LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) { - LISTBASE_FOREACH (SpaceLink *, sl, &area->spacedata) { - const ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase : - &sl->regionbase; - LISTBASE_FOREACH (ARegion *, region, regionbase) { - if (region->regiontype != RGN_TYPE_ASSET_SHELF) { - continue; - } - - RegionAssetShelf *shelf_data = static_cast(region->regiondata); - if (shelf_data && shelf_data->active_shelf) { - AssetShelfSettings &settings = shelf_data->active_shelf->settings; - settings.asset_library_reference.custom_library_index = -1; - settings.asset_library_reference.type = ASSET_LIBRARY_ALL; - } - } - } - } - } - } } }