I did the first part, lock some showflags to be 0 or 1 in SHIPPING
If this causes problems for some applications (e.g. using showflag as scalability which they shouldn't) the user needs to update the code.
or we remove the lock from that showflag.
For editor or non shipping features it's fine to use the SetSHOWFLAGNAME() calls, they become NOPS in SHIPPING.
This is a performance optimization (when used in inner loop) and prepares for removing more
[CL 2673126 by Martin Mittring in Main branch]
UE-14641 - Fix PushMenu() to use QueryPopupMethod()
Pretty big refactor
Adds IMenu as way to identify menus. Replaces referring to menus as SWindows.
Lots of uses of PushMenu() fixed up to match new API
#codereview Nick.Atamas
[CL 2579277 by Chris Wood 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]
When a selected actor is reinstanced, a details view (displaying details of the actor) needs to be refreshed.
An alternative solution: don't check SDetailsView::ShouldSetNewObjects (refresh always )
OR store an object's hash in SDetailsView (and compare it in the ShouldSetNewObjects)
#codereview Matt.Kuhlenschmidt, Nick.Whiting
[CL 2455053 by Maciej Mroz 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]
Editor selection outline now uniquely identifies selected components. When a component is selected directly the rest of the actor gets a subdued selection color and the selected compoent(s) get the normal selection color. When the actor is selected directly all components get the normal selection color.
[CL 2438255 by Matthew Griffin in Main branch]
Editor - Fixing a bug where decorators dragged over the viewport that don't create something in the world (materials) are not properly restored when dragged out of the viewport.
[CL 2433332 by Matthew Griffin in Main branch]
Improved the validation when drag-and-dropping a class into the level viewport
UE-7184 - Show game c++ classes and engine c++ classes in the content browser
It now prevents the placement of non-placeable classes that have come from an asset or class drag (Content Browser or Class Viewer).
[CL 2425767 by Ben Marsh in Main branch]