Add's support for `[at]editable` on optionals:
`FOptionalProperty` changes:
- Added custom `__INIT__` logic for `FOptionalProperty::ExportText` which previously could output no text as the optional value was initialized but returned an empty string as its export text (ie: empty arrays, maps, sets, etc). This caused the future text imports to be incorrect.
`FPropertyNode` changes:
- Added `OptionalValueNode` as private member similar in idea to existing `PropertyKeyNode`. It stores the generated `FPropertyNode` for a FOptionalValue's Value when it is set.
- Added helper function `GetOrCreateOptionalValueNode` which either returns the existing `OptionalValueNode` OR creates one if appropriate.
- Note: This is where we bind a lambda to our Optional's Value FPropertyNode's `RebuildChildren` event which is how we update/rebuild when needed. In places where we would update/rebuild we instead call our Value to do so instead if set and then update after that has been done via this callback.
Added new widget `SPropertyEditorOptional`
- This either:
- shows a dropdown of "Set all" or "Unset all" if we have multiple values selected
- generates the editor for whatever our set value is if we have a single value (See `GetSingleReadAddress`)
- shows a 'set value' button if we are not set
#JIRA UE-191200
#rb karen.jirak
#rb kurtis.schmidt
[CL 28253719 by jared cotton in ue5-main branch]
- Use FillWidth so that its responsive to its parent size.
- Removed the delete button when the widget is being used in the level editor details panel. It was always disabled but the icon was taking space.
- Changed the text "Slot name" to "Slot"
#jira UE-194953, UE-194941
#rb brooke.hubert
[CL 27925591 by jeanmichel dignard in ue5-main branch]
- Option that allows picking Actors inside a Level Instance
- Used by SPropertyEditorAsset when picking SoftObject refs to actors (if CVar "EditorPaths.Enabled" is true)
#jira UE-194662
#rb richard.malo, jeanfrancois.dube
#rnx
[CL 27788229 by patrick enfedaque in ue5-main branch]
* Adding the ability to reference component material slots based on material slot name rather than just by index. This prevents breaking resolution of material parameter tracks when materials indices get reordered within a mesh, as long as the slot names remain consistent. This type of reordering can happen when reimporting meshes for example, as material order may not be consistent depending on your mesh authoring package. It can also happen when creating meshes dynamically, which certain customers do. For now, we try to match by slot name first, and then by index if we cannot find a material by its slot name (or one doesn't exist in the binding for backwards compatibility). In future we will introduce ways for the user to update or fix track bindings manually, for example in cases that material slot names are renamed.
* Adding the ability to reference the OverlayMaterial in MeshComponents, and animate parameters in it, or change which material is assigned to the overlay material property using a material switcher track.
* Formalizing binding to decal material- previously this was just done by default if the component the track was added to was a DecalComponent.
The above refactor also allows us to more easily add animation of other types of material tracks in other components.
In addition to the above, I've exposed the Material Slot Name (read-only) in the outliner/details panel on PrimitiveComponent. Previously you could only see these slot names by opening the mesh asset.
See design docs for this here and here:
https://docs.google.com/document/d/137PB3QN-dBdESJGfrfscNsiQPZmhg9FxIFerU1M00uU/edithttps://docs.google.com/document/d/18dlhZcJ8wE-b_Q9ulTpVirmmY_Na8w-5ZuZjeAA8oEI/edit
#jira UE-119707, UE-189930
[REVIEW] [at]UE-Sequencer
[CL 26915111 by david bromberg in ue5-main branch]
This is used for AllowedClasses and DisallowedClasses metadata in SPropertyEditorAsset.
#rb paul.chipchase
#rnx
#preflight 6380b2824004f73f62bd9d87
[CL 23265281 by sebastian nordgren in ue5-main branch]
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485
[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
- The OptionalToolTipText parameter in these helpers was previously not surfaced in the UI because the Text property was being used as the tooltip (the buttons are images only)
- Since the two sets of strings were duplicative (only one spot for text on this widget), I kept only one, in most cases just moving the ToolTipText into the Text (e.g. "Use" -> "Use Selected Asset from Content Browser")
- Slightly tweaked layout of SPropertyEditorButton so that the tooltip appears on the entire button, not just the image widget
#jira UETOOL-2776
#rb lauren.barnes
#preflight 6132816517a8610001fc15e0
#ROBOMERGE-SOURCE: CL 17427619 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)
[CL 17427626 by steven dao in ue5-release-engine-test branch]
- Buttons, checkboxes, menus, toolbars, trees, combos, and text boxes all have consistent sizing and coloring
- Invalidated current dark theme
#pf 612d40b9423a8f00013c5b92
#ROBOMERGE-SOURCE: CL 17369605 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)
[CL 17369625 by matt kuhlenschmidt in ue5-release-engine-test branch]