Port ActorBrowsingMode over to the new Editor Config system to have separate settings for each outliner
Enable Stacked Hierarchy Headers by default
Add the ability to disable framing selection
Add the ability to get the most recently used outliner from the level editor
Fix a bug where renaming an item on one outliner would sometimes execute the rename on a different outliner
#rb richard.malo
#jira UETOOL-5014
#preflight 627aa9811e74993343331221
[CL 20126651 by aditya ravichandran in ue5-main branch]
Disable the Pinned Column and Context Menu option on non-wp maps,
Rename the Level Column to "Package Short Name" on wp enabled maps,
Add the ability to access all outliners from SLevelEditor
#jira UE-133207
#jira UETOOL-4981
#rb Lauren.Barnes
#preflight 620d0fa37948a1e5e4b1d578
[CL 19014298 by aditya ravichandran in ue5-main branch]
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035
[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
- The menu's title changes depending on the selection ("Actor", "Component", or "Element" currently since those are the three currently-defined context menus for the level editor)
- The context menus will get reorganized in subsequent changes so that the pulldown Actions menu displays the full set of entries while the right-click context menu is trimmed down to a shorter subset of entries. This change does not reorganize any items yet.
- Add support to UToolMenus for using a TAttribute<FText> for the pulldown menu title/tooltip and for supplying FOnGetContent for generating the pulldown menu.
#rb rex.hill
#preflight 61534e89260f7d0001c7e4ac
#ROBOMERGE-OWNER: steven.dao
#ROBOMERGE-AUTHOR: steven.dao
#ROBOMERGE-SOURCE: CL 17652268 via CL 17652271 via CL 17652276 via CL 17652280 via CL 17652287
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v875-17642767)
#ROBOMERGE[STARSHIP]: UE5-Main
[CL 17652461 by steven dao in ue5-release-engine-test branch]
Currently only delete and delta transform are enabled/available
#rb Brooke.Hubert
#ROBOMERGE-SOURCE: CL 15631470 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v777-15581079)
[CL 15631487 by jamie dale in ue5-main branch]
That way, we can have the editors open at editor startup and avoid having to reopen them when needed.
#rb richard.malo
[CL 15132491 by JeanFrancois Dube 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]
- Ported the typed element list (FTypedElementList) to be a UObject (UTypedElementList) so that it can be used with UFUNCTION arguments.
- This also removes FTypedElementListPtr, and exposes UTypedElementList functions to scripting.
- Exposed UTypedElementRegistry functions to scripting.
- Added UTypedElementHandleLibrary to expose basic FTypedElementHandle functionality to scripting.
- Exposed AActor and UActorComponent functions for getting an element handle.
#rb Chris.Gagnon
#rnx
[CL 14311016 by Jamie Dale in ue5-main branch]