Breaking changes include:
* Rename of GEditorModeTools -> GLevelEditorModeTools to signify that it applies only to the level editor modes
* Addition of FEditorModeRegistry, responsible for managing and creating new editor modes. Modes are no longer registered with an instance of the mode, instead with a mode factory that is able to create a new mode of that type.
* Editor modes now operate on FEditorViewportClients rather than FLevelEditorViewportClients
* Added ability to specify an FEditorModeTools when creating an FEditorViewport
Moved component vizualiser manager handling outside of individual editor modes, and into FLevelEditorViewportClient. This should make it easier to transplant in future.
This work addresses TTP#334640 - EDITOR: Investigate making editor modes a per-'editor' concept
Reviewed by Michael Noland, Matt Kuhlenschmidt
[CL 2109245 by Andrew Rodham in Main branch]
#ttp 334592 - When an asset is deleted from the content browser, it should be removed from the 'recently placed' list as well to avoid confusion
#branch UE4
#proj Editor.PlacementMode
#add Added FPlacementMode::OnAssetRemoved, which forces a refresh of the recently placed list. Added a call to this method in the OnAssetRemoved event in AssetRegistryModule.
#add In SPlacementModeTools::RefreshRecentlyPlaced, the list of asset paths is iterated, and those which yield a valid FAssetData object are added to the widget container. In the case of a just deleted widget, the UObject is only marked as pending delete (it has had its RF_Standalone flag cleared), and a GC sweep cannot yet have happened, so it's necessary to explicitly check for this flag set when iterating.
[CL 2073929 by Richard TalbotWatkin in Main branch]
- Modified FKismetEditorUtilities::CanCreateBlueprintFromClass() to return false if the input class is a BP skeleton class.
- Modified FKismetEditorUtilities::IsClassABlueprintSkeleton() to incorporate the alternative class flags check in case the SkeletonGeneratedClass has not yet been loaded during serialization.
- Replaced individual occurrences of the alternative class flags skeleton class check with FKismetEditorUtilities::IsClassABlueprintSkeleton() instead (for consistency and per discussion).
[CL 2063239 by Phillip Kavan in Main branch]