Original CL Desc
-----------------------------------------------------------------
Prevent details panel from getting stuck on deleted elements when locked
It will now unlock and clear itself when an element is deleted
#jira UE-142503
#rb brooke.hubert
#preflight 6244d3829f4042341454d61a
[CL 19595303 by zach rammell in ue5-main branch]
It will now unlock and clear itself when an element is deleted
#jira UE-142503
#rb brooke.hubert
#preflight 6244d3829f4042341454d61a
[CL 19565596 by zach rammell in ue5-main branch]
SSubobjectInstanceEditor::OnObjectReplaced was never bound, so we now just handle this directly in SActorDetails instead
#rb Ben.Hoffman
#preflight skip
#rnx
#ROBOMERGE-AUTHOR: jamie.dale
#ROBOMERGE-SOURCE: CL 18346293 via CL 18347479 via CL 18347485 via CL 18347489 via CL 18348493 via CL 18348565
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18348601 by jamie dale in ue5-release-engine-test branch]
Moved FDetailFilter to its own file.
#rb matt.kuhlenschmidt
#preflight 61361043bdfce00001c0a317
#ROBOMERGE-AUTHOR: sebastian.nordgren
#ROBOMERGE-SOURCE: CL 17442135 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)
[CL 17442153 by sebastian nordgren in ue5-release-engine-test branch]
Updated the logic in SActorDetails::RefreshSubobjectTreeElements to match the logic in SActorDetails::OnSubobjectEditorTreeViewSelectionChanged when deciding whether a component or actor is selected
[FYI] jamie.dale
#jira none
#rb trivial
#preflight 60c2bbb1b1a4a3000131e17a
#ROBOMERGE-SOURCE: CL 16635419 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v831-16623017)
[CL 16635452 by ben hoffman in ue5-release-engine-test branch]
The button bar of the sub-object instance editor would always be visible, even if there was no valid actor context to operate on. This changes it to only appear for actor contexts (ie, we can't add components to static mesh instance elements).
#fyi Brooke.Hubert, Ben.Hoffman
[CL 16526044 by Jamie Dale in ue5-main branch]
The sub-object instance editor would warn that the given context wasn't an actor, so this limits it back to only actor contexts (like how the SCS editor used to work)
#fyi Brooke.Hubert, Ben.Hoffman
[CL 16413105 by Jamie Dale in ue5-main branch]
Adds support for selection, gizmo manipulation, property editing, duplication, deletion, and undo/redo for Static Mesh instances within the main Level Editor, without having to enter an alternative editing mode.
Note: This is currently disabled via UE_ENABLE_SMINSTANCE_ELEMENTS
#rb Brooke.Hubert
#ROBOMERGE-SOURCE: CL 15481362 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)
[CL 15481376 by jamie dale in ue5-main branch]
Removed 2 pixels of padding from and the down arrow from SEditorHeaderButtons.
Added 2 pixels of padding to the right of Blueprint add parameter button.
#rb trivial
[CL 15207710 by sebastian nordgren in ue5-main branch]
SActorDetails now operates on a given UTypedElementSelectionSet (removing its dependence on the global selection), and also operates based on the list of selected top-level elements rather than the selected actors.
UTypedElementDetailsInterface provides the interface needed for an element to be used with the details panel, with ITypedElementDetailsObject being the underlying glue object.
The ITypedElementDetailsObject instance will exist as long as the details panel is using it, so gives a lifetime to potentially synthesized UObject instances that are created purely for editing (eg, on instances).
This change removes almost all direct use of UpdateFloatingPropertyWindowsFromActorList, with only a single use-case in the reference viewer remaining.
Most code was already using UpdateFloatingPropertyWindows anyway, which now emits an extra OnElementSelectionChanged event in addition to its previous OnActorSelectionChanged event.
UpdateFloatingPropertyWindowsFromActorList now only emits an OnOverridePropertyEditorSelection event and no longer emits an OnActorSelectionChanged event.
SActorDetails is updated from both OnElementSelectionChanged and OnOverridePropertyEditorSelection, with the OnActorSelectionChanged event remaining for backwards compatability with existing code.
#jira
#rb Chris.Gagnon, Brooke.Hubert
[CL 15037524 by Jamie Dale in ue5-main branch]
This phase focuses on the minimum set of changes needed to port the UnrealEd logic for handling the selection of actors and components within the Level Editor viewport to use typed element interfaces. There is still future work to be done to clean this up further.
This change adds a new framework type, UTypedElementSelectionSet, which manages the concept of "selection" for typed elements. Internally this owns its own UTypedElementList, and ensures that mutation of that list goes via the UTypedElementSelectionInterface implementations.
To allow specific asset editors to customize their selection behavior, UTypedElementSelectionSet may have "selection proxies" that implement UTypedElementAssetEditorSelectionProxy registered to it. This is what's used to allow the level editor to implement its type specific rules.
The core Level Editor selection implementation for actors and components now lives inside UActorElementLevelEditorSelectionProxy and UComponentElementLevelEditorSelectionProxy, and the existing UUnrealEdEngine functions that used to deal with this logic now proxy through to those implementations via UTypedElementSelectionSet. This means that the implementation has moved into the LevelEditor module without UnrealEd even knowing.
Future work will focus on:
- Cleaning up the legacy USelection bridge, so that all USelection instances are just a proxy around a UTypedElementSelectionSet.
- This will involve making a basic "Object" element type to handle the generic UObject based selection (for assets) that USelection also handles.
- This should allow GetMutableElementList to be removed from UTypedElementSelectionSet, to avoid potential abuse or misuse.
- Investigating the best way to integrate element based selection into the editor modes.
#rb Chris.Gagnon, Brooke.Hubert
#rnx
[CL 14470181 by Jamie Dale in ue5-main branch]