Editor layout system: If there is a version bump in the layout system, it used to show a message dialog always. Behavior modified.
If the load request comes from the "Load" UI button, it keep displaying a message dialog to warn the user (and a UELOG(Warning)). If it's from the editor startup, it will only show the UE_LOG(Warning).
Also modified the default layout with the new version.
#rb none
[CL 15307798 by Gines Hidalgo in ue5-main branch]
This lets UTypedElementSelectionSet (which has minimal dependencies) to be used by the Engine and InteractiveToolsFramework modules
#rb Brooke.Hubert
[CL 15219316 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]
- activating an editor mode that was already active but in an drawer, opens that drawer
- dock tabs can now register for drawer opening/closing callbacks so that they can do stuff when the drawer opens or closes. For example, now the placement browser focuses its search field when the drawer opens
[CL 14723696 by Matt Kuhlenschmidt in ue5-main branch]
This takes the framework used for UTypedElementSelectionSet and moves to it a utility base class that other higher-level interfaces can also make use of.
This also changes the interface implementations for these systems to be non-UObject types, as the script exposure is handled by the owner object, and this can solve some cyclic parsing issues with UHT (eg, between UnrealEd and LevelEditor).
#rb Chris.Gagnon, Brooke.Hubert
#rnx
[CL 14704895 by Jamie Dale in ue5-main branch]
This change removes the use of boolean attribute AreRealTimeThumbnailsAllowed. This attribute is less than ideal, design-wise, since it uses the thumbnail pool to drive the behavior of the thumbnails. Instead we build in default hover behavior to the thumbnail slate widgets, and implement plumbing for custom pathways to enable/disable real time behavior per thumbnail.
-> Add default OnMouseEnter/OnMouseLeave events on SAssetThumbnail for default hover behavior (over the actual thumbnail image), which supports detail panel, customizations, and things like FoliageEditor and Niagara Stack Overview thumbnail strip.
-> Add thumbnail initialize pathway support for disabling default hover behavior for use cases where the logical asset is more than just the thumbnail image (border elements, text elements with the asset name, etc).
-> Add custom OnMouseEnter/OnMouseLeave handlers on SAssetTileItem, SAssetListItem to perform real time behavior on entire logical asset item in Content Browser and Asset Picker.
#rb francis.hurteau
#fyi matt.kuhlenschmidt
#jira UETOOL-2363
[CL 14673948 by geoff evans in ue5-main branch]
- Moved all the "framework" code under "Elements/Framework".
- Moved all the "interface" code under "Elements/Interfaces".
This lets the code be split over multiple modules (including the Engine and Editor) while retaining consistent include paths with things like "Elements/Actor", "Elements/Component", etc, as well as letting new interfaces and frameworky things be added outside of the core typed element modules while still maintaining a coherent include scheme.
#fyi Brooke.Hubert
#rb Chris.Gagnon
[CL 14585700 by Jamie Dale in ue5-main branch]
This adds some new functions to UTypedElementSelectionInterface to deal with writing the underlying data needed by an element (WriteTransactedElement) to factory it again later (ReadTransactedElement) when restoring a prior selection state.
#rb Chris.Gagnon
[CL 14585511 by Jamie Dale in ue5-main branch]