This is a pretty rare case that only occurs if you bypass OnItemNodeInitialized() by creating and adding a property row outside of a CustomizeDetails() call in a property customization. However, the use case is pretty innocuous and this seems more correct anyway, so there's not really any harm to changing the behaviour.
Reported in UDN case 00426747.
#review-19806378 @lauren.barnes
#preflight 6261522f080c66006373c9e5
[CL 19848082 by sebastian nordgren in ue5-main branch]
Fixed crash when accessing and invalid PropertyEditor in FDetailPropertyRow.
Fixed performance issue caused by calling GetWidgetRow() on FDetailPropertyRow for every row, which caused the row's widgets to be constructed again when filtering.
Added GetCustomResetToDefault() to IDetailLayoutRow, which allows us to bypass the performance penalty of creating the WidgetRow by directly accessing the FResetToDefaultOverride of the row.
#jira UE-144131
#rb paul.chipchase
#preflight 621de59f037be0078cecb0e4
#preflight 621df0563e14f0c7e5276836
[CL 19196340 by sebastian nordgren in ue5-main branch]
- Added option 'DisableStreaming' in the World Partition convert commandlet to allow disabling streaming for converted maps.
- Added flag 'bEnableStreaming' for partitioned worlds that can be used to disable streaming but keep key features such as OFPA and Data Layers.
- In this mode, the streaming generation acts as standard level streaming and can be enabled at any time by the user.
- This mode is enabled by default for new partitioned maps created from the empty template or the open world template.
- The World Partition convert commandlet will now duplicate the default HLOD layers setup.
- Show a hint in the World Partition window that streaming is disabled.
- When disabling streaming from the UI, show a dialog to warn the user about the implications of the change.
- When enabling streaming for the first time, show a dialog to warn the user that the world is about to be set up for streaming.
- When saving a map, don't duplicate its HLOD setup unless it's a template map.
- Includes changes from MattK: `Allow external object details customizations to hide the root object node`.
- TODO: Convert all template maps from the Games project to use World Partiton with streaming disabled using the new 'DisableStreaming' commandlet option.
#rb patrick.enfedaque, richard.malo
#jira UE-143719
#preflight
#ROBOMERGE-AUTHOR: jeanfrancois.dube
#ROBOMERGE-SOURCE: CL 19149766 in //UE5/Release-5.0/... via CL 19150115
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)
[CL 19160979 by jeanfrancois dube in ue5-main branch]
When property view widgets get reused, we are running (generate nodes) repeatedly while scrolling. Through some trial and error, I've identified that since I am only showing a fraction of the nodes I don't need to have all the nodes built; I can get away with generating the ones I will see, which improves performance from around 130 ms to 10-20ms per widget. I am adding a way to specify the properties you want to build and ignore the rest, which ultimately dramatically speeds up the PropertyView widget for the case where you are only showing a few properties from the object.
[REVIEW] [at]jay.Nakai, [at]sebastian.nordgren, [at]david.hamm
#rb sebastian.nordgren
#ROBOMERGE-OWNER: vlad.golovan
#ROBOMERGE-AUTHOR: vlad.golovan
#ROBOMERGE-SOURCE: CL 19036849 via CL 19036854 via CL 19038143 via CL 19038155 via CL 19039279
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v918-19018356)
[CL 19039995 by vlad golovan in ue5-main branch]
This fix always initializes it to a valid pointer, but invalid handle, which is a state that is handled correctly in FPropertyHandleBase.
#jira UE-130580
[REVIEW] [at]lauren.barnes
#preflight 61e56664a2616066f67fbfa6
#ROBOMERGE-AUTHOR: sebastian.nordgren
#ROBOMERGE-SOURCE: CL 18639655 in //UE5/Release-5.0/... via CL 18639702 via CL 18639711
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)
[CL 18639724 by sebastian nordgren in ue5-main branch]
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971
[CL 18081471 by aurel cordonnier in ue5-release-engine-test 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]
- Allow drag-and-drop behavior to be customized for a details widget row
- Cleanup PropertyEditorHelpers::MakePropertyReorderHandle (it was setting the enabled attribute which always ended up getting overwritten)
- Add drag-and-drop handler+op for UserDefinedStructureEditor to enable drag-and-drop reordering. Removed buttons for moving up/down.
#jira UETOOL-2776
#rb sebastian.nordgren
#preflight 6130deb01a52e20001a6c93b
#ROBOMERGE-SOURCE: CL 17404287 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)
[CL 17404301 by steven dao in ue5-release-engine-test branch]
#jira UE-116397
#ROBOMERGE-SOURCE: CL 16446098 in //UE5/Main/... via CL 16446102
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Release-Engine-Staging) (v814-16434418)
[CL 16446106 by sebastian nordgren in ue5-release-engine-staging branch]
CustomEditConditionValueChanged handlers are now postfixed with a call to FPropertyNode::InvalidateCachedState(), which causes the IsEditConst state to refresh.
Removed unnecessary code to access the PropertyEditor->IsEditConditionMet(), which is stored in EditConditionValue now.
#review @lauren.barnes, @patric.boutot
#jira FROST-1702
[CL 16008018 by sebastian nordgren in ue5-main branch]