Commit Graph

1012 Commits

Author SHA1 Message Date
lauren barnes
508357b20e Updating documentation links/parsing to include versioning.
#jira none
#rb Jamie.Dale
#preflight 610c27a53b37200001a4af5e

#ROBOMERGE-SOURCE: CL 17078725 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17078733 by lauren barnes in ue5-release-engine-test branch]
2021-08-05 20:18:24 -04:00
aurel cordonnier
dc4bf61540 Merge from Release-Engine-Staging @ 17030559 to Release-Engine-Test
This represents UE4/Main @ 17030256 and Dev-PerfTest @ 17030553

[CL 17031509 by aurel cordonnier in ue5-release-engine-test branch]
2021-08-03 11:56:47 -04:00
lauren barnes
2faf7820c7 Fixes for in-viewport details crash when selecting an actor during PIE
[FYI] Chance.Ivey
#jira none
#rb Brooke.Hubert

#ROBOMERGE-SOURCE: CL 16982718 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16982726 by lauren barnes in ue5-release-engine-test branch]
2021-07-28 11:19:07 -04:00
christopher waters
061fc0d705 Fixing preview rendering levels where you couldn't change to a platform that has the same Feature Level as the running Editor.
#jira UE-119513
#rb mihnea.balta
#preflight 60fedde96a02b100016914cb

#ROBOMERGE-SOURCE: CL 16957943 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16957953 by christopher waters in ue5-release-engine-test branch]
2021-07-26 12:59:27 -04:00
lauren barnes
64b123ca80 Adding Bridge menu item back to the workspace menu, as well as updating the icon.
#jira UETOOL-3404
#rb Brooke.Hubert
#preflight 60f72a14391d46000166952c

#ROBOMERGE-SOURCE: CL 16902711 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16902715 by lauren barnes in ue5-release-engine-test branch]
2021-07-20 17:22:49 -04:00
patrick boutot
e600629c4e Update the LevelViewportLayout size every frame after the parent widget is updated.
#preflight 60eecd8a1a88600001daadf3
#rb vincent.gauthier

#ROBOMERGE-SOURCE: CL 16849782 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16849786 by patrick boutot in ue5-release-engine-test branch]
2021-07-14 10:23:34 -04:00
guillaume abadie
b5a4dfc800 Kills FPostProcessSettings::ScreenPercentage
#rb none

#ROBOMERGE-SOURCE: CL 16848903 via CL 16848904
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16848909 by guillaume abadie in ue5-release-engine-test branch]
2021-07-14 08:25:29 -04:00
jamie dale
afa943050c Converted UTypedElementList to no longer be a UObject
Storing typed elements in UObjects can easily lead to reference leaks if the elements aren't cleared prior to the UObject being left pending GC. This actually made UTypedElementList tricky to use, as you had to remember to manually empty it when you'd finished with it to avoid reference leaks, and we've had several cases now where that was done incorrectly.

To address this issue, we've moved element lists back to being a normal C++ class, FTypedElementList. However, unlike the original version of FTypedElementList (which was itself a UStruct), this version is always heap-allocated and referenced via a TSharedPtr/TSharedRef.

This gives us a nice middle-ground of a well defined lifetime (ie, no lingering references prior to GC) while still being efficient to pass around, including for scripting APIs via FTypedElementListProxy (which just wraps the TSharedPtr in a UStruct).

The downside of this approach is that we need to wrap the FTypedElementList functions that we want to expose to the scripting API (see UTypedElementListLibrary), however that is a far more reasonable burden than requring every user of the typed element framework to know and understand that UTypedElementList had to be manually cleared to avoid potentially hard to find reference leaks (especially if via leaked via scripting APIs).

The core of this change is to TypedElementList.h/.cpp, with TypedElementListFwd.h existing to forward declare the pointer types, and TypedElementListProxy.h and TypedElementListLibrary.h existing to declare the proxy type and wrapped functions used for scripting APIs. TypedElementSelectionInterface.h (and its implementations) provide an example of using FTypedElementListProxy within a scripting API, and the rest of the change is mostly just fallout to transform const UTypedElementList* to FTypedElementListConstRef and UTypedElementList* to FTypedElementListRef.

#rb Brooke.Hubert
#preflight 60d2720c634cd100016c804b

#ROBOMERGE-SOURCE: CL 16776547 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16776582 by jamie dale in ue5-release-engine-test branch]
2021-06-24 14:31:49 -04:00
jamie dale
d643a66190 Also deselect child elements when an actor is destroyed during PIE
[FYI] Brooke.Hubert

#ROBOMERGE-SOURCE: CL 16771827 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16771832 by jamie dale in ue5-release-engine-test branch]
2021-06-24 09:08:38 -04:00
ben hoffman
dd95df28b4 Also check for the component archetype when updating the tree selection in SActorDetails because it is a viable option for inherited BP components on instanced objects
#jira UE-118278
#rb marc.audy
#rnx

#ROBOMERGE-SOURCE: CL 16749051 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16749200 by ben hoffman in ue5-release-engine-test branch]
2021-06-22 17:03:10 -04:00
aurel cordonnier
02c0f425e8 Copy up from Release-Engine-Staging @ 16738359
This represents UE4/Main @ 16738161 and Dev-PerfTest @ 16737719

[CL 16738582 by aurel cordonnier in ue5-release-engine-test branch]
2021-06-22 00:27:54 -04:00
matt hoffman
e171ab3b14 Matinee/Editor: Removed more Matinee related functions from various Editor callbacks.
#jira UE-105313
#rb Lauren.Barnes
#preflight 60cb86e195e23200018adcaa

#ROBOMERGE-SOURCE: CL 16708876 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16708899 by matt hoffman in ue5-release-engine-test branch]
2021-06-17 14:53:36 -04:00
jamie dale
a2c2b50c07 Provided an interface to query element parent<->child hierarchy information and used it to unify selection normalization
Previously we relied on element implementations to know what their parent or child elements might be, and to deal with them correctly in the following cases:
 1) When "normalising" a selection to be safe for operations like a move or delete, eg) removing elements that are children of other selected elements.
 2) When deleting an element, also ensuring that any implicitly destroyed child elements were deselected, eg) deleting an ISM component that has selected static mesh instances.

This approach hurts the modularity of the elements themselves, as it requires that the element implementations have intrinsic knowledge of any other child (or parent) element types that may exist, and to deal with them accordingly when needed. As a concrete example, an ISM component may have child elements in the form of static mesh instance elements, however the generic component element type does not (and should not) directly know that static mesh instance elements exist.

To address this issue, we've added a new interface, UTypedElementHierarchyInterface, which can be used to provide information about the logical parent<->child hierarchy information of elements. This is implemented as follows for our current element types:
 - Actor:
   - GetParentElement returns an invalid element handle.
   - GetChildElements returns the element handles of any components on the actor.
 - Component:
   - GetParentElement returns its owner actor element handle.
   - GetChildElements returns nothing by default, but UActorComponent::GetComponentChildElements may be overridden to control this behavior.
     - eg) UInstancedStaticMeshComponent overrides it to return its static mesh instance element handles.
 - SMInstance:
   - GetParentElement returns its owner ISM component element handle.
   - GetChildElements returns nothing.

Now the problems listed above can be solved by using this interface instead of relying on the element implementations:
 1) Selection normalization is now handled by UTypedElementSelectionSet, replacing the previous duplicate implementations of UTypedElementCommonActions and UTypedElementViewportInteraction.
 2) UTypedElementSelectionSet will now walk and also update the selection state of child elements, when asked to via the FTypedElementSelectionOptions.

Breaking Changes:
 - UTypedElementCommonActions::GetElementsForAction and UTypedElementViewportInteraction::GetSelectedElementsToMove have been removed, in favor of using the selection normalization functions of UTypedElementSelectionSet.
   - Note: You may still favor using FLevelEditorViewportClient::GetElementsToManipulate, as it will have removed normalized elements that also cannot be moved by a gizmo.
 - UTypedElementCommonActions::DeleteElements and UTypedElementCommonActions::DuplicateElements have been removed, as these functions operated on an unnormalized selection and could be unsafe. UTypedElementCommonActions::DeleteNormalizedElements and UTypedElementCommonActions::DuplicateNormalizedElements should be used instead.
 - AGroupActor::ForEachActorInGroup and AGroupActor::ForEachMovableActorInGroup now take a second AGroupActor* argument in their callback.

#rb Brooke.Hubert
#preflight 60ca33a678c3b00001e8f5df

#ROBOMERGE-SOURCE: CL 16705229 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16705233 by jamie dale in ue5-release-engine-test branch]
2021-06-17 11:19:53 -04:00
zach rammell
ebee1b5ca0 Add cursor world location to level editor tool menu context
#jira UE-96331
#rb brooke.hubert jamie.dale
#preflight 60ca2609be81e800015eae93

#ROBOMERGE-SOURCE: CL 16692741 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16692760 by zach rammell in ue5-release-engine-test branch]
2021-06-16 14:17:28 -04:00
matt hoffman
b3ea2ff785 Matinee/Styles: Deleted Matinee style entries from SlateEditorStyle and StarshipStyle.
#jira UE-105313
#rb Lauren.Barnes

#ROBOMERGE-SOURCE: CL 16692495 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16692503 by matt hoffman in ue5-release-engine-test branch]
2021-06-16 14:08:11 -04:00
matt hoffman
0b64c667b5 Matinee/Editor: Renamed usages of the word 'Matinee' to 'Cinematics' where applicable in code comments.
#jira UE-105313
#rb Trivial

#ROBOMERGE-SOURCE: CL 16691805 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16691816 by matt hoffman in ue5-release-engine-test branch]
2021-06-16 13:43:52 -04:00
ben hoffman
6f0cd4f571 Fixed actor details not showing the properties of the root componenent if selected.
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]
2021-06-10 22:32:28 -04:00
matt hoffman
11740875ec Matinee: Changes required to delete matinee editor module. Removes the Interp edit mode and UnrealEds dependency on the Matinee editor module.
#rb Max.Chen, Ludovic.Chabant
#jira UE-105313
#p4v-preflight-copy 16616138
#preflight 60c1bb5eb68c700001c956d5
#preflight 60c24c03730f8a0001772aca
#preflight 60c2602f79a7fe0001785630

#ROBOMERGE-SOURCE: CL 16629318 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v831-16623017)

[CL 16629342 by matt hoffman in ue5-release-engine-test branch]
2021-06-10 16:22:51 -04:00
phillip kavan
1b6914ca4b Extends the class viewer module to support multiple custom class filters along with an optional associated view option flag.
Additional changes:
- Deprecates the previous method for specifying a singular custom class viewer filter and updates all existing occurrences of this pattern in engine code.
- Extends the property editor utilities interface to expose custom class filter(s) that can be applied to the class picker widget used for editing class property values.
- Adds an implementation of this interface to SDetailsView such that additional class filter(s) can now be configured to be applied to all underlying class property nodes.

#jira UE-108316
#rb Lauren.Barnes
#preflight 60c2102e8ae8960001110d50

#ROBOMERGE-OWNER: phillip.kavan
#ROBOMERGE-AUTHOR: phillip.kavan
#ROBOMERGE-SOURCE: CL 16623084 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v831-16623017)
#ROBOMERGE-CONFLICT from-shelf

[CL 16623246 by phillip kavan in ue5-release-engine-test branch]
2021-06-10 10:40:50 -04:00
matt hoffman
8e166827a8 Undo //UE5/Main/Engine/Source/... changelist 16613917
#jira None
#rb None

#ROBOMERGE-SOURCE: CL 16615633 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16615656 by matt hoffman in ue5-release-engine-test branch]
2021-06-09 19:26:30 -04:00
matt hoffman
305e2f6805 Matinee: Changes required to delete matinee editor module. Removes the Interp edit mode and UnrealEds dependency on the Matinee editor module.
#rb Max.Chen, Ludovic.Chabant
#jira UE-105313

#ROBOMERGE-SOURCE: CL 16613917 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16613923 by matt hoffman in ue5-release-engine-test branch]
2021-06-09 18:03:04 -04:00
patrick enfedaque
3f28b85413 Fix non-unity build
#rb trivial

#ROBOMERGE-SOURCE: CL 16602163 via CL 16605084
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16605188 by patrick enfedaque in ue5-release-engine-test branch]
2021-06-09 10:42:39 -04:00
jamie dale
e629562e38 Fixed some places leaving lingering element references from selection
#jira UE-116919
#rb Francis.Hurteau, Brooke.Hubert
#lockdown Simon.Tourangeau
#preflight 60c00edab68c70000182639c

#ROBOMERGE-SOURCE: CL 16599146 in //UE5/Release-5.0-EarlyAccess/... via CL 16599171
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16599172 by jamie dale in ue5-release-engine-test branch]
2021-06-08 21:22:02 -04:00
ben hoffman
8a1a6b21f9 Correctly aquire the editor component handle from an actor component when the tree selection is updated in the SActorDetails panel
#jira UE-117374
#rb justin.hare
#rnx
#preflight 60bfe225c612640001735e73

#ROBOMERGE-SOURCE: CL 16597031 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16597046 by ben hoffman in ue5-release-engine-test branch]
2021-06-08 19:54:16 -04:00
patrick enfedaque
dc80a8c0c2 Add support for Play in new window to the Play From Here actor flow
#rb jeanfrancois.dube
#preflight 60bf856a6c7ab70001086b9f


#ROBOMERGE-SOURCE: CL 16588669
#ROBOMERGE-BOT: (v828-16531559)

[CL 16588685 by patrick enfedaque in ue5-main branch]
2021-06-08 12:38:24 -04:00