There are now overloads to FUIAction that take a FGetActionCheckState delegate which is able to return any of the entries from ECheckBoxState. FIsActionChecked still exists for backwards compatibility, and converts the returned bool into a ECheckBoxState via a passthrough function.
#codereview Matt.Kuhlenschmidt
[CL 2570717 by Jamie Dale in Main branch]
'Lighting Components' -> 'Ambient Occlusion' affects both DFAO and SSAO now
Added 'Screen Space Ambient Occlusion' show flag under 'Lighting Features'
[CL 2557658 by Daniel Wright in Main branch]
Newly installed versions of the engine will now attempt to copy the project-agnostic config settings from a previous engine installation. This happens by way of a versioned manifest that copies old versions when the manifest does not exist, or is a different version. This code path is benign for non-installed versions of the engine (or FPaths::ShouldSaveToUserDir() is false).
EditorGameAgnosticSettings and EditorUserSettings ini paths have been renamed to EditorSettings and EditorPerProjectUserSettings respectively to better convey their purpose. In general, most settings should be saved in EditorSettings (project-agnostic) so that they apply regardless of which project is open. We have some way to go migrating existing settings for this to be the case, however.
Some previously per-project configuration files are now project-agnostic (such as Editor.ini, EditorKeyBindings.ini, and EditorLayout.ini)
GEditor->Access...Settings and GEditor->Get...Settings have been removed in favor of direct access of the CDO through GetMutableDefault<> and GetDefault<> respectively. Global config ini filenames that are not set up are now neither loaded nor saved on build machines, to handle the problem of indeterminate state more generically.
This addresses UETOOL-270 (Most editor preferences should be project-agnostic)
[CL 2517558 by Andrew Rodham in Main branch]
I have reviewed each change carefully, but it is a large change and I could have missed something! Here is a summary of the types of changes in this CL:
* Made nullptr checks consistent (the plurality of the changes are of this type)
* Completed switch statements (IE, switch did not explicitly handle default case, but had unhandled enum entries - this is the second most popular type of fix)
* Removed unused variables
* Removed redundant initializations
* WidgetNavigationCustomization.cpp was fixed by the owner
* integers converted to floats where result was stored in a float
* Removed redundent null checks (e.g. before delete statements)
* Renamed variables to prevent non-obvious shadowing
* Fixed use of bitwise & when checking for equality to an enum entry (which is often 0)
* Fixes for some copy paste errors (e.g. FoliageEdMode.cpp)
[CL 2498053 by Dan Oconnor in Main branch]
#jira UE-1143 - LIVE: Include option to view Orthographic views from both angles Front Back Left Right Top Bottom
#reviewedby Matt.Kuhlenschmidt
[CL 2480276 by Richard TalbotWatkin in Main branch]
Actor pilots are now initiated from the actor's context menu, rather than an unrelated menu on the viewport. Similarly, pilots can be stopped via the context menu for the actor, or from the viewport toolbar that is visible when a pilot is active.
This addresses UE-1091 - Allow actors to be piloted with the camera in UE4.
[CL 2446881 by Andrew Rodham in Main branch]
This change includes a large rework of the scene outliner to make it more expandable and flexible with what data it supports.
Tree items now support visitation to allow for external logic on custom columns etc without having to type check and cast.
Sorting has been overhauled to be more flexible and efficient. It now supports correct lexical comparison for numbers.
[CL 2354514 by Andrew Rodham in Main branch]
I've made a few changes here to make the code more consistent for the various ways of using a viewport to view an actor's position:
* Camera properties are now taken off any UCameraComponent, not specifically limited to ACameraActors.
* Calling FLevelEditorViewportClient::SetActorLock will now lock the viewport to the specified actor. If the actor has a camera component the viewport will inherit this camera's properties. The locked actor will also move with the viewport position if in perspective mode (as before).
* ControllingActor and PostProcessingActor have been removed from FLevelEditorViewportClient. Both were used for PIP camera previews which now work by locking a viewport to their desired camera.
* The inheriting of camera properties is controlled by the viewport "Camera View" setting shown on the quick settings viewport toolbar under the "Lock Viewport to Actor sub-menu.
This addresses TTP#337559 - feature request - improve viewport functionality for locking to camera
Reviewed by Chris Wood, Matt Kuhlenschmidt
[CL 2113995 by Andrew Rodham in Main branch]
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 337844 - Editor: Move new stats menu to first drop down arrow next to "Show Stats" rather than show flags
#branch UE4
#change Moved FillShowMenu and FillShowStatsSubMenus functions so they could be more accessible
reviewed by Thomas.Sarkanen
[CL 2109062 by Andrew Brown in Main branch]