diff options
author | Hans Goudey <h.goudey@me.com> | 2021-08-31 19:12:07 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2021-08-31 19:12:07 +0300 |
commit | cfc674408ee62e0f7f6b41aff0d1ef4a9fedf6db (patch) | |
tree | badcf40f915d0747045e7fb13d7f58fa956d3477 /source | |
parent | 596f1878b69ce078f936528cc66d1a985d4c6498 (diff) |
Fix T91084: Missing versioning for object pose bone property UI data
Objects also have a list of "bone" pose channels embedded directly.
These properties are user visible, so their UI data should be versioned.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenloader/intern/versioning_300.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/source/blender/blenloader/intern/versioning_300.c b/source/blender/blenloader/intern/versioning_300.c index 136ea786903..2049fb7b9b4 100644 --- a/source/blender/blenloader/intern/versioning_300.c +++ b/source/blender/blenloader/intern/versioning_300.c @@ -276,15 +276,22 @@ static void do_versions_idproperty_ui_data(Main *bmain) } } - /* The UI data from exposed node modifier properties is just copied from the corresponding node - * group, but the copying only runs when necessary, so we still need to version UI data here. */ LISTBASE_FOREACH (Object *, ob, &bmain->objects) { + /* The UI data from exposed node modifier properties is just copied from the corresponding node + * group, but the copying only runs when necessary, so we still need to version data here. */ LISTBASE_FOREACH (ModifierData *, md, &ob->modifiers) { if (md->type == eModifierType_Nodes) { NodesModifierData *nmd = (NodesModifierData *)md; version_idproperty_ui_data(nmd->settings.properties); } } + + /* Object post bones. */ + if (ob->type == OB_ARMATURE && ob->pose != NULL) { + LISTBASE_FOREACH (bPoseChannel *, pchan, &ob->pose->chanbase) { + version_idproperty_ui_data(pchan->prop); + } + } } /* Sequences. */ @@ -979,7 +986,8 @@ void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain) } } - /* Fix SplineIK constraint's inconsistency between binding points array and its stored size. */ + /* Fix SplineIK constraint's inconsistency between binding points array and its stored size. + */ LISTBASE_FOREACH (Object *, ob, &bmain->objects) { /* NOTE: Objects should never have SplineIK constraint, so no need to apply this fix on * their constraints. */ @@ -1047,8 +1055,8 @@ void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain) } FOREACH_NODETREE_END; - /* Disable Fade Inactive Overlay by default as it is redundant after introducing flash on mode - * transfer. */ + /* Disable Fade Inactive Overlay by default as it is redundant after introducing flash on + * mode transfer. */ for (bScreen *screen = bmain->screens.first; screen; screen = screen->id.next) { LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) { LISTBASE_FOREACH (SpaceLink *, sl, &area->spacedata) { |