Opt-in by creating a UFUNCTION with the signature:
`TArray<FPropertyTextFString> GetOptionsWithStrings()`
or
`TArray<FPropertyDisplayNameFName> GetOptionsWithFNames()`
and in the UPROPERTY macros point to the function
```
UPROPERTY(EditAnywhere, meta=(GetOptions="GetOptionsWithStrings"))
FString/FName MyProperty;
```
or
```
UPROPERTY(EditAnywhere, meta=(GetOptions="GetOptionsWithFNames"))
FString/FName MyProperty2;
```
This should bring GetOptions closer to feature parity with enums. Enums still have one advantage of allowing for tooltips to also be specified.
#rb brooke.hubert
#jira UE-205226
[CL 32950305 by logan buchy in ue5-main branch]
- Adds UI support for [at]editable `type` except for types with a positive type of 'any' (This could be allowed if desired)
- This relies on adding the meta-class for "VerseClassPositiveType" to FPropertyClass's generated from CTypeType
#rb Tom.Noonan
#test SceneGraph tests
[CL 32480874 by jared cotton in ue5-main branch]
- Set/Clear optional calls now properly set their ArrayIndicesPerObject (1/2 of bug)
#rb kurtis.schmidt
#rb maxime.mercier
#tests SceneGraph Tests
[CL 32305203 by jared cotton in ue5-main branch]
[FYI] jared.cotton
Original CL Desc
-----------------------------------------------------------------
FORT-715613 - "Crash on "Set to Value" of Verse-Optional in array (details panel)"
- Set/Clear optional calls now properly set their ArrayIndicesPerObject (1/2 of original bug)
- Switched to using property `FullPathName` instead of just `name` for mapping array indices to accomodate identically named nested-containers (2/2 of original bug)
- ie: `Parameters[MyObject{Parameters[]}]` --> the `inner` parameters array would collide with the `outer` parameters array previously when property `name` was the mapping for array indices
[FYI] thomas.sarkanen
[FYI] karen.jirak
[CL 32145068 by jared cotton in ue5-main branch]
- Set/Clear optional calls now properly set their ArrayIndicesPerObject (1/2 of original bug)
- Switched to using property `FullPathName` instead of just `name` for mapping array indices to accomodate identically named nested-containers (2/2 of original bug)
- ie: `Parameters[MyObject{Parameters[]}]` --> the `inner` parameters array would collide with the `outer` parameters array previously when property `name` was the mapping for array indices
[FYI] thomas.sarkanen
[FYI] karen.jirak
[CL 32134383 by jared cotton in ue5-main branch]
#jira UE-200280
#tests Copy and paste array of structs and array of objects
[FYI] karen.jirak, brooke.hubert
#rnx
[CL 31575684 by charles lefebvre in ue5-main branch]
Engine (map and set add item);
Implementing a way to have the map and set fill in with the next available enum value instead of always doing the default value.
Slack discussion with video: https://epicgames.slack.com/archives/C0447BVGFFZ/p1705510234620249
-- Code --
PropertyHandleImpl:
FPropertyHandleMap::AddItem() - Added a HasKey() lambda. We're then checking if the map property's key is an enum property, if so, we'll loop the enum values to see if the map doesn't already have that enum value as a key. When we find one that isn't in the map, we're adding a child node and then setting the child's key node to be the enum value that is not in the map yet. If the map property's key is not enum then we do the old check for if the default key isn't there.
FPropertyHandleSet::AddItem() - Added a HasElement() lambda. We're then checking if the set property's element is an enum property, if so, we'll loop the enum values to see if the set doesn't already have the enum value as an element. When we find one that isn't in the set, we're adding a child node and then setting the child node to be the enum value that is not in the set yet. If the set property's element is not enum then we do the old check for if the default key isn't there.
UnrealTypes:
FSetProperty::GetElementProperty() - Added this getter to return the ElementProp property.
[REVIEW] [at]guillaume.morreel, [at]matt.stone, [at]karen.jirak, [at]ronald.koppers
#tests PIE, opened a uasset that has a TMap property with enum as the key, added each enum key as I clicked the add item button, changed an entry to something out of order to make sure the add item button would add the next available entry, all the way until it wouldn't add anymore entries because all enum keys were taken. Also tried a TMap property with a gameplaytag as the key to make sure it still worked as expected. Repeated with TSet.
#rb ronald.koppers
[CL 31089421 by aaron eady in ue5-main branch]
[BugFix] Inlined Subobjects not displaying correctly in left panel of archetype fixup tool
#rb Francis.Hurteau, karen.jirak
#jira UE-197746
[CL 30573552 by jordan hoffmann in ue5-main branch]
- Gave FDetailItemNode::CreatePropertyHandle support for CustomBuilderRow property handles
- Added FPropertyHandleBase::CreateFPropertyPath method
- Added FPropertyHandleMap::GetElement method to parrody FPropertyHandleSet::GetElement
- Made FPropertNode::CreatePropertyPath return an empty/invalid path if any of it's properties are invalid (likely due to a destroyed object)
- Added FPropertyPath::GetPropertyInfoRef method So that an FPropertyPath element can be mutated without having to recreate the entire path
#rb karen.jirak
#jira UE-192693, UE-192691, UE-197746
[CL 30028123 by jordan hoffmann in ue5-main branch]
- Changed FPropertyValueImpl::GenerateArrayIndexMapToObjectNode to not stop on the first object, so that we get array indices for the whole property path in case of sub-objects
- Fixed the event copy in FPropertyNode::NotifyPostChange() to retain array indices from the orignal event
[CL 29955916 by mikko mononen in ue5-main branch]
[FYI] Yoan.StAmant
Original CL Desc
-----------------------------------------------------------------
[FScriptSetHelper and FScriptMapHelper iterators]
simple index to iterator replacements
#rb Steve.Robb
[CL 29950621 by yoan stamant in ue5-main branch]
- adds support for setting a default value to an FOptionalPRoperty containing a FObjectProperty type (ie: classes, objects, etc)
- copies over the needed existing code-logic for finding all affected objects and sending them pre/post edit events which will mark them as dirty for set/clear optional calls.
#JIRA UE-197108
#rb Maxime.Mercier
[FYI] Kurtis.Schmidt
[CL 29891824 by jared cotton in ue5-main branch]