Only the ImportText flow of changing a property actually calls PropagatePropertyChange, so we need to use SetPerObjectValues (which calls ImportText internally) rather than directly copy the struct state.
#jira
#rb Rex.Hill, Mikko.Mononen
#ROBOMERGE-AUTHOR: jamie.dale
#ROBOMERGE-SOURCE: CL 19918614 via CL 19920983 via CL 19921157
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 19923192 by jamie dale in ue5-main branch]
- Changed GetOrCreateFromDescs() to always ensure on errors
- Added method to migrate to another property bag instance
- Added metatag "FixedLayout" which allows to only edit values, not layout
- Changed the details customization to be allowed to embed in other customizations
#jira UE-147507
#review
#preflight 6267da5a272f4a558dbcedf6
[CL 19918231 by mikko mononen in ue5-main branch]
- Property bags allows to create customs structs via code or UI and store them in an property bag instance
- Bags are identified by their layout, a UScriptStruct is created for each unique layout
- The instances serialize the layout, not the type, to simplify handling with old data
- Property values can be migrated between different bags
#jira UE-147507
#review
#preflight 625e96dbdb15ac92db919089
[CL 19806374 by mikko mononen in ue5-main branch]
FInstancedStruct now edits a copy of the data (like FStructVariant did) to avoid issues where the detail panel would try and access invalid data. This copy is migrated back to the source whenever a property on the struct is edited, and the source is synced to the copy either every 0.1s or immediately on undo/redo or when the source is edited via its property handle.
The custom revert logic has been removed now that FInstancedStruct implements Identical correctly (as a deep-compare for a value type), and the customization now reads the meta-data from the correct property (to handle containers of FInstancedStruct) as well as handling the "HideViewOptions", "ShowTreeView", and CPF_NoClear meta-data that the standard struct picker supports.
#jira
#preflight 61eeeca1ef289ffc6df11ba7
#rb Mikko.Mononen
#ROBOMERGE-AUTHOR: jamie.dale
#ROBOMERGE-SOURCE: CL 18739655 via CL 18743464 via CL 18743615 via CL 18743717 via CL 18745443 via CL 18746261
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)
[CL 18746495 by jamie dale in ue5-main branch]