Files
UnrealEngineUWP/Engine/Source/Editor/UnrealEd/Private/EditorModeManager.cpp

1868 lines
52 KiB
C++
Raw Normal View History

// Copyright Epic Games, Inc. All Rights Reserved.
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3209340 on 2016/11/23 by Ben.Marsh Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h. Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms. * Every header now includes everything it needs to compile. * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first. * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h. * Every .cpp file includes its matching .h file first. * This helps validate that each header is including everything it needs to compile. * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more. * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there. * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible. * No engine code explicitly includes a precompiled header any more. * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies. * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files. Tool used to generate this transform is at Engine\Source\Programs\IncludeTool. [CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
#include "EditorModeManager.h"
#include "Engine/Selection.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3209340 on 2016/11/23 by Ben.Marsh Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h. Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms. * Every header now includes everything it needs to compile. * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first. * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h. * Every .cpp file includes its matching .h file first. * This helps validate that each header is including everything it needs to compile. * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more. * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there. * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible. * No engine code explicitly includes a precompiled header any more. * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies. * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files. Tool used to generate this transform is at Engine\Source\Programs\IncludeTool. [CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
#include "Misc/MessageDialog.h"
#include "Editor/EditorPerProjectUserSettings.h"
#include "Misc/ConfigCacheIni.h"
#include "GameFramework/WorldSettings.h"
#include "LevelEditorViewport.h"
#include "EditorModeRegistry.h"
#include "EditorModes.h"
#include "EditorSupportDelegates.h"
#include "EdMode.h"
#include "Toolkits/IToolkitHost.h"
#include "Framework/Notifications/NotificationManager.h"
#include "Widgets/Notifications/SNotificationList.h"
#include "Widgets/Input/SButton.h"
#include "Engine/LevelStreaming.h"
#include "Editor/EditorEngine.h"
#include "UnrealEdGlobals.h"
#include "Editor/UnrealEdEngine.h"
#include "Widgets/Docking/SDockTab.h"
#include "Widgets/Layout/SWidgetSwitcher.h"
#include "Styling/AppStyle.h"
#include "Framework/Commands/UICommandList.h"
#include "Framework/MultiBox/MultiBoxBuilder.h"
#include "Toolkits/BaseToolkit.h"
#include "Subsystems/AssetEditorSubsystem.h"
#include "Subsystems/BrushEditingSubsystem.h"
#include "Tools/UEdMode.h"
#include "Widgets/Images/SImage.h"
#include "InputRouter.h"
#include "InteractiveGizmoManager.h"
#include "EdModeInteractiveToolsContext.h"
#include "Tools/LegacyEdModeInterfaces.h"
#include "CanvasTypes.h"
#include "CanvasItem.h"
#include "Engine/StaticMeshActor.h"
#include "EngineUtils.h"
#include "Tools/AssetEditorContextObject.h"
#include "ContextObjectStore.h"
#include "UObject/GCObjectScopeGuard.h"
#include "Subsystems/EditorElementSubsystem.h"
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4279600) #rb none #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 4073383 by Patrick.Boutot [AJA] Set base timecode for AJA TimecodeProvider Change 4075631 by Patrick.Boutot Change icon for TimecodeSynchronizer. Update TimecodeSynchronizer with the new AJA delayed open sources. Add TimecodeProvider to TimecodeSynchronizer. Can now sync with TimecodeProvider or a master. Make sure the source are ready before viewing them. Remove PreRoll command. Change 4077328 by JeanMichel.Dignard Fixed SoftObjectPtr/Paths becoming invalid when saving a new world since it's being moved from /Temp/Untitled to its own package. #jira UEENT-1423 Change 4077338 by Rex.Hill USD plugin updated to v8.4 with python support Change 4079063 by Rex.Hill USD sdk recompiled as vs2015 targeting older version of CRT, also dependency added for PythonScriptPlugin Change 4079911 by Rex.Hill USD pyd files recompiled Change 4080058 by Rex.Hill Fix usd plugin loading, added missing libtrace.dll Change 4080376 by Matt.Hoffman Improvements to Sequence Recorder's public API to expose more functionality for third parties. Change 4084984 by Matt.Hoffman Sequence Recorder can now set a global time dilation when recording starts, optionally ignoring the dilation when recording keys. This is useful for recording objects in your scene that move too fast to track with a camera but still ending up with the same length recording in the end. #jira UESP-670 Change 4086688 by Matt.Hoffman Exposes getting and setting keys from sequencer sections via the scripting layer. Examples for how to work with Python and key data can be found in /Plugins/MovieScene/SequencerScripting/Content/Python in the form of "sequencer_examples.py" and "sequencer_key_examples.py". Documentation on how to use these examples is included in the python file. #jira UESP-547 Change 4088904 by Max.Chen Sequence Recorder: Set actor tags as unique Change 4089176 by Max.Chen Sequence Recorder: Add option to record to the target level sequence playback range length. Change 4089180 by Max.Chen Sequence Recorder: Add protection agains null movie scene sections Change 4089205 by Max.Chen Sequence Recorder: Save recorded audio files if auto save is on. #jira UESP-660 Change 4089206 by Max.Chen Sequencer: When importing fbx, if a camera is created, force mapping to be by name matching only so that other nodes in the fbx file do not get mapped onto the newly created camera. #jira UE-59347 Change 4089214 by Max.Chen Sequence Recorder: Add support for looping/rolling takes #jira UESP-658 Change 4089280 by Max.Chen Sequence Recorder: Added support to specify properties from actor classes (camera rig rail - current position on rail) Change 4093824 by Andrew.Rodham Editor: Added option to class pickers to force use of class Display Names Change 4093826 by Andrew.Rodham Removed implicit gamma to linear conversion from EXR writer - This was only implemented for exr data that was supplied as 8 bits per channel (ie. uint8), but there is no way of communicating with the Image Writer API to tell it whether you want it to do that conversion. This code is too low level to be making assumptions about what color-space the data is in. - This ensures that R8G8B8A8 render targets exported as EXR are exported as-is without any modification #jira UESP-545 Change 4093830 by Andrew.Rodham Fixed shutdown crash when destroying a media player that was still playing Change 4093831 by Andrew.Rodham Fixed exception handling in png image wrapper Change 4093833 by Andrew.Rodham Slate: Fixed not being able to set a hyperlink on notifications with unbound attributes that had explicit values set Change 4093841 by Andrew.Rodham Added a utility struct for dealing with editor actor layers from within Blueprints Change 4093867 by Andrew.Rodham Sequencer: Added the ability to implement custom capture protocols for movie scene captures - Converted capture protocol settings and instances to be single UObjects. This unifies the two concepts, and allows for Blueprint implementations. - Removed capture protocol registry since it is no longer required. - Removed FCaptureProtocolID in favor of class discovery at runtime. - Added new module "ImageWriteQueue", responsible for asynchronously managing a queue of image file write operations. - Added new capture protocol for capturing final pixels to EXR (including burn-ins) - Added a new BP function, ExportToDisk, accessible on all UTexture properties for writing texture and render target data to image files - New global BP nodes for querying movie capture status: IsCaptureInProgress, FindCaptureProtocol - Removed Flush On Draw functionality from viewports and frame grabber since it is unnecessary. #jira UESP-545 Change 4094239 by Rex.Hill Export sequence to usd #jira UESP-563 Change 4094393 by Andrew.Rodham Renamed references of 'BufferName' to 'StreamName' for user defined capture protocols Change 4094622 by Patrick.Boutot Add MediaFrameworkUtilitites plugin. Add MediaBundle. An asset that create a MediaPlayer, MediaSource, MediaTexture and MaterialInstance. Add MediaBundleActor. Can auto play a MediaBundle when click & drag in the viewport. Add the Media category in placement mode. Add flag on the MediaPlayer that prevent it from closing when PIE is started or closed. Change 4094673 by Anousack.Kitisa Created widget to display metadata as list view of tags/values. #jira UEENT-1296 Change 4094795 by Simon.Therriault MediaFrameworkUtilities - Adding default media texture for default media bundle material - Changed default material to unlit Change 4094867 by Rex.Hill Usd sequence exporter camera rotation corrected Change 4096426 by JeanLuc.Corenthin - Fixed logic of FLayoutUV::FindCharts to properly extract the list of triangles based on a mesh description. - Fixed logic in FMeshDescriptionOperations::ConverToRawMesh & FMeshDescriptionOperations::ConvertHardEdgesToSmoothGroup to take in account the fact that the arrays are sparse arrays - Fixed logic in FQuadricSimplifierMeshReduction::ReduceMeshDescription which wrongly assumed that number of vertex instances equals three times the number of triangles. - Added early-out in UMeshDescription::ComputePolygonTriangulation when perimeter has 3 vertex indices - Changed version of static mesh and mesh description - Fixed issue with mismatching attribute set when generating LOD meshes #jira UEENT-887, UE-59474, UE-59471 Change 4097101 by Patrick.Boutot Remove warning in PropertyEditorClass when trying to load the "None" class. Change 4097443 by Rex.Hill USD export bake keys Change 4097468 by Patrick.Boutot Edit and initialize the timecode provider of the editor. Change 4097479 by Anousack.Kitisa Added support for commandlet and unattended script modes to Plugin Warden. #jira UE-57333 Change 4097578 by Rex.Hill USD export tweaks Change 4098257 by Simon.Therriault GarbageMatteCaptureComponent - Adding spawned actor tracking to be able to use GarbageMatteActor spawned in editor. Change 4100072 by Jamie.Dale Updated wrapped enums to be more consistent with native Python enums - Wrapped enums now generate values that are instances of the enum type itself, containing a name and value field (like native Python enums). - Wrapped enums are now strongly typed and do not allow implicit conversion from numbers (explicit casting is available, but throws if the value is unknown). - Wrapped enum entries may be compared against numbers (even numbers that don't have valid values) via the == and != operators (like IntEnum in Python). - Wrapped enums may now be iterated (like native Python enums). - Wrapped enums now return a length based on their number of entries (like native Python enums). - ScriptName meta-data can now be used with enum entries. Change 4100255 by Patrick.Boutot [MediaBundle] Modify the base shader to support "failed texture" Change 4103838 by Simon.Therriault MR Garbage Matte Component - Adding FocalDriver interface to be able to poll focal information from outside (cinecamera). Could be updated to be event driven. Change 4115616 by Rex.Hill USD Exporter now exposed to UI Change 4116333 by Simon.Therriault MediaBundle - Updated default media bundle to include lens distortion and chromakeying - Added possibility to spawn material editor for MediaBundle inner material - Fix for inner objects flags preventing asset deletion - Fix for CloseMedia not being called when changing map Lens Distortion - Fix for not being able to generate a Identity lens displacement map Change 4117952 by Rex.Hill Expose OpenEditorForAssets to python Change 4118498 by Rex.Hill Sequencer USD export can now export properties of actors in levels Change 4118515 by Rex.Hill Update sequencer export task comment Change 4118706 by Rex.Hill Sequencer USD updates Change 4118968 by Rex.Hill Sequencer USD export now supports visibility Change 4119702 by Simon.Therriault MediaBundle - Fix crash when changing MediaBundle on Actor multiple times. - Fix crash when Undoing after placing a MediaBundle and pressing Stop then Undo. - Fixed bad reference count in MediaBundle when undo/redo of MediaBundle setting changed on MediaBundleActor - Added PostEditChange after setting MaterialProperty to fix potential propagation. Change 4120060 by Patrick.Boutot Fix typo for TimecodeProviderClassName. Add "Config required restart" Add a button to reapply the CustomTimeStep or TimecodeProvider Change 4122062 by Krzysztof.Narkowicz Fixed movie burnout fixed timestep. Engine didn't use a fixed time step due to a following bug: 1. UAutomatedLevelSequenceCapture::Initialize calls UMovieSceneCapture::Initialize. 2. UMovieSceneCapture::Initialize creates FRealTimeCaptureStrategy and calls CaptureStrategy->OnInitialize(). 3. UAutomatedLevelSequenceCapture::Initialize changes CaptureStrategy to FFixedTimeStepCaptureStrategy, but no one calls CaptureStrategy->OnInitialize(); after that and this function is required to set the fixed time step. 4. Result: movies are burned out with variable time step, causing different inconsistencies between frames, settings and HW configurations. #jira none Change 4122236 by Anousack.Kitisa Made the "Import Into Level..." File menu action follow the EditorImport flag of a SceneImportFactory. #jira UE-57612 #jira UEENT-762 Change 4122588 by Rex.Hill Sequencer Export USD lights now supported Change 4122822 by JeanMichel.Dignard Fix for UV packing FlipX. Don't flip the empty columns at the end since they are always expected to be on the right side. The same was already done for FlipY. #jira UE-56664 Change 4123009 by JeanMichel.Dignard Copied fixes from MeshUtilities LayoutUV to MeshDescription LayoutUV Change 4123517 by JeanLuc.Corenthin Fixed crash when running cooked game crash with asset imported from datasmith #jira UE-60173 Change 4124569 by Patrick.Boutot [AJA] When the CustomTimeStep & TimecodeProvider signal is lost in the editor (not in PIE), try to re-synchronize every second. Change 4126421 by Max.Chen Sequencer: Add the ability to switch the takes of all the selected shots/subsections. #jira UESP-761 Change 4133010 by Simon.Therriault MediaBundle - Made assets in the bundle visible in the content browser (different package per asset) and updated to support duplication correctly - Quick fix for MaterialDynamicInstance garbage matte parameter not going back to default value when cleared. - Added looping option on the bundle Keyer and lens materials - Renamed some parameter groups to Keyer_XX Change 4135728 by Rex.Hill MovieSceneCapture crash fix when iteration on classes defined in python Change 4135732 by Rex.Hill Sequencer scripting: expose get playback range, sub sequence get sequence Change 4135734 by Rex.Hill USD python code refactored Change 4136017 by Matt.Hoffman Fixes FrameNumber nodes tripping an ensure when using them via Blueprints and fixes FrameNumbers & friends not being properly breakable in BP. #jira UE-60188 Change 4147959 by Patrick.Boutot Media Output Architecture. Support 8bits & 10bits color. Capture the buffer as is with the correct pixel format and the corredt target size. Change 4147962 by Patrick.Boutot Remove AjaMediaViewportOutput && AjaMediaViewportOutputImpl. Refactor AjaMediaOutput to extend MediaOutput. Refactor AjaMediaGrameGrabberProtocol to use AjaMediaCapture. Create AjaMediaCapture. Change 4148395 by Rex.Hill USD python code cleanup Change 4152901 by Rex.Hill Fix crash when recompiling blueprint or script class that serializes an object reference manually Change 4152906 by Rex.Hill USD level import/export exposed to UI Change 4152956 by Rex.Hill Rename unreal_usd to usd_unreal to avoid future module name conflicts Change 4153331 by Rex.Hill Simplify USD attribute definitions Change 4155472 by Rex.Hill USD level import now handles cameras and lights Change 4155832 by Patrick.Boutot Fix Packaging for MediaFrameworkUtilities Fix MediaPlayer that crash on close when the engine is closing. Change 4156020 by Mike.Zyracki LIVE LINK Sequencer Recording and Playback #jira UESP-714 #jira UESP-715 Support for Live Link Recording/Playback with Sequencer. Basically if we see a MotionController controlled by a LiveLink Subject or a LiveLink Component on a Actor we create a LiveLinkTrack for it that will record raw sequencer data into. We currently do that at the end of recording but will investigate saving it as we record. For Playback we create a Live Link Subject per recorded track and push up interpolated data per Engine Tick on Evaluate. We need to see if we need to send out raw data but that's complicated due to the fact that sequencer time may not be sequential but random, Moved FLiveLinkTimeFrame to LiveLinkTypes so we can grab raw data. Added functions to LiveLinkClient/Subject to get raw data so we dont' need to do expensive searches. Also changed that code so that we can only save the LiveLinkData when specified. We decided to have the sequencer own saving of the live link data so we explicilty turn on saving when we start to record and then turn if off at the end. Without this it's possible to easily run out of memory while LiveLink records. In order to record LiveLinkComponents under Actors we had to change ActorRecording to record ActorComponents and not jus SceneComponents. Not sure of any drawbacks with this but it seems to work well. Had to make sure we stll keeped attach/parent/child logic when recording. Change 4158488 by Rex.Hill USD scene import/export now uses UsdLux lights Change 4158742 by Rex.Hill USD: Add test for level export and import Change 4161645 by Patrick.Boutot Update MediaRecorder to use the ImageWriteQueue. Add flag in IImageWriteQueue.Enqueue to prevent block if the queue is full. Change 4161651 by Patrick.Boutot Modify MediaCompositing to use an existing MediaPlayer Change 4161657 by Patrick.Boutot Extend the SequenceRecorder to support additional object to record from other plugins. Add SequenceRecorder for MediaPlayer. Will record every frame to disk that the MediaPlayer produce. Change 4162699 by Rex.Hill USD export sequence updates Change 4163138 by Rex.Hill USD sequence export test added Change 4163426 by Mike.Zyracki Fix for Curve Names being kept and AutoSetting Tangents on Live Link Recording Change 4165714 by Patrick.Boutot [MediaCapture] Remove color box that tell the status of the MediaCapture. Add MediaCapture's name and use an image to represent the status. Use a ScrollBox around the "preview" output. Can select any actors. Only show the selectable camera grid when there is more than one camera. Change 4166652 by Rex.Hill Expose SetMobility to scripting Change 4167292 by Mike.Zyracki Make sure we call Finalize Evaluation when closing or deleting the Sequencer. This will make sure TearDown is called on sections which fixes issues with LiveLink Sources not getting deleted and probably also issues with MovieScenePlayers not getting released correctly. Also includes addition to show the SubjectName next to the Sequencer Source in the LiveLinkClient UI. Change 4170578 by Rex.Hill PackageTools exposed to scripting Change 4170619 by Rex.Hill Fix ReversePolygonFacing crash Change 4170621 by Rex.Hill USD mesh import can now be given list of individual meshes Change 4172495 by Matt.Hoffman Fixes some flipped logic in Sequencer Media Track that was preventing it from working as expected. Slightly simplifies the logic on setting up movie data, and ensures that the external movie player has a callback registered so that SeekTo calls will work. Makes it so that you can specify your own sound component with an external media player as a media player can have multiple sound components listening to it. Adds support for flagging the media player to loop to help cue some media sources like EXR to handle loop points better. #jira None Change 4173387 by Jon.Nabozny Bookmark usability and extensibility improvements Change 4173755 by Rex.Hill PackageTools namespace deprecation Change 4181799 by Patrick.Boutot Fix precesion error when importing a camera switcher in sequencer #jira UE-61212 Change 4184435 by Patrick.Boutot Only show the MediaCapture tab spawner in the level editor. Make sure the Material used to draw the render target is GCed. Change 4195803 by Patrick.Boutot Warn user if the AJA CustomTimeStep is used with VSync enabled. Change 4195866 by Patrick.Boutot Remove mention of CharBGR10A2 in AJA. The feature is not yet ready. Change 4196059 by Rex.Hill Fix linux compile due to a .cpp including BookMarkBase.h instead of BookmarkBase.h Change 4196380 by Patrick.Boutot MediaCapture capture the backbuffer when the Viewport don't use an internal texture. #jira UE-61601 Change 4199378 by Patrick.Boutot For MediaFramework, add support for 10bits RGB texture Change 4199380 by Patrick.Boutot [AJA] Add support for 10bits RGB texture in input Fix interlaced format that wasn't using the proper Stride value. Change 4200359 by Jamie.Dale Renamed some "K2_" prefixed functions for Python Change 4203016 by Max.Chen Sequencer: Add movie scene locking/read only. Fixed a few bugs with locked sections - shouldn't be able to create or move keys on locked sections #jira UESP-867 Change 4203018 by Max.Chen Sequencer: Test for movie scene read only before calling modify/transactions. #jira UESP-867 Change 4203622 by Simon.Therriault Bringing Aja MediaOutput MediaMode fix from Release 4.20 Change 4204895 by Rex.Hill Expose several file path functions to scripting Change 4206747 by Rex.Hill USD level import and export updates Change 4206783 by Rex.Hill USD updates Change 4207021 by Rex.Hill USD, fix rotation on level import when there is non-uniform scale Change 4207414 by Rex.Hill USD import static mesh material improvements Change 4209733 by Patrick.Boutot Change the log time to use the current frame Timecode #jira UEENT-1107 Change 4209738 by Patrick.Boutot Option to automatically try to reopen the MediaSource again if an error is detected Change 4210385 by Max.Chen Sequencer: Fix CurrentShot LocalTime computation by using sequence time in playback resolution to compute the local shot time. Also, fixed the burnin asset so that CurrentShotLocalTime is hooked up to ShotFrame instead of MasterTime. This fixes a bug where the burnin's {ShotFrame} is not reporting the local shot frame number. #jira UE-61728 Change 4219824 by Patrick.Boutot Use the correct EditorCondition for property MaxNumAncillaryFrameBuffe Change 4220706 by Louise.Rasmussen Sequencer: Syncronizes Sections using Source Timecode Relative to the first Selected Section #JIRA UESP-826 Change 4220708 by Louise.Rasmussen Sequencer: Adds SourceTimecode option to the Render Movie Settings Burn In #JIRA UESP-826 Change 4226970 by Patrick.Boutot Add a Timecode widget, TimecodeProvider widget and a TimecodeProvider Tab Change 4227333 by Rex.Hill USD Sequencer export now supports deltas Change 4227455 by Matt.Hoffman Adds support to the Audio Mixer Submix to pause and resume a recording. #jira UESEQ-77 Change 4230963 by Patrick.Boutot Make the namespace an import option Change 4234208 by Jon.Nabozny Fixed crash when 5 or more LiveLink sources were connected at the same time Change 4234273 by Jon.Nabozny Add methods in FApp to get the current Timecode FrameRate. Change 4237170 by Simon.Therriault MediaCapture Fix for MediaCapture panel not working in PIE Change 4243758 by Andrew.Rodham It's now possible to resolve pixel data from a render target whose texture resource is still pending creation Change 4244790 by Matt.Hoffman This adds experimental support to Sequencer's Render to Movie for exporting audio via rendering a second pass. This requires the new audio mixer (launch editor with "-audiomixer") and currently supports exporting to .wav. The second pass disables rendering in the Viewport and disables capturing frames during this pass which removes the overhead caused by rendering the scene. Complex scenes still evaluate the sequence which may impact performance in complex situations (such as the Fortnite Launch Trailer). Current Limitations: Requires the new audio mixer ("-audiomixer") The second pass must acheive real time framerates. The audio engine is only built to handle real time situations (due to the high precision needed, gotten via the platform clock) so any drops in engine framerate during the second pass will cause a desync of the audio (as there will be more samples captured than frames of video). The editor has significant overhead which often prevents achieving consistent real-time rates. Using "Capture in New Process" alleviates this issue, even without closing the Editor. Audio has been enabled for both image capture and audio capture passes, which means stuttery audio now plays back during image capture. Attempts to alleviate this issue ended up conflicting with some editor code that forces the audio multiplier to 1.0 each Tick(), so audio has to play on both image and audio passes. Forces background audio (otherwise your output audio wav will be blank!) when app is not in focus, though users should leave the app in focus for best performance. #jira UESEQ-77, UESP-669 Change 4246443 by Simon.Tourangeau Remove Beta flag from nDisplay plugin #jira UEENT-1716 Change 4246480 by Simon.Tourangeau Fix nDisplay plugin icon #jira UEENT-1715 Change 4246571 by Simon.Tourangeau Merging Lauren's VR Editor fixes 4085915 Gamma correction fixes for VR Mode Content Browser icons and camera previews 4087955 Adding a third looping option to the Sequencer Radial Menu. Selecting the Looping option now cycles through No Looping > Loop All > Loop Range 4089914 Adding set start/end range buttons to radial menu 4090502 Fixing sequencer looping not being set correctly 4092824 Cameras are now visible in VR Mode - interim implementation until Game Mode works entirely 4095161 Fix for opening a sequence blocking level editor tab drag and drop 4096999 Making a VR Edit show flags mode that is similar to Game Mode but without the Game flag set to true, does hide billboards. Camera hide/show behavior is now correct. 4097286 Placing cameras now only summons the preview panel once you release 4100941 New spawn location for camera preview window (in front and to the side, on whichever side matches your UI hand) 4102732 Hiding VR editor elements from camera preview 4103378 Added camera burnin text on preview windows as well. 4103466 Fixes for camera text 4103779 Fix for the actor previews not unpinning when entering VR mode. 4105722 Adding support for multiple viewport previews in VR mode, and not creating a new viewport interaction if one already exists when getting it. 4106982 Any dockable window can now be placed in the world. 4107298 Fix for crash when closing multiple camera previews 4107426 Fix for crash when connecting node with no texture set 4136343 UI windows docked "to the world" no longer scale with you and stay the size they are docked at. 4136345 Settings for tweaking VR mode movement 4147473 Fix for controllers not showing up 4147734 Sequencer scrubbing will now pause when removing your thumb from a Vive touchpad 4171489 Added external UI panel support to VREditor module. Created an example camera-adjusting UI 4186392 Second fix for sequencer scrubbing on the radial menu Change 4247984 by Jamie.Dale Fixed potential memory corruption caused by Python glue code generation #jira UE-62397 Change 4255471 by Anousack.Kitisa Added functionalities to add/insert/remove UV channel from a StaticMesh accessible through the StaticMeshEditor and scripting. #jira UEENT-1592 #jira UEENT-1597 #jira UEENT-1660 Change 4256323 by Anousack.Kitisa Added Polygon Selection Mode by smoothing group in the MeshEditor. #jira UEENT-1594 Change 4258012 by Homam.Bahnassi Extending UVEdit material function to support mirroring. #jira UE-57306 Change 4258231 by Jamie.Dale Fixed GetHostName failing to convert UTF-8 data correctly Change 4258579 by Jamie.Dale Ensure that packages re-created after deleting their only asset are marked as fully loaded Change 4258652 by Jamie.Dale Added script exposed method to convert an Unreal relative path to absolute Change 4259124 by Patrick.Boutot For MediaBundle, show or hide the failed texture on console. #jira UE-61672 Change 4259264 by Jamie.Dale Show an error if trying to use ExecutePythonScript without Python enabled #jira UE-62318 Change 4259451 by Jamie.Dale No longer use stale subtitles in dialogue waves #jira UE-61500 Change 4259511 by Jamie.Dale Fix crash when passing None as the class for find/load_asset #jira UE-62130 Change 4259542 by Patrick.Boutot Can select the TimecodeSynchronizer from the Toolbar menu. Add option to show it in the toolbar. Can be defaulted by user/machine. Change 4259582 by Patrick.Boutot Hide Edit & Paste from PropertyMenuAssetPicker Change 4260760 by Max.Chen Sequencer: Fix dereferencing null pointer - CameraNode Change 4260895 by Jamie.Dale Changing localization target settings now updates the gather INI files immediately Change 4262166 by Patrick.Boutot Add support for MediaSourceProxy and MediaOutputProxy. Change 4262535 by Andrew.Rodham Sequencer: Added a method for user-defined capture protocols to resolve a buffer and pass it directly to a bound delegate handler Originating source CL#4261391 Change 4262669 by Patrick.Boutot Add MediaProfile. It let the user select their media sources and media outputs by machine by user. Change 4264577 by Patrick.Boutot Change the type of FMediaFrameworkCaptureCameraViewportCameraOutputInfo.LockedCameraActors to LazyObject to enable cross level reference. #jira UE-62438 Include dependence to settings Change 4265750 by JeanLuc.Corenthin Fix array's size issues with MeshDescription utility functions #jira UEENT-1574 Change 4268181 by Patrick.Boutot Mark LockedCameraActors as deprecated. [CL 4279869 by JeanMichel Dignard in Main branch]
2018-08-13 12:29:41 -04:00
#include "Elements/Interfaces/TypedElementWorldInterface.h"
/*------------------------------------------------------------------------------
FEditorModeTools.
The master class that handles tracking of the current mode.
------------------------------------------------------------------------------*/
FEditorModeTools::FEditorModeTools()
: PivotShown(false)
, Snapping(false)
, SnappedActor(false)
, CachedLocation(ForceInitToZero)
, PivotLocation(ForceInitToZero)
, SnappedLocation(ForceInitToZero)
, GridBase(ForceInitToZero)
, TranslateRotateXAxisAngle(0.0f)
, TranslateRotate2DAngle(0.0f)
, DefaultModeIDs()
, WidgetMode(UE::Widget::WM_None)
, OverrideWidgetMode(UE::Widget::WM_None)
, bShowWidget(true)
, bHideViewportUI(false)
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3050373) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2973846 on 2016/05/11 by Jamie.Dale Exposed FConfigValue::ExpandValue and added FConfigValue::CollapseValue These are both static and can be used to expand or collapse the macros used in our config files (mostly when dealing with paths), in code that has to deal with the config system, but isn't internal to the config system (mostly things that deal with default configs outside of UObjects). The old non-static version of FConfigValue::ExpandValue is now FConfigValue::ExpandValueInternal, which just calls FConfigValue::ExpandValue on SavedValue and ExpandedValue. This also changes some code that was using FString.Replace to use FString.ReplaceInline. This reduces allocations, and also allows us to avoid another string comparison to see whether the strings are identical (as ReplaceInline returns the number of replacements that were made). Change 2973847 on 2016/05/11 by Jamie.Dale Changing the loading phase in the localization dashboard now writes to the default config #jira UE-30482 Change 2973866 on 2016/05/11 by Jamie.Dale Deprecated some functions that were taking an unused position. These unused parameters caused confusion and lead to UE-30276. The old versions have been deprecated, and new versions without those parameters have been added. Existing code has been updated to call the non-deprecated version. - FViewportFrame::ResizeFrame - FSceneViewport::ResizeFrame - FSceneViewport::ResizeViewport Change 2974505 on 2016/05/11 by Nick.Darnell PR #2309: Added Combobox styling (Contributed by Chris528) Change 2975241 on 2016/05/12 by Richard.TalbotWatkin Made sRGB Preview the default in the Color Picker. Change 2975390 on 2016/05/12 by Jamie.Dale Made sure that en-US-POSIX is in our list of available cultures Some people use machine tags as their native text, so they need an invariant machine like culture to use as their native culture. en-US-POSIX is perfect for this. Change 2975411 on 2016/05/12 by Jamie.Dale PR #2237: Fixed formatting of Error_TooManyMaterials message (Contributed by pfranz) Change 2975559 on 2016/05/12 by Jamie.Dale Dialogue Wave VO direction can now be localized This is gathered as editor-only data. #jira UE-28715 Change 2975710 on 2016/05/12 by Jamie.Dale Implemented UObject::IsLocalizedResource to test whether the object belongs to a localized package Change 2975728 on 2016/05/12 by Jamie.Dale Exported dialogue scripts now include a column that says whether they have a localized recording of that line of dialogue #jira UETOOL-794 Change 2975763 on 2016/05/12 by Jamie.Dale We no longer warn if asked to check out a UNC path when running the GatherText commandlets #jira UE-25833 Change 2975766 on 2016/05/12 by Jamie.Dale Resolved some loc key conflicts #jira UE-25833 Change 2975774 on 2016/05/12 by Jamie.Dale PO files now only contain a single entry in the case of a native translation being exported They used to contain the original entry, as well as an entry for the native translation, however the original entry would never be used. This change also cleans up some directory walking code that was looking for archive files, and replaces it with code to load the specific archive file. Change 2975776 on 2016/05/12 by Jamie.Dale Downgraded a PO file import warning that isn't really an issue #jira UE-25833 Change 2976675 on 2016/05/13 by Jamie.Dale Fixed some more fallout from changes to use the window position when changing the game viewport mode - FSceneViewport::ResizeFrame: - Fixed the HMD monitor info setting the wrong variables. - Fixed SetWindowMode and ResizeViewport potentially being passed two different modes. - We now only move the window if we need to (this avoids issues with WindowedFullscreen window positioning). - FWindowsWindow::MoveWindowTo: - Now treats the screen space position it's given as relative to the top-left of the window, rather than the top-left of the windows' client area. - FWindowsApplication: - WM_MOVE was passing a screen space position relative to the top-left of the windows' client area, rather than its window area like Slate expected. #jira UE-30276 #jira UE-30677 Change 2976804 on 2016/05/13 by Jamie.Dale Slight optimization to FICUInternationalization::FindOrMakeCulture to avoid hitting the filesystem until we know we need to Change 2976967 on 2016/05/13 by Alexis.Matte #jira UE-30687 Cannot import a skeletal mesh scale to zero Change 2977042 on 2016/05/13 by Alexis.Matte #jira UE-29952 log a warning if fbx exceed the maximum number of LOD. #2326 Github PR #code review matt.kuhlenschmidt Change 2977074 on 2016/05/13 by Jamie.Dale Follow up to CL# 2976804 to avoid a potential change in behavior Change 2977076 on 2016/05/13 by Jamie.Dale Some tidy up and optimization to SCulturePicker Change 2977327 on 2016/05/13 by Alex.Delesky Now deleting the Redirector package on Redirector Fix Up rather than simply removing it from the Content Browser. #jira UE-30423 Change 2977499 on 2016/05/13 by Alexis.Matte #jira UE-29475 Enable UStruct child property to be favorite Change 2978415 on 2016/05/16 by Jamie.Dale We now pre-load all the culture data when starting the editor to avoid a UI hitch later Change 2978517 on 2016/05/16 by Alex.Delesky #jira UE-29406 Creating a static mesh from a geometry brush and then attempting to reimport the mesh will no longer crash the editor. Change 2978518 on 2016/05/16 by Alex.Delesky #jira UE-28210 The FBX Importer no longer runs cleanup upon failing to import an FBX file and won't crash the engine the next time an FBX is imported within the same editor session. Change 2978556 on 2016/05/16 by Alexis.Matte Fbx tests automation #jira UE-29635 Change 2978797 on 2016/05/16 by Alexis.Matte #jira UE-30774 - prevent baking the pivot if we transform the vertex with the absolute transform. - Also make sure we set the identity for the Max puivot in case we dont bake the pivot and we dont transform the vertex with the absolute transform. #code review matt.kuhlenschmidt Change 2978965 on 2016/05/16 by Alexis.Matte FBX importer, fix the socket rotation. #jira UE-30094 Change 2980613 on 2016/05/17 by Jamie.Dale Moved the XLOC UAT localization provider to be publicly accessible Change 2980614 on 2016/05/17 by Jamie.Dale Reference update for project move Change 2980633 on 2016/05/17 by Jamie.Dale Made the culture mapping used between XLOC and UE4 configurable on a per-project basis You can now override GetEpicCultureToXLocLanguageId in your custom localization provider in order to change the default mappings. Change 2980836 on 2016/05/17 by Jamie.Dale Added -LocalizationSteps flag to allow you to only run a subset of the UAT "Localise" command You can pass any of the following steps: Download, Gather, Import, Export, Compile, GenerateReports, Upload Change 2982700 on 2016/05/18 by Jamie.Dale Fixed the loc package gather potentially adding the same source location multiple times Change 2983906 on 2016/05/19 by Jamie.Dale Slight cleanup of the way we register localization gatherer callbacks Change 2984356 on 2016/05/19 by Chris.Wood Removed temporary analytics API change needed for earlier hot fix [UE-31005] - Undo temp Hardware Survey API change from 4.10 - CL 2782817 Change 2986679 on 2016/05/23 by Alex.Delesky #jira UE-24747 - Importing FBX files that contain meshes that do not have non-degenerate triangles will no longer crash the editor on import, and will warn the user that the meshes are bad. Change 2986798 on 2016/05/23 by Alex.Delesky #jira UE-31136 - Chord Input fields will no longer display the blinking edit cursor if they do not have focus. Change 2987106 on 2016/05/23 by Alexis.Matte Fbx importer, fail import must not create a package in the content browser #jira UE-31154 Change 2987563 on 2016/05/23 by Alex.Delesky #jira UE-30988 - Changed the default window mode when launching a game from the .uproject file to Windowed Change 2987564 on 2016/05/23 by Alex.Delesky #jira UE-28856 - Fixed a crash that could potentially occur when starting up PIE while dragging objects like widgets in the editor. Change 2988321 on 2016/05/24 by Jamie.Dale Added a way to backup and restore the selection state of a level (its actors and components) in a way that can be reapplied even if the level is reloaded Change 2988708 on 2016/05/24 by Jamie.Dale Fix for crash when missing the fallback/last resort font Change 2988782 on 2016/05/24 by Jamie.Dale Added the ability to version each localized string individually when loaded into the localization manager The single 32-bit global history has now been replaced with two 16-bit histories. One is global, and is updated whenever the culture is changed (or a LocRes file is loaded), and the other is local to each string, and is updated if the display string is changed outside of a culture update (to handle cases where the display string is changed, but the key is preserved). Changing the global history will reset all local histories. Because of the change from an int32 to a uint16, 0, rather than INDEX_NONE, is now considered the "unset" value for a history. Change 2988856 on 2016/05/24 by Jamie.Dale Added a way to get the package(s) of the object(s) being edited by a property panel Typically the package is just the outermost of the object being edited, however there are some cases where this may not be the case: - UMG widgets edit a transient copy of the real data, so we use the SetObjectPackageOverrides to override the package these objects should use to be the real asset package. - Structs (UDS, Data Table, etc) don't have a way to get to their package, so you have to specify it on their FStructOnScope instance (see FStructOnScope::GetPackage and FStructOnScope::SetPackage). This has been hooked up for the UDS and Data Table editors. Change 2988955 on 2016/05/24 by Alex.Delesky #jira UE-30645 - Adding in support for splash images to support .png and .jpg files. In general, this adds multi-extension support for external image references and external image picker modules. Git Request #2376 Change 2989418 on 2016/05/25 by Jamie.Dale Added a way to count text references within a package that match the given search criteria This can be used to detect whether a localization ID is unique within its package. The following search modes are available: - MatchId: Detect a reference if it matches the given ID (ignoring the source text) - MatchSource: Detect a reference if it matches the given ID and source string - MismatchSource: Detect a reference if it matches the given ID but has a different source string Change 2989436 on 2016/05/25 by Jamie.Dale Added "root-level" meta-data (meta-data associated with the package rather than an object within it) Change 2989471 on 2016/05/25 by Alexis.Matte Fbx scene importer, fix naming clash when creating package we now also look in memory to find existing package not just on disk Change 2989639 on 2016/05/25 by Jamie.Dale Added static version of FName::IsValidXName This allows you to verify name-like strings without having to convert them to an FName (and thus add them to the name table) Change 2989716 on 2016/05/25 by Alex.Delesky #jira UE-30828 - The Standalone Session Frontend will now render the names of automation tests correctly instead of as solid white blocks. Change 2990100 on 2016/05/25 by Alexis.Matte Fix crash when reimporting a mesh that originaly exceed the maximum number of LOD #jira UE-30907 Change 2991442 on 2016/05/26 by Bob.Tellez #UE4 Fix components in world not rendering when saved without a physics scene. Change 2991736 on 2016/05/26 by Bob.Tellez #UE4 Fix duplicated worlds not being initialized when inactive. Re-enabled duplication of worlds in the content browser. Change 2991942 on 2016/05/26 by Alex.Delesky #jira UE-31012 - Setting a Decimal Grid Interval value to 0 and using it will no longer crash the editor or cause an editor crash on startup. Change 2991994 on 2016/05/26 by Alex.Delesky #jira UE-31177 - Attempting to export an entire level as an object file and choosing to export all materials as images will no longer crash the editor. Change 2994037 on 2016/05/30 by Alexis.Matte Add Fbx Automation Tests - static mesh import reimport (sections and materials) - skeletal mesh import and reimport (sections and materials also bone position) - static/skeletal mesh LODs (import, add, reimport) - rigid mesh (import, reimport) Change 2994253 on 2016/05/31 by Alexis.Matte Mikkt crash when computing the normals if there is more vertex then the number of wedge #jira UE-29143 Change 2994260 on 2016/05/31 by Alexis.Matte Make sure we cannot modify fbx test plan when json file is read only Change 2994431 on 2016/05/31 by Alex.Delesky #jira UE-21900 - The scale widget should now render all axes when using an orthographic camera. Change 2994432 on 2016/05/31 by Alex.Delesky #jira UE-31328 - New objects dragged into the scene will now comply with the Surface Snapping option in the viewport, and will not use the Surface Offset if snapping is disabled. Change 2994537 on 2016/05/31 by Richard.TalbotWatkin Fixed potential crash in the Mesh Paint tool when non-transactable actors are in the SelectedActors list following a Redo. #jira UE-31172 - Crash related to Vertex Painting - MeshPaint!CastChecked<AActor,UObject>() Change 2994983 on 2016/05/31 by Richard.TalbotWatkin Added some guard code to protect against a crash when editing geometry. Repro currently unknown, ensure was added in order to try to get more information. #jira UE-30820 - UT EDITOR: CRASH: Crash in Public Release CL#2973693 Change 2995022 on 2016/05/31 by Jamie.Dale PR #2428: Added missing END_OPTIMIZATION macro to SOutputLog (Contributed by MatzeOGH) Change 2995027 on 2016/05/31 by Jamie.Dale PR #2409: fixed a small typo in GraphEditor.h (Contributed by MatzeOGH) Change 2995963 on 2016/06/01 by Alex.Delesky #jira UE-31317 - The transform gizmo will no longer block the placement of a material onto a mesh. Change 2997002 on 2016/06/01 by Cody.Albert Fix to ensure ActiveTopLevelWindow is properly set after a window is destroyed #jira UE-31448 Change 2998013 on 2016/06/02 by Alexis.Matte Prevent static mesh materials array to grow when using the reset button in the staticmesh editor. #jira UE-12931 Change 2998370 on 2016/06/02 by Alexis.Matte Fbx Automation, add some import LOD test in case the options are not ok Change 2999709 on 2016/06/03 by Jamie.Dale Fixed some issues with gathering text from BP bytecode Bytecode in Blueprints is very volatile, and can only be safely gathered after it's been compiled (which is not guaranteed to have happened by the time we save the package). This change avoids caching any assets that contain scripts (non-data-only Blueprints), and instead will always load them to perform a gather (which will ensure the Blueprint bytecode is up-to-date due to compile-on-load). Change 2999755 on 2016/06/03 by Richard.TalbotWatkin Fixes to Spline Mesh collision generation. - Fixed a serious issue with DDC ID generation, in that the static mesh wasn't forming a part of the key, hence any two spline meshes with identical properties but different meshes would yield the same cache entry. - Fixed how different collision boxes are transformed when rebuilding physics meshes. Convex collision transforms are now correctly taken into account, and spherical and capsule collision now gets correctly translated when a scale is applied to the start or end of the spline mesh. - Optimized physics rebuilding. A new BodySetup object is now only created when needed, otherwise it is reused. #jira UE-31361 - Splines handle box collision and collision from other shapes differently Change 2999973 on 2016/06/03 by Jamie.Dale We now skip bulk data when detecting text references #jira UE-31596 Change 3000159 on 2016/06/03 by Alex.Delesky #jira UE-30244 - Added a safeguard against a potential crash when editing BSP brushes before placing another BSP brush into the level. Change 3001814 on 2016/06/06 by Alexis.Matte Make sure the staticmesh Materials list dont grow when we reimport or override a LOD other then the base mesh. Add a fbx test to make sure the problem is flag by automation test #jira UE-1394 Change 3001820 on 2016/06/06 by Alex.Delesky #jira UE-19079 - Widget Blueprints should no longer crash when dragging widgets from one blueprint to a second and then compiling the second blueprint. Change 3001915 on 2016/06/06 by Alexis.Matte Make sure we check attribute type before checking attribute unique ID in case of unique id clash. #jira UE-31214 Change 3002026 on 2016/06/06 by Alexis.Matte Importing morph target should not import textures like materials since the base mesh already import thoses. UDN Question: https://udn.unrealengine.com/questions/293973/does-importing-an-fbx-with-morph-targets-cause-a-m.html Change 3002623 on 2016/06/06 by Jamie.Dale Fixing more loc conflicts Change 3002883 on 2016/06/06 by Jamie.Dale Adding retry when dealing with OneSky This is attempting to compensate for some timeouts with OneSky, which were also noticed when testing UE-31413 Change 3003004 on 2016/06/06 by Trung.Le #jira UE-13101 - Make "Description" field for a BluePrint Function multiline Change 3003859 on 2016/06/07 by Alexis.Matte #jira UE-30436 Refresh the property editor when a array element is added, remove, insert, delete and the property is favorite Change 3004132 on 2016/06/07 by Jamie.Dale Fixed a hash conflict that could occur when both the case-sensitive and case-insensitive FName hashes were identical This resulted in the case-preserving FName being added to the head of the linked list for the bucket, which caused any subsequent name lookups to return that name index for the comparison index (since it matched an insensitive string comparison), rather than the name index of the first case-variant of that name that was added to the bucket. This change has new entries be inserted at the tail of the list, which ensures that enumeration for a case-insensitive name will always find the same entry in the bucket (the first one that was ever added) and will continue to compare correctly. Change 3004286 on 2016/06/07 by Jamie.Dale Ensured that assignments that publish new names to the bucket are atomic Change 3004310 on 2016/06/07 by Jamie.Dale Ensured FName internal hashes are returned as uint16 Change 3004381 on 2016/06/07 by Jamie.Dale FAsyncPackage now creates the meta-data before processing the remaining exports This matches the behavior of FLinkerLoad::LoadAllObjects, as other objects may depend on the meta-data being loaded before them. Change 3004765 on 2016/06/07 by Alex.Delesky #jira UE-31498 - Material thumbnails will now render the full sphere rather than an extreme close-up of the material. Change 3005754 on 2016/06/08 by Trung.Le Allow whitespace for meta class names #jira UE-31668 Change 3005755 on 2016/06/08 by Stephan.Jiang UMGSequencePlayer implements GetPlaybackContext() and return UserWidget->GetWorld() if it's valid #jira UE-31299 Change 3006512 on 2016/06/08 by Alex.Delesky #jira UE-31572 - The "All Classes" tab in the Modes panel will now refresh when a placeable asset is created, renamed, or deleted without needed to navigate away from the tab first. Change 3006760 on 2016/06/08 by Jamie.Dale Added support for stable localization keys This feature adds support for preserving the existing key of an FText property when editing the source string, providing that it is the only reference to that string within the package. A side effect of this is that you're now able to specify custom keys for FText properties since we can now verify that the custom key won't cause an identity conflict. In order to limit the search domain for uniqueness to a single package, we've added the concept of a "localization namespace" to packages (stored in the meta-data). Each package is given a unique namespace, which is appended to the user-defined namespace of the text when it is modified, saved, or duplicated. This package namespace ensures that the same user-defined namespace and key may be used in different packages without causing an identity conflict. In order to access the package namespace within the Core code that hosts FText (which doesn't know about UPackage), FArchive now provides a GetLocalizationNamespace function to access the package namespace within the Core code, and a SetLocalizationNamespace function for CoreUObject and Engine code to pass down the package namespace from their packages. If you have an archive that handles duplicating objects into a different package, or duplicating packages themselves, then you'll want to make sure it's setting the package namespace correctly. FObjectReader and FObjectWriter have been updated to do this, and serve as a good example. FDuplicateDataReader (used by StaticDuplicateObject), and FCopyPropertiesArchiveObjectWriter (used when compiling Blueprints) have also been updated to set the package namespace, as they both handle copying objects between packages. TextNamespaceUtil provides a suite of functions for getting at (or setting) the namespace for a package. Keys will start to stabilize naturally over time once this feature is enabled, however the StabilizeLocalizationKeys commandlet may also be used to stabilize all the keys for a game at once. Running it for a game under source control would look something like this: MyGame -run=StabilizeLocalizationKeys -IncludeGame -NativeCulture=en -EnableSCC This commandlet also updates your localization archives to use the new text identities, however you'll still need to run a localization gather and localization compile before the updated translations will be available for your game. Note: This feature is currently disabled via the USE_STABLE_LOCALIZATION_KEYS define. It will be enabled at a later date. #jira UETOOL-796 Change 3007501 on 2016/06/09 by Trung.Le #jira UE-31722 Fix MaterialFunctions crash when editing text in Libraries Category Text field. Solution: Removed PredEdit and PostEdit from IEditableTextProperty, its derived types and other code that was calling them. The new SetText method already calls NotifyPreChange and NotifyPostChange to properly create/destroy ScopedTransaction. Change 3007524 on 2016/06/09 by Jamie.Dale Added some additional checks to avoid re-keying text when duplicating for PIE Change 3007564 on 2016/06/09 by Jamie.Dale PR #2401: DataTable import/export improvements (Contributed by bozaro) Change 3007653 on 2016/06/09 by Jamie.Dale PR #2459: Generate JSON for nested structs in DataTable rows (Contributed by jorgenpt) Change 3008019 on 2016/06/09 by Jamie.Dale Updated structs to export as JSON when displaying them in the Data Table editor This produces much cleaner results than using the text export method (which will use the internal names for user defined structs). This also cleans up the FDataTableExporterCSV and FDataTableExporterJSON APIs so that you don't need to pass in a UDataTable if you're not going to use it. #jira UE-29958 Change 3008052 on 2016/06/09 by Jamie.Dale Fixed bug importing an array inside a JSON Data Table This was noticed when testing a GitHub PR, but the JSON importer for a Data Table was appending the new data to the array rather than replacing it. It now clears the array prior to importing. Change 3008875 on 2016/06/10 by Jamie.Dale PR #2406: Git plugin: Fix for Git diff not working in UE 4.12 (and master) (Contributed by SRombauts) Change 3008879 on 2016/06/10 by Jamie.Dale PR #2484: Git Plugin: fix the Submit To Source Control menu broken by new "migrate" support in 4.12 (and master) (Contributed by SRombauts) Change 3008990 on 2016/06/10 by Alex.Delesky #jira UE-15699 - Submitting to source control via the editor should now check for current asset status before prompting the user to submit their changes. This should prevent files that had been previously deleted from being readded to source. Change 3008991 on 2016/06/10 by Alex.Delesky #jira UE-31688 - The Output Log will now automatically anchor to the bottom of the scroll bar when the user scrolls all the way down using the mouse wheel or clicking and dragging the content window. Change 3010856 on 2016/06/13 by Alexis.Matte #jira UE-31713 Fix a serialize issue for skeletal mesh with apex cloth. Change 3011736 on 2016/06/13 by Jamie.Dale Adding missing plurals.res file This is needed to get plural form information from ICU. #jira UETOOL-875 Change 3012387 on 2016/06/14 by Richard.TalbotWatkin Disabled the Paste context menu action if the property is marked as EditConst. #jira UE-27469 - User is able to paste values into a read-only setting Change 3012971 on 2016/06/14 by Stephan.Jiang Editor Preferences->Widget Designer now have two options to toggle the visibilities of widgets created from Engine content folder and Developers folder. By default, visibility for engine content is off and developers is on #jira UE-31657 Change 3013111 on 2016/06/14 by Jamie.Dale Unified the number, percentage, and currency formatting between the ICU and Legacy text implementations Removed all the old legacy number formatting code, and removed the calls to the ICU specific number formatting. Everything is now using FastDecimalFormat as this will allow some optimizations later when formatting numbers in FText::Format. Change 3015438 on 2016/06/15 by Cody.Albert Fixing ScrollBy function to calculate new scroll offset based on the current scroll offset and not the current desired scroll offset (which may not be the same during an animation) #jira UE-32082 Change 3016782 on 2016/06/16 by Richard.TalbotWatkin Corrected ConvexHull2D so that it returns an empty set of indices when passed an empty points array. Change 3016949 on 2016/06/16 by Jamie.Dale Added FastDecimalFormat overloads to write into an existing string This helps avoid an extra allocation if you already have a pre-sized string that you're writing the number to (as is the case in FText::Format). Change 3016952 on 2016/06/16 by Jamie.Dale Changed an Add for an Emplace to avoid moving a temporary Change 3016954 on 2016/06/16 by Jamie.Dale Updated some FText code to avoid creating temporary objects just to move data through a hierarchy There was some code in FText and its internal types that were using pass-by-value as a marshaller to move data through a hierarchy. This resulted in temporary objects being created and destroyed to facilitate the movement of data. This change has all the internal FText code (private FText constructors, internal text data, and internal text history) take its movable types as an r-value reference. This avoids the temporary objects, but also makes it impossible to accidentally copy a construction argument when you meant to move it (you can still copy, but the copy must be explicit). In addition to this, FText::FromString and FText::AsCultureInvariant now have two overloads, const FString& and FString&&, to avoid them creating a temporary when you're invoking a move. FText::ChangeKey now takes its parameters by const& as their data wasn't being moved further down the chain, so the by-value copy was wasteful. Change 3019021 on 2016/06/19 by Richard.TalbotWatkin When deleting a brush, ensure geometry is rebuilt before updating the details panel according to the selection change, so that the old Surface Properties don't continue to appear. #jira UE-8966 - Surface Properties of a BSP remain in the details panel after the BSP is deleted Change 3019022 on 2016/06/19 by Richard.TalbotWatkin Fixed issue where the Surface Properties category in the Details panel doesn't appear after selecting a surface on a Brush which has just been placed. #jira UE-31916 - Selecting an edge of BSP geometry then a face does not show Surface Properties while in Place mode #jira UE-31915 - Selecting BSP face does not show Surface Properties in Details Change 3019025 on 2016/06/19 by Richard.TalbotWatkin Fixed issue which was stopping 'Cancel' from correctly returning a 'Cancelled' result during P4 asynchronous ops. #jira UE-28595 - Submit to Source Control: "Checking for assets to check in..." cancel button does not cancel operation, editor becomes unresponsive Change 3020050 on 2016/06/20 by Cody.Albert Changed window centering logic to correctly work when monitor 1 isn't set to primary monitor. #jira UE-32173 Change 3021145 on 2016/06/21 by Jamie.Dale Added support for text format argument modifiers These can be used to mutate a format argument before appending it to the resultant formatted string, and are applied to the preceding argument via a pipe, eg) "{Arg}|plural(one=is,other=are)". We provide a few of these by default: - |plural(key=val,...) - |ordinal(key=val,...) Provides support for cardinal and ordinal plural forms, where key may be any of "one", "two", "few", "many", or "other", and val may be any optionally quoted string. - |gender(masculine,feminine,[neuter]) Provides support for gender forms, where the 0th item is the masculine version, the 1st item is the feminine version, and the 2nd item is an optional neuter version. The values may be any optionally quoted string. - |hpp(consonant,vowel) Provides support for Hangul post-positions, where the 0th item is the consonant suffix, and the 1st item is the verb suffix. The values may be any optionally quoted string. Major changes: - Exposed the ICU plural form handling via FCulture::GetPluralForm. - Updated the FText formatting code to use an expression evaluator (to support the more complex expressions needed for the argument modifiers). - Added FTextFormat to store a pre-compiled format expression. Re-using one of these if you're performing a lot of formats with the same FText will increase your performance (as around half of the FText::Format cost can be compilation, via an implicit construction of FTextFormat). - Updated the FText::Format(...) family of functions to take their format string as FTextFormat, and take their arguments as FFormatArgumentValue. This allows us access to the real numeric types within the format code, but doesn't break the existing API as these types are implicitly constructible from the old parameters (FText). - Converted text history to store their format string as an FTextFormat in-case they need to perform a re-format (this is still saved as an FText). Breaking changes: - The rules for the escape token have been simplified, and there is an incredibly unlikely chance that this may affect some text: - The ` character will now only escape a valid character (producing only the escaped character in the final string), or it will be ignored and inserted as a literal character, eg) "`{F" -> "{F", and "`F" -> "`F". - Previously it would also remove the escape character when it followed { or }, eg) "{`" -> "{" and "}`" -> "}", rather than "{`" and "}`" like you might expect. It would also have previously removed a ` at the end of a string due to a parser bug. Change 3021156 on 2016/06/21 by Jamie.Dale Updated LinuxToolChain to use the same output delegate for all of its actions when cross-compiling This avoids the compile and link actions being split into different batches. Change 3021280 on 2016/06/21 by Richard.TalbotWatkin Fixed bug in parsing LOD in UStaticMeshComponent::ImportCustomProperties (thanks to Aurelien Cordonnier). #jira UE-31937 - UDN code submission for UStaticMeshComponent::ImportCustomProperties parsing bug Change 3022949 on 2016/06/22 by Alex.Delesky #jira UE-31944 - Upgrading Subversion binaries to version 1.9.4. Change 3023092 on 2016/06/22 by Jamie.Dale Downgraded some checks to ensures and added an early out #jira UE-32009 Change 3023154 on 2016/06/22 by Jamie.Dale Ported over CL# 3018771 to the UE automation This fixes an issue where a downloaded PO file smaller than the one already on disk leaving a mix of both files on disk (rather than the existing file on disk being truncated). Change 3023579 on 2016/06/22 by Jamie.Dale Expanded the Blueprint FormatText node to support numeric and gender types These are needed to correctly support the new plural and gender forms that can be used in format strings, as these require actual numeric/enum data to be passed into the format arguments, rather than pre-formatted text. Major changes: - The FormatText node for Blueprints now uses PC_Wildcard as its pin type for format arguments instead of PC_Text. - Any existing literal text argument data in the pin is hoisted out into a "Make Literal Text" node which is then connected to the pin. - FFormatArgumentData has been updated to be variant on the data needed by Blueprints. It's now a less comprehensive and non-unioned version of FFormatArgumentValue. - The version of FText::Format taking FFormatArgumentData has been deprecated as its usage was internal to Blueprints and we have much better ways to format text in C++. Any existing C++ using that (of which we have none internally) should be updated to use FFormatArgumentValue instead. Change 3023915 on 2016/06/22 by Jamie.Dale Cleaned up some of the UK2Node_FormatText expansion code to avoid unchecked literals Change 3024813 on 2016/06/23 by Jamie.Dale Renamed FContext to FManifestContext to better reflect its purpose and avoid naming conflicts with other code Change 3024852 on 2016/06/23 by Nick.Darnell FBX - Updating automation tests with the changes to chunk and chunk index removal and them being merged with sections. Change 3024994 on 2016/06/23 by Nick.Darnell UMG - Removing the DesignerWidgetTree, instead going to directly inject the widget tree into the partially constructed UUserWidget during design time, when refreshing the preview. This avoids doing something a little dangerous and sketchy like updating the living class instance with a new designer tree that all new instances will begin biasing using. Also making the preview widget explictly non-transactional as there's no reason to track changes to the preview, all the changes that need to be tracked should be on the template widget. This should fix the crash in the widget designer when you Undo just after compiling the widget blueprint. #jira UE-31155 Change 3025194 on 2016/06/23 by Alex.Delesky #jira UE-31155 - Compilation error fix. Change 3025255 on 2016/06/23 by Alex.Delesky #jira UE-21900 - Redoing changes done in CL 2994431 since it got stomped. Reinstates the grabber handles and ensures consistent scaling on the scale widget in orthographic viewports. Change 3025460 on 2016/06/23 by Cody.Albert Fixed issue where widget components would misalign when aspect ratio was being constrained #jira UE-29637 Change 3025508 on 2016/06/23 by Cody.Albert Adding support for adjusting animation playback speed #jira UE-32222 Change 3026444 on 2016/06/24 by Jamie.Dale Fixed crash caused by bad access of shared this when closing an active IME context This was only needed to get the owner window, which we now cache when the IME context is created. #jira UE-32240 Change 3028358 on 2016/06/27 by Jamie.Dale Fixed IMEs not working due to no window being cached #jira UE-32240 Change 3028464 on 2016/06/27 by Alex.Delesky #jira UE-31873 - A single "Files need check-out" notification will now be shown instead of multiple notifications if multiple files need to be checked out, and updated as more files need to be checked out. Change 3028524 on 2016/06/27 by Chris.Wood Switched off uploads to legacy Crash Report Receiver. [UE-31252] - Switch off deprecated CRR upload in Crash Report Client Also added CRC version string, added to crash context from CRC config Change 3028840 on 2016/06/27 by Alexis.Matte #jira UE-32306 replace material bad name character by an underscore when doing a scen import. Change 3028924 on 2016/06/27 by Alexis.Matte #jira UE-32125 Make sure we can add a plan when a fbx file is drop in the fbx automation test folder Change 3029044 on 2016/06/27 by Alex.Delesky #jira UE-31944 - Updating SVN binaries for Mac to 1.9.4 Change 3029276 on 2016/06/27 by Alex.Delesky #jira UE-31531 - A user can now select the base class when creating a new physical material. PR #2462: added dialog, which enables picking base class for asset (Contributed by iniside) Change 3029459 on 2016/06/27 by Alexis.Matte #jira UE-32354 Make sure we set all blueprint component to the correct mobility set in the scene import options. Change 3030577 on 2016/06/28 by Nick.Darnell PR #2531: Git plugin: fix wrong status icons (Contributed by SRombauts) Change 3030587 on 2016/06/28 by Alexis.Matte #jira UE-32251 add missing body setup variables when restoring the body setup value after a re-import of a staticmesh Change 3030946 on 2016/06/28 by Alexis.Matte #jira UE-32515 prevent crash when re-import staticmesh userdata Change 3031115 on 2016/06/28 by Jamie.Dale The DDC builder now gives the shader compile worker a chance to catch up when it pauses to run a GC pass This prevents an issue where the shader backlog could cause massive amounts of memory to be consumed. Change 3031146 on 2016/06/28 by Jamie.Dale Fixed errors when building with USE_STABLE_LOCALIZATION_KEYS enabled caused by UEdGraphPin no longer being a UObject Change 3031357 on 2016/06/28 by Nick.Darnell PR #2431: Add plugin support to the editor class wizard. (Contributed by Koderz) Change 3031515 on 2016/06/28 by Jamie.Dale Fixed game targets not being able to depend on other game targets Change 3031520 on 2016/06/28 by Jamie.Dale Localization compilation now specifies an ArchiveName to use Change 3031671 on 2016/06/28 by Nick.Darnell Editor - Checking to see if a weak variable is valid before using it in the editor build window. Change 3032013 on 2016/06/28 by Matt.Kuhlenschmidt Added ability to invert the Y axis in editor viewports for mouse look and orbit Change 3032495 on 2016/06/29 by Jamie.Dale Fixed some measuring issues with bi-directional text within a right-flowed document There were three main issues: 1) Measuring blocks was measuring visual glyphs rather than logical glyphs (this caused bad measures/wrapping and overlapped rendering). 2) The text layout would consider blocks visually contiguous without making sure the block flow direction matched the line flow direction (this caused bad highlights). 3) The text layout would fail to compensate for a non-contiguous block that had a flow direction different to the line flow direction (it was hard-coded for RTL in LTR, so broke for LTR in RTL - this caused bad highlights). #jira UE-32526 Change 3032533 on 2016/06/29 by Nick.Darnell UMG - The widget component now extends from UMeshComponent, it can have a custom material applied to it, in order to achieve cooler effects - like ignoring the depth buffer. Users who use this option are encouraged to start with the widget components default material and work from there. The widget component now offers the ability to automatically size the render target to be the desired size of the widget - note that this can go real bad if your widget wants to be really big. Change 3032855 on 2016/06/29 by Alexis.Matte #jira UE-32508 Remove the cachewindow from the FTextInputMethodContext constructor since it will be cache only when the IME is activated #test please re-test also UE-32240 Change 3033145 on 2016/06/29 by Alex.Delesky #jira UE-32239 - The PropertyEditorModule will no longer cause a crash on editor shutdown if a SDetailsView widget tries to force refresh itself when the Slate application is no longer initialized. Change 3033147 on 2016/06/29 by Alex.Delesky #jira UE-32326 - Clicking on the "Install {compiler}" button when trying to create a new code class or code project will now not crash the engine if it fails to open the installation file for write, nor will it create multiple notifications if the button is pressed repeatedly. This also addresses a potential issue with static initialization order when it comes to adding TickableEditorObjects to its corresponding array, since it was wholly possible for a statically initialized TickableEditorObject to initialize itself and add itself to the tickable objects arra before the tickable objects array was initialized, causing that object to not get ticked at runtime and causing a crash when the editor was closed. Change 3033162 on 2016/06/29 by Alex.Delesky #jira UE-31827 - Undo/redo now works in the Material function editor. Change 3033391 on 2016/06/29 by Matt.Kuhlenschmidt Fix post process settings blendable picker not being readable in the details panel Change 3033498 on 2016/06/29 by Matt.Kuhlenschmidt Fixed huge number of redundant calls to CanEditChange and DiffersFromDefault that were causing massive performance loss when thousands of objects are selected. CanEditChange and DiffersFromDefault are now cached each time a property value changes. Fixed redundant calls for getting visualizers for each selected object. This is now cached on selection Change 3033504 on 2016/06/29 by Matt.Kuhlenschmidt Fix Mass customization on the body instance not working with undo/redo or reset to default Change 3034357 on 2016/06/30 by Alex.Delesky #jira UE-31184 - Renamed the multiple collision components in the cascade particle system to more accurately reflect what they represent. Change 3035915 on 2016/07/01 by Richard.TalbotWatkin Fix to SListPanel so that those with horizontal arrangement (i.e. from STileView) use the number of desired items instead of the number of actual items in order to calculate the desired size of the geometry. This fixes the case where an STileView is contained within an SScrollBox. #jira UE-32195 - STileView no longer works correctly when placed inside of a SScrollBox Change 3035951 on 2016/07/01 by Richard.TalbotWatkin Fixed issue when importing a brush, so that the brush is always validated (relinked), whether it be a static or dynamic brush. This is because the process of rebuilding a dynamic brush sets the link indices to signify FBspSurf indices from the UModel instead of FPoly indices (the FPoly::iLink member is overloaded in its meaning). Always forcing a relink correctly sets the linked list of coplanars. #jira UE-32087 - Crash occurs when creating Static Mesh from Trigger Volume Change 3036991 on 2016/07/04 by Alexis.Matte #jira UETOOL-901 Scene importer now support the rigid mesh animation Change 3037037 on 2016/07/04 by Jamie.Dale Fixed regression in editable text box alignment Text was no longer vertically aligned center since SEditableText was converted to use a text layout. This vertical alignment is now handled by the outer SEditableTextBox instead. Change 3037057 on 2016/07/04 by Richard.TalbotWatkin Fixed screenshots when running automation tests so that they are saved locally when a FAutomationWorkerScreenMessage is received. #jira UE-29815 - In-game screenshot isn't working under certain circumstances Change 3037082 on 2016/07/04 by Chris.Wood Added detection of asserts and passing assert flag and crash type string to crash reports. [UE-30592] - Crash Reporter should determine crash type on client and pass string to server Reviewe by Steve with reservations about the static variable for setting asserted state. While not thread-aware, this is probably accurate enough for the purpose of crash reporting, certainly for now. I'm submitting it like this because the work required to add fully thread-aware fix is not necessary at this point. Change 3037095 on 2016/07/04 by Alexis.Matte Fix the bone name when duplicating a socket. Change 3037453 on 2016/07/05 by Stephan.Jiang Adding ability to animate the root wigdet #2 FHierarchyRoot adds the preview widget instead of CDO to selectedobjects in widgetblueprint the properties are then migrated back to the CDO #UE 31810 Change 3037487 on 2016/07/05 by Jamie.Dale Fixed crash caused by stale BP pointer #jira UE-32325 Change 3037488 on 2016/07/05 by Jamie.Dale Fixed a crash that could occur when a class and a folder had the same name Change 3037526 on 2016/07/05 by Jamie.Dale Speculative fix for a potential race condition when shutting down the editor while a "launch" was in progress The launch-thread could potentially queue up a request after the game-thread had requested it cancel, and cleared out any queued tasks. This change has the game-thread wait for the launch-thread to acknowledge its cancellation before continuing with editor shutdown. #jira UE-17688 Change 3037557 on 2016/07/05 by Alex.Delesky #jira UE-32424 - Added a safeguard to ensure that renaming a world that was duplicated from another world would not crash the editor if both worlds' lightmaps and shadowmaps were still active in memory, due to the editor attempting to rename identical textures from different packages to the same location. The actual fix to this issue was performed in an earlier CL, but this should prevent the editor from crashing if the issue returns. Change 3037558 on 2016/07/05 by Alex.Delesky #jira UE-32285 - Importing assets to the Content Browser via drag and drop operations are no longer permitted while the UI file picker dialog is opened. Change 3037559 on 2016/07/05 by Alex.Delesky #jira UE-32075 - The user can no longer attempt to import non-FBX and non-OBJ files when importing into a level. Change 3037593 on 2016/07/05 by Stephan.Jiang GitHub #2549: Add function for setting the playback rate of UMG animations original code shelved in CL 3033449 #UE-32653 Change 3037605 on 2016/07/05 by Jamie.Dale Fixed infinite recursion that could happen when gather loc from an object with a custom callback #jira UE-32670 Change 3037649 on 2016/07/05 by Nick.Darnell PR #2538: [WidgetBlueprintLibrary] GetAllWidgetsOfClass, Added META ~ DeterminesOutputType, DynamicOutputParam, removes the need for extra cast,  Rama (Contributed by EverNewJoy) Change 3037652 on 2016/07/05 by Nick.Darnell Clean - Removing commented out code. Change 3037658 on 2016/07/05 by Matt.Kuhlenschmidt Fix initial hitch when dragging around in a color picker opened from a material expression node. Change 3037679 on 2016/07/05 by Nick.Darnell Engine - Texture2D no longer forces the MIP level to 0 for TextureGroup_UI textures. Change 3037757 on 2016/07/05 by Nick.Darnell PR #2447: WebBrowser widget: Added GetUrl method and OnUrlChanged property (Contributed by nelbok) Change 3037840 on 2016/07/05 by Nick.Darnell UMG - Now allowing for spirtes to be used just like textures and materials on UMG widgets anywhere that takes a brush, can now also take a Sprite. There is now a ISlateTextureAtlasInterface interface that any UObject may now implement if it wishes to integrate with UMG to provide its atlas data in a form Slate can understand. Change 3037924 on 2016/07/05 by Jamie.Dale Re-ordered variable initialization to appease a warning on Mac Change 3037981 on 2016/07/05 by Jamie.Dale Fixed crash where FColorStructCustomization could call SetPerObjectValues with an empty array #jira UE-32639 Change 3038075 on 2016/07/05 by Cody.Albert Removed misleading error message in HandleCECommand #jira 28007 Change 3038231 on 2016/07/05 by Alexis.Matte #jira UE-30694 We set the section collision only if there is an imported collision or a generated one. If there is no collision we do not set the collision flag. Change 3038275 on 2016/07/05 by Alex.Delesky #jira UE-32689 - "Game Gets Mouse Control" will now override the Capture Mouse on Launch setting when launching the game from within a Level Viewport (i.e., within the editor window itself). Change 3039310 on 2016/07/06 by Trung.Le #jira UE-25005 Change PIE Key Bindings - Removed Shift+F1 and Esc from BaseInput.ini - Created new customizable key binding for + Shift+F1: same functionality. + Esc: now will pause the play session and bring back the mouse cursor. Clicking the mouse on the viewport should resume play session. + Shift+Esc: now will stop the play session Change 3039458 on 2016/07/06 by Trung.Le Removed unused code in StaticMeshLight.cpp Change 3039827 on 2016/07/06 by Frank.Fella FString - Fix divide overload path concatenation for empty paths since there are several places in the engine that expect using that doing { path / "" } will append a / onto path. #jira UE-31959 Change 3041094 on 2016/07/07 by Nick.Darnell WebBrowser - Fixing an issue where the web browser widget plugin wasn't loading soon enough to be properly loaded in time if it was referenced by game nessesary content thatloads in the Default stage of the pipeline, so moving it to PreDefault. #jira UE-32694 Change 3041110 on 2016/07/07 by Matt.Kuhlenschmidt Fix visualizers on blueprint actors not working when the internal components are trashed and replaced Change 3041302 on 2016/07/07 by Chris.Wood Increased buffer size for crash uploads. [UE-32151] - High number of crashes read from S3 by Crash Report Process are failing to unpack Trivial change in dev branch - no code review Change 3041969 on 2016/07/07 by Nick.Darnell UMG - Input Key Selector now no longer adds a bogus Selected Key property to the details panel. Change 3041971 on 2016/07/07 by Nick.Darnell UMG - Not using separate settings for the Engine/Developer folders visible in the UMG palette, now just using the same setting that powers the content browser. Change 3042612 on 2016/07/08 by Trung.Le #jira UE-25005, set Shift+Esc defaults to toggle play/pause and Esc remains defaults to quit Change 3042732 on 2016/07/08 by mitchell.wilson Adding test content for UMG Paper 2d Atlas test Change 3042780 on 2016/07/08 by mitchell.wilson Updating UMG_Paper2d test content for UMG Paper 2d Atlas testing Change 3042870 on 2016/07/08 by mitchell.wilson Renaming UMG_Paper2d to UMG_Sprite Change 3044104 on 2016/07/10 by Nick.Darnell PR #2104: Improved widget input support (Contributed by projectgheist) Change 3044107 on 2016/07/10 by Nick.Darnell Slate - Fixing the slider handle rendering to no longer run off the edge and get cut off. #jira UE-25750 Change 3044377 on 2016/07/11 by Chris.Wood Add Slack messaging module - Epic Friday Change 3044536 on 2016/07/11 by Alex.Delesky #jira UE-7293 - Mouse locking to viewport is now determined off an enum instead of a boolean, to allow for more flexibility when upgrading with new features. Change 3044922 on 2016/07/11 by Nick.Darnell Slate/UMG - Working on better support for VR interactions with Slate widgets. This change fixes a lot of issues with the way interaction works with slate widgets rendered in the virtual world. Breakages, direct mouse interaction with widgets in the virtual world is no longer supported. Those kinds of interactions must all use the WidgetInteractionComponent now, which by default works similar to the lasers in VREditor for interaction. However - you can disable automatic hittesting, and instead provide a custom hitresult instead if you want to use screen tracing and act like you're just a mouse cursor that is supported. Menu anchors now properly function inside of widgets in the virtual world. Performance improvements - the viewport no longer arranges all 3d widgets every frame. Additionally, Widget Components now support a whole bunch of methods for reducing how often they redraw to help control performance, they also support manual refresh. This automatically works in tandem with the widget interaction component to request refresh whenever the widget interaction component is interacting with the widget, thus giving you a simple way to only redraw widgets that the user is hovering on top of. Unrelated - this change also fixes Stop navigation commands not working with Next/Prev navigation - Wrap is still unsupported. Change 3045157 on 2016/07/11 by Nick.Darnell Slate - Always consume the bottom face button of the analog cursor, even if it's a repeat. Change 3045355 on 2016/07/11 by Matt.Kuhlenschmidt Added logging for unreproducible top 10 crash in matinee when a track ends up not being able to add a keyframe Change 3045358 on 2016/07/11 by Alex.Delesky #jira UE-31179 - The editor should now log additional information and hit an assertion if the editor tries to construct FObjectOrAssetData using invalid data. This doesn't stop the crash, but should help get some extra info when it does break. Change 3045371 on 2016/07/11 by Matt.Kuhlenschmidt Enable the widget reflector from the editor console by typing "widgetreflector" Change 3045387 on 2016/07/11 by Stephan.Jiang Stripping off 'b' in the propertyname so that "Is Enabled" is animated properly. #UE-31874 Change 3046093 on 2016/07/12 by Nick.Darnell UMG - The Slider now exposes the IsFocusable option from Slate. #jira UE-32960 Change 3046094 on 2016/07/12 by Alexis.Matte #jira UE-32807 scene re-import blueprint hierarchy kept some part of old blueprint component value. Change 3046104 on 2016/07/12 by Stephan.Jiang typo "Syc" causing the "Sync" button doesn't show Slateicon #UE-31409 Change 3046142 on 2016/07/12 by Nick.Darnell Orion - Upgrading more code to use the new input mode functions and not the deprecated ones. Change 3046165 on 2016/07/12 by Nick.Darnell UMG - Fixing a crash on the widget component if the render target is null when reapplied through widget component data. #jira UE-32844 Change 3046255 on 2016/07/12 by Nick.Darnell UT - More build warning fixes for the new Input Mode methods. Change 3046604 on 2016/07/12 by Richard.Hinckley Adding a template file and code to support creating a UInterface directly from the New C++ Class wizard. Change 3047071 on 2016/07/12 by Matt.Kuhlenschmidt Better way of summoning the widget reflector from the console Change 3047842 on 2016/07/13 by Matt.Kuhlenschmidt Mark Subdivision surface setting as advanced since it is experimental and definitely for advanced users only Change 3048754 on 2016/07/13 by Trung.Le #jira UE-32159 Automatically regain focus after user gets mouse control during PIE session so we can continue process PIE keybinding commands Change 3048756 on 2016/07/13 by Trung.Le Removed default toggle pause/play keybinding from BaseInput.ini, instead we should use the action defined in DebuggerCommands that is customizable Change 3048865 on 2016/07/13 by Trung.Le #jira UE-32159 SGlobalPlayWorldActions widget shouldn't clear out active widget pointer when it's being handled properly Change 3048892 on 2016/07/13 by Nick.Darnell UMG - Fixing a problem with the interaction component, it now does some basic intelligent ignoring of anything it's attached to - excluding widget components. So it's easier to attach it to things that might be inside of a say a player collision capsule. Also removing the 'Max Interaction Distance' from the widget component as that is no longer the arbitor of interaction distance. #jira UE-33250 Change 3049096 on 2016/07/13 by Trung.Le Wrap SGlobalPlayActions around ViewportWidget instead of making it a child of ViewportWidget. This was causing PIE to stop working when there are other UMG in game. #jira UE-33259 Change 3049177 on 2016/07/13 by Stephan.Jiang Fixing the "No Animation Selected" tag shows up after switching back from Graph to Designer. #UE-33016 Change 3049726 on 2016/07/14 by Stephan.Jiang Adding icons for terrain mirror tool #UE-20588 Change 3049957 on 2016/07/14 by Nick.Darnell Slate - Fixing a small bug in the virtual user function - was preventing getting the same virtual user multiple times if it had already been created. Adding an option to the widget component to control the focusabilty of the underlying slate window that's created to host the widget content. Adding an option to the widget interaction component to control if it should be simulating mouse input at all - use this to effectively disable hit testing, and changing hover states and the like. Change 3049994 on 2016/07/14 by Stephan.Jiang Set viewed animtion to current animtion after switching from Graph to Designer (This is for "No Animation Selected" showing up when switching) #UE-33016 Change 3050194 on 2016/07/14 by Stephan.Jiang Added ability to replace the widget the track is currently bound to Also includes changes in WidgetBlueprintEditor to send delegate to AnimationtabSummoner when switching from Graph to Designer #UE-31809 [CL 3050870 by Matt Kuhlenschmidt in Main branch]
2016-07-14 19:07:16 -04:00
, bSelectionHasSceneComponent(false)
, WidgetScale(1.0f)
, CoordSystem(COORD_World)
, bIsTracking(false)
{
DefaultModeIDs.Add( FBuiltinEditorModes::EM_Default );
Add support for UEdMode-level InteractiveToolsContext which exists at the same time as the existing ModeManager-level ITC. - rename UEdModeInteractiveToolsContext to UEditorInteractiveToolsContext, made all functions virtual so they can be customized for the new Editor/EdMode implementations where necessary - add UModeManagerInteractiveToolsContext and UEdModeInteractiveToolsContext subclasses. Most functionality stays in the base class. Mouse-handling functions that manipulate the InputRouter move to ModeManagerITC. - EdModeITC now is initialized based on a ModeManagerITC, and shares it's InputRouter - ModeManagerITC creates the child EdModeITCs, forwards Tick/Render/DrawHUD calls - FEditorModeTools now creates a ModeManagerITC - Add EToolsContextScope enum, with options for Editor and EdMode ToolsContext - UEdMode::Enter() now creates a child EdModeITC via new EditorITC::CreateNewChildEdModeToolsContext() function above, in addition to storing reference to the ModeManagerITC. Internal code updated to handle both ITCs. - The EdModeITC is shut down on ::Exit() and unregistered from the EditorITC parent - UEdMode ITC access functions (GetToolsContext, GetToolManager, RegisterTool) now take an optional Scope argument - UEdMode::GetDefaultToolScope() allows EdModes to define default scope for the entire mode, defaults to Editor scope - removed unused CanStartTool()/etc wrapper functions from FModeToolkit, they were not being called - FModeToolkit::Init() now listens to events from both the ModeManagerITC and EdModeITC, delete cleans them both up - FModeToolkit::OnToolStarted() checks both ITCs to see which one owns the new Tool - updated all EdModes that were directly accessing the UEdMode::ToolsContext member, replaced with calls to GetToolsContext() / GetToolManager() APIs - updated ModelingToolsEditorMode to use EdMode ToolScope #rb brooke.hubert #rnx #jira none #preflight 6140cc1130c00d0001dc4b9e #ROBOMERGE-AUTHOR: ryan.schmidt #ROBOMERGE-SOURCE: CL 17510176 in //UE5/Main/... #ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530) [CL 17510201 by ryan schmidt in ue5-release-engine-test branch]
2021-09-14 17:11:13 -04:00
InteractiveToolsContext = NewObject<UModeManagerInteractiveToolsContext>(GetTransientPackage(), UModeManagerInteractiveToolsContext::StaticClass(), NAME_None, RF_Transient);
InteractiveToolsContext->InitializeContextWithEditorModeManager(this);
// Load the last used settings
LoadConfig();
// Register our callback for actor selection changes
USelection::SelectNoneEvent.AddRaw(this, &FEditorModeTools::OnEditorSelectNone);
USelection::SelectionChangedEvent.AddRaw(this, &FEditorModeTools::OnEditorSelectionChanged);
USelection::SelectObjectEvent.AddRaw(this, &FEditorModeTools::OnEditorSelectionChanged);
if( GEditor )
{
// Register our callback for undo/redo
GEditor->RegisterForUndo(this);
// This binding ensures the mode is destroyed if the type is unregistered outside of normal shutdown process
GEditor->GetEditorSubsystem<UAssetEditorSubsystem>()->OnEditorModeUnregistered().AddRaw(this, &FEditorModeTools::OnModeUnregistered);
}
FWorldDelegates::OnWorldCleanup.AddRaw(this, &FEditorModeTools::OnWorldCleanup);
}
FEditorModeTools::~FEditorModeTools()
{
SetDefaultMode(FBuiltinEditorModes::EM_Default);
DeactivateAllModes();
RemoveAllDelegateHandlers();
ExitAllModesPendingDeactivate();
RecycledScriptableModes.Empty();
// We may be destroyed after the UObject system has already shutdown,
// which would mean that this instances will be garbage
if (UObjectInitialized())
{
InteractiveToolsContext->ShutdownContext();
InteractiveToolsContext = nullptr;
}
}
void FEditorModeTools::LoadConfig(void)
{
GConfig->GetBool(TEXT("FEditorModeTools"),TEXT("ShowWidget"),bShowWidget,
GEditorPerProjectIni);
const bool bGetRawValue = true;
int32 CoordSystemAsInt = (int32)GetCoordSystem(bGetRawValue);
GConfig->GetInt(TEXT("FEditorModeTools"),TEXT("CoordSystem"), CoordSystemAsInt,
GEditorPerProjectIni);
SetCoordSystem((ECoordSystem)CoordSystemAsInt);
LoadWidgetSettings();
}
void FEditorModeTools::SaveConfig(void)
{
GConfig->SetBool(TEXT("FEditorModeTools"), TEXT("ShowWidget"), bShowWidget, GEditorPerProjectIni);
const bool bGetRawValue = true;
GConfig->SetInt(TEXT("FEditorModeTools"), TEXT("CoordSystem"), (int32)GetCoordSystem(bGetRawValue), GEditorPerProjectIni);
SaveWidgetSettings();
}
TSharedPtr<class IToolkitHost> FEditorModeTools::GetToolkitHost() const
{
TSharedPtr<class IToolkitHost> Result = ToolkitHost.Pin();
check(ToolkitHost.IsValid());
return Result;
}
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3182037) #rb None #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2825716 on 2016/01/12 by Marc.Audy Fix GrabDebugSnapshot virtual function definitions in Ocean Change 2828462 on 2016/01/14 by Marc.Audy Back out changelist 2825716 Change 3153526 on 2016/10/06 by Zak.Middleton #ue4 - Fix CharacterMovement hanging on to a bad/penetrating floor check result and not continuing to check for a valid floor. Only occured if bAlwaysCheckFloor was false. This could in rare situations cause the character to continue to attempt to depenetrate an object far away from it until another floor check occured. To prevent this we now force a floor check after the depenetration. Related to OR-14528. Change 3153580 on 2016/10/06 by Benn.Gallagher Skeletal LOD workflow refactor. Now we track source files for LODs to save time when reimporting LODs often. It's still possible to pick new files and overwrite the current settings. #jira UE-36588 Change 3154264 on 2016/10/06 by Aaron.McLeran UE-37004 UE-37005 Fixing stat soundwaves Change 3154560 on 2016/10/07 by James.Golding UE-20739 Fix auto box in Morph Target Preview panel Change 3154776 on 2016/10/07 by Ben.Zeigler #Fortnite Change the ability UI to use the Tag UI data instead of the Tag Categories, as Tag Categories were redundant and are being removed in the tag refactor. I'm not sure this code is actually in use any more. Change 3154954 on 2016/10/07 by Ben.Zeigler Move GameplayTagsEditor to a plugin, and change GameplayTagsManager to be accessed directly without the module load overhead, as it is part of the engine module set. Performance improvements to GameplayTags to maintain a ParentTag list when tag containers get modified. It does a quick update on add, and a slow recompute on other changes. This leads to a 10x improvement in IncludeParent queries Replace RemoveAllTags and RemoveAllTagsKeepSlack with Reset, which already existed but didnt work correctly. Removed the Category map from gameplay tags, games are using other systems to do translateable text. Significant internal changes to GameplayTagsManager, moved from 3 redundant maps to 1 map and removed unused functionality Change 3154955 on 2016/10/07 by Ben.Zeigler Game compile fixes for changes to GameplayTags module and API. Removed redundant calls to remove tags, TagContainer uses Reset() like other container types Change 3154995 on 2016/10/07 by Aaron.McLeran UE-37012 fix compile issue Change 3155009 on 2016/10/07 by Aaron.McLeran UE-37009 Ensure failed for FXAudio2SoundBuffer::Seek() in XAudio2Buffer.cpp - Removing ensure and using if statement instead. It looks possible for decompression state to fail to be created, that state is logged elsewhere. Change 3155128 on 2016/10/07 by Ben.Zeigler Add old location of GameplayTagsEditor to junk manifest Change 3155268 on 2016/10/07 by Aaron.McLeran UE-37024 Set Sound Mix Class Override still Playing Sounds in Certain Conditions Change 3155561 on 2016/10/07 by Ben.Zeigler GameplayTag fixes made based on code review feedback: Deprecate custom node for making a literal gameplay tag container and add proper make and break functions to the blueprint library Remove direct access to the tag container internals as it has always been unsafe Add many missing utility functions to the library and change things to pass FGameplayTag by value. TagContainers must still be passed by reference though as they are large Fix case where comparing two containers with the tags in different orders would fail Remove deprecated serialization entirely, print error when trying to load very old tags Add RemoveAllTags and RemoveAllTagsKeepSlack back to container, but deprecate them Change 3155842 on 2016/10/07 by dan.reynolds AEOverview Update - Attenuation Shapes Test Map + Counting Test Assets Change 3156779 on 2016/10/10 by Richard.Hinckley Fixing/reordering comments for basic types. Change 3156926 on 2016/10/10 by Ben.Zeigler Remove deprecated gameplay ability system code involving non-BP gameplay effects and ActiveGameplayEffectQueries Change 3156998 on 2016/10/10 by Jon.Nabozny Include K2Node_BaseAsyncAction.h in K2Node_AsyncAction.h to fix compile issue. Change 3158732 on 2016/10/11 by Zak.Middleton #ue4 - Don't allow the first move in SafeMoveUpdatedComponent() to ignore penetration when slowly moving out of an object. We really want to pop out completely using the MTD as fast as possible or we can fall through the object in a longer direction. #jira UE-28610 Change 3159208 on 2016/10/11 by dan.reynolds Added ancillary SoundClass Passive Mix Modifier Duration Test map Change 3159211 on 2016/10/11 by Aaron.McLeran UE-37193 Fixing passive sound mix modifier Change 3159278 on 2016/10/11 by dan.reynolds AEOverviewMain integration with the SCO Passive Mix Modifier Duration Test map for additional testing purposes. Also tweaks and clean-up of SCOverviewPassMixModDuration map and associated Platform_Blueprint Change 3159596 on 2016/10/12 by danny.bouimad Updates to TM-Meshbake Change 3159629 on 2016/10/12 by James.Golding Add ModifyCurve anim node Make GetPinAssociatedProperty const correct Change 3159705 on 2016/10/12 by James.Golding Add 'ApplyMode' and 'Alpha' options to ModifyCurve node Change 3159959 on 2016/10/12 by John.Abercrombie Integrate CL 3159892 from //Fortnite/Main/... Fixed the Blackboard component pausing but never being unpaused if we ended up restarting the Behavior Tree instead of continuing #ue4 Change 3160014 on 2016/10/12 by Lukasz.Furman pass on gameplay debugger in Simulate in Editor mode #jira UE-36123 Change 3160027 on 2016/10/12 by Lukasz.Furman fixed behavior tree task restart conditions copy of CL 3159145 #ue4 Change 3160129 on 2016/10/12 by Lukasz.Furman gameplay debugger refactor: removed deprecated code #ue4 Change 3160389 on 2016/10/12 by Lukasz.Furman added missing include path to gameplay debugger module #ue4 Change 3160408 on 2016/10/12 by Lukasz.Furman refactored sanity checks in gameplay debugger EdMode to keep static analysis happy #ue4 Change 3161143 on 2016/10/13 by James.Golding UE-37208 UE-37207 Fix AnimNode_ModifyCruve CIS error Change 3161227 on 2016/10/13 by danny.bouimad More changes to meshmergemap Change 3161777 on 2016/10/13 by Ben.Zeigler API changes for GameplayTag and Container, and fix Redirect loading Remove Match type and empty count as match bool from common API In C++ use MatchTag/MatchAny/HasTag/HasAny/HasAll with *Exact variants for exact matching. Old C++ API is still there but I will deprecate and remove soon In Blueprint use MatchTag/MatchAny/HasTag/HasAny/HasAll with bool parameter for as the bool is more clear. I was able to convert old functions to new ones as no one was overriding the options I removed Undeprecate the old make literal node and temporarily set GameplayTags in container to be editable. We're not allowed to deprecate things until our internal games fix their usage. Change 3162095 on 2016/10/13 by Jon.Nabozny Fix bad default screen resolution in Platformer Game. #jira UE-34901 Change 3163351 on 2016/10/14 by Marc.Audy Avoid duplicate accessor calls Change 3163364 on 2016/10/14 by Marc.Audy Eliminate auto Use ForEachObjectWithOuter Change 3163367 on 2016/10/14 by Marc.Audy Use ForEachObjectWithOuter instead of GetObjectsWithOuter Change 3163500 on 2016/10/14 by Marc.Audy When using SetCullDistance property for static meshes correctly update the cached value #jira UE-36891 Change 3163674 on 2016/10/14 by Jon.Nabozny #rn Fix popping in OnRep_ReplicatedAnimMontage. #jira UE-37056 Change 3164818 on 2016/10/17 by Ori.Cohen Added a pose snapshot feature that allows users to convert an existing skeletal mesh pose into a node inside the anim blueprint. This is useful for things like getup from ragdoll. Change 3164903 on 2016/10/17 by Lukasz.Furman fixed bug in merging behavior tree searches #ue4 Change 3165236 on 2016/10/17 by dan.reynolds Fixes and tweaks based on feedback: - Made most objects Stationary to assist in dynamic lighting changes as sub-levels have unknown orientation until load - Fixed Blueprint Control map to stop test when the player leaves the zone - Fixed Blueprint Contorl map typos Change 3165323 on 2016/10/17 by Aaron.McLeran PS4 Audio Streaming - Refactored Opus audio streaming code to have the code which interfaces with audio streaming manager in format-agnostic code (so I can use for AT9 streaming) - Wrote an AT9 real-time decoder module (will be used in audio mixer) - Enabled streaming on PS4 platform - Refactored much of Ngs2 to be more in parity with our other platforms for real-time decoding (Significant changes to Ngs2Buffer) - Added support for Ngs2 buffer callbacks for when audio needs to be fed to sources rather than pushing data from game thread - Fixed A3D implementation: creating both a normal sampler rack and an A3D-specific sampler rack - Fixed up error handling code in Ngs2 so it actually reports real errors Change 3165997 on 2016/10/18 by Richard.Hinckley Improving consistency of "New C++ Class" templates and fixing some shadow-variable issues. Change 3166220 on 2016/10/18 by Aaron.McLeran UE-37442 Build Tools Win64 completes with 28 errors - Changing include of appropriate file to not be in #if WITH_ENGINE block Change 3166262 on 2016/10/18 by Aaron.McLeran UE-37441 Compile Ocean IOS, Compile FortniteClient Mac, Compile UE4Editor Mac complete with 11 errors Fixing up the original wave format parsing code in Audio.cpp to avoid redefinitions. This code needs to be removed eventually in favor of the new wave format parser class. Change 3166562 on 2016/10/18 by Aaron.McLeran UE-37441 Fixing compile on Mac - Renamed FFormatChunk to FRiffFormatChunk Change 3166653 on 2016/10/18 by Aaron.McLeran UE-37442 Build Tools Win64 completes with 28 errors Change 3166917 on 2016/10/18 by Aaron.McLeran UE-37502 Initializing missed data members in FNgs2SoundSource constructor Change 3167329 on 2016/10/19 by Benn.Gallagher Made wind properties editable on wind components, had to make the properties unsettable by blueprints and add setter functions so we can trigger render data updates from property updates. #jira UE-37500 Change 3167575 on 2016/10/19 by Jon.Nabozny #rn Fix UCharacterMovementComponent::OnTeleported improperly changing movement mode. #jira UE-37082 Change 3168079 on 2016/10/19 by Ori.Cohen Fix timing issue that causes snapshotpose to t-pose. #JIRA UE-37476 Change 3168392 on 2016/10/19 by dan.reynolds Updated AEOverviewMain with custom Attenuation FBXs to alleviate visual noise when observing complex attenuation shape falloff distances. Change 3169121 on 2016/10/20 by danny.bouimad Updates to Merge actor assets Change 3169128 on 2016/10/20 by Danny.Bouimad files Change 3169230 on 2016/10/20 by Lina.Halper #improved log message Change 3169243 on 2016/10/20 by Ben.Zeigler #jira UE-37515 Add UK2Node::ConvertDeprecatedNode which handles node-specific deprecation fixup. Add code to automatically convert from make/break struct nodes to native call function if there is a native override. This was hard coded for vector, etc but now works for any type that declares HasNativeMake/HasNativeBreak. Add serialize override to K2Node that serializes struct defaults when gathering references while saving. References declared in literal struct pins were being skipped Add specific fixups for GameplayTag make/break functions Change 3169422 on 2016/10/20 by Aaron.McLeran UE-37596 Making detail customizations and experimental setting for sound base showing audiomixer-only features Change 3169620 on 2016/10/20 by Ben.Zeigler Switch GameplayTagTests to use the new Custom test macro and better failure reporting. Add TestTrueExpr macro that runs TestTrue with the expression as the display string, like how ensure works. Change 3169622 on 2016/10/20 by Ben.Zeigler Fix swapped HasAny logic and bad comments Change 3169645 on 2016/10/20 by Aaron.McLeran Re-adding call to Stop source Change 3169664 on 2016/10/20 by dan.reynolds AEOverviewMain Update - Fixed Menu bug where clicking the menu item after map reset resulted in requiring two attempts to actually reset the menu item properly. Menu Hit interaction is now much more responsive. Change 3169997 on 2016/10/20 by Ben.Zeigler Change from alloca to normal malloc, as static analysis doesn't like alloca in loops due to stack overflow danger Change 3170796 on 2016/10/21 by Marc.Audy PR #2878: Prevent 'XXX has natively added scene component' warning in commandlets (Contributed by slonopotamus) #jira UE-37632 Change 3170802 on 2016/10/21 by Lina.Halper #ANIM: curve can link to joints - this allows to filter certain curves per LOD - when the joint is discarded -> refactored editor object tracker to allow multiple per class -> refactored so that bone reference supports both skeleton or mesh but make sure you don't access invalid function when using skeleton indices - layer bone support #jira: UEFW-207 Change 3170857 on 2016/10/21 by Aaron.McLeran Disabling checking for device change Change 3171101 on 2016/10/21 by Ben.Zeigler Deprecate old gameplay tag functions in favor of new API that doesn't use the enums or module header Add IsEmpty, Filter, FilterExact, and AddLeafTag to FGameplayTagContainer Add RequestGameplayTag, MatchesTagDepth and GetGameplayTagParents to FGameplayTag Remove MatchesEmpty parameter from tag asset interface. This defaulted to true but should now be explicitly checked with IsEmpty() Engine fixups for those changes Change 3171102 on 2016/10/21 by Ben.Zeigler Internal game fixups for tag deprecation Moved some fortnite tags into the global tag list and fixed fortnite cases. Confident in these changes Fixed several weird tag uses in Orion. Dave and I should code review these changes as I was unsure on some of them Some minor changes for Ocean Change 3171186 on 2016/10/21 by Ben.Zeigler File got missed in checkin Change 3171239 on 2016/10/21 by Wes.Hunt TPSAudit updates. * Added /Verbose option that will print out the name of each file examined. Useful for debugging if a file was even checked. * Don't skip Content folders * Don't skip Engine\Documentation\HTML * Skip any Content\Localization folders instead of only Engine\Content\Localization * Skip any Content\Internationalization folders * Skip .raw, .exr, .r16, .abc, .webm, .collection, .aac files. * if a file has no extension (like configure files) then treat the filename as the extension * configure files are treated like shell files Change 3171245 on 2016/10/21 by Ben.Zeigler Fix crash when saving nodes that reference properties from struct defaults. Switch FindImportedObject to be safe while saving, it will find existing objects but not load new ones. I am not sure why StaticFindObject is unsafe during save. Change 3171248 on 2016/10/21 by Wes.Hunt TPSAudit: added /veryverbose which lists every file and directory excluded and the reason (file or dir exclusion). This makes the startup MUCH MUCH slower, so only use for debugging. Change 3171256 on 2016/10/21 by Wes.Hunt ModuleManager shutdown fixes. * ShutdownModule is now called in reverse order to when StartupModule is FINISHED. * This allows modules to reference dependencies in their StartupModule to ensure they are loaded, and be sure they will still be around in ShutdownModule. * HTTPModule now shuts down in ShutdownModule and not PreUnloadCallback. * Added comments to Module headers to indicate this new change in behavior. * Removed manual startup of HTTP module in LaunchEngineLoop as it's no longer needed. Should save the module from being around if not really used by engine. Change 3171258 on 2016/10/21 by Wes.Hunt ModuleManager shutdown fixes. * ShutdownModule is now called in reverse order to when StartupModule is FINISHED. * This allows modules to reference dependencies in their StartupModule to ensure they are loaded, and be sure they will still be around in ShutdownModule. * HTTPModule now shuts down in ShutdownModule and not PreUnloadCallback. * Added comments to Module headers to indicate this new change in behavior. * Removed manual startup of HTTP module in LaunchEngineLoop as it's no longer needed. Should save the module from being around if not really used by engine. Change 3171946 on 2016/10/24 by Lina.Halper Fix so that it checks all the joints before removing Change 3172126 on 2016/10/24 by Lukasz.Furman added navlink component #ue4 Change 3172152 on 2016/10/24 by Jon.Nabozny Remove UWorld::ComponentOverlapMulti indirection in UPrimitiveComponent::UpdateOverlaps. UWorldComponentOverlapMulti is just a wrapper that verifies the component is valid, then calls UPrimitiveComponent::ComponentOverlapMulti. #jira UE-36472 Change 3172364 on 2016/10/24 by Ben.Zeigler Codereview fixes for tag changes. Make Tag->Container constructor explicit to avoid bugs Fix some cases that were using exact to allow parents instead Change 3173442 on 2016/10/25 by Jon.Nabozny Fixed crash when opening Anim asset after retargetting. Change 3174123 on 2016/10/25 by Ben.Zeigler Add some ini tag data to QAGame, it's now setup to import some from DataTable, and some from ini. This enables the full management UI. Change 3174394 on 2016/10/25 by dan.reynolds AEOverview update - added a Streaming Audio test which tests two streaming audio loops (one short, one long). Change 3175197 on 2016/10/26 by Wes.Hunt Fix OSS module startup to directly reference HTTP and XMPP as a dependency in StartupModule. This should make MCP startup/shutdown more robust. #codereivew: sam.zamani,dmitry.rekman,josh.markiewicz Change 3175236 on 2016/10/26 by Jon.Nabozny Change FMath::SegmentDistToSegmentSafe to handle the case where either (or both) of the input segments create points. Either segment may be considered a point if it's two points have a distance that's nearly 0. #jira UE-19251 Change 3175256 on 2016/10/26 by Jon.Nabozny Fix CIS for SegmentDistToSegmentSafe change. Change 3175379 on 2016/10/26 by Jon.Nabozny Change UCharacterMovementComponent::ApplyImpactPhysicsForces to use IsSimulatingPhysics(BoneName) instead of IsAnySimulatingPhysics on the hit component. #jira UE-37582 Change 3175408 on 2016/10/26 by Marc.Audy AudioThreading improvements: Fix PS4 core 6 issue Add timeout spam Radical simplification Fix suspension CVar #authors Gil.Gribb/Marc.Audy #jira OR-30447 Change 3175535 on 2016/10/26 by Marc.Audy Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3175266 Change 3175539 on 2016/10/26 by Marc.Audy Restore affinity for AudioThread and allow it on to 7th (rather than pinning it) Change 3175631 on 2016/10/26 by Marc.Audy Fix silly compile error Change 3175639 on 2016/10/26 by Aaron.McLeran Fixing audio device removal code - Flipping active sources to virtual mode - Handling initializing sources that have become virtual - Not stopping sounds when device is unplugged Change 3175665 on 2016/10/26 by dan.reynolds AEOverview update - Added a Streaming Overview sub test (Streaming Spam) Change 3175934 on 2016/10/26 by dan.reynolds AEOverview Streaming Map Fix - fixed AEOverviewStreaming to avoid orphaning sounds when crossing the platforms Change 3175941 on 2016/10/26 by Marc.Audy Fix compiler error after merge from Main Change 3176378 on 2016/10/27 by Jon.Nabozny Add RotatorToAxisAndAngle function to KismetMath. We already expose RotatorFromAxisAndAngle, this is just the inverse operation. Change 3176441 on 2016/10/27 by Jon.Nabozny Fix another CIS issue with SegmentDistToSegmentSafe change. Change 3176487 on 2016/10/27 by Jon.Nabozny Hide DemoRecorder from the scoreboard in ShooterGame. #jira UE-37492 Change 3176616 on 2016/10/27 by Lukasz.Furman optimized behavior tree debugger update in subtrees #jira UE-29029 Change 3176717 on 2016/10/27 by james.cobbett Test asset for UE-37270 Change 3176731 on 2016/10/27 by dan.reynolds AEOverview Streaming Spam map tweak--fixed STRMOverviewStreamSpam map so it now ensures reproduction on a specific edge case Change 3176887 on 2016/10/27 by Aaron.McLeran UE-37899 Failed Assertion when spamming PS4 Streaming Start/Stop - Fix is to add critical sections to avoid stopping a Ngs2 source voice while it's in an OnBufferEnd callback #tests Use Dan.Reynold's AEOverviewMain, load STRMOverviewStreamSpam map. will crash in half a second pre-fix, never crashes post-fix. Change 3177053 on 2016/10/27 by Marc.Audy Actually reattach previously attached actors when creating a child actor #jira UE-37675 Change 3177113 on 2016/10/27 by Aaron.McLeran UE-37906 Fixing stat sounds when the audio thread is enabled. Change 3177536 on 2016/10/27 by Aaron.McLeran Updating QASoundWaveProcedural to support stereo procedural sound wave generation. Change 3177551 on 2016/10/27 by dan.reynolds AEOverview update - Tweaked AEOverviewSWP to support testing mono and stereo SoundWave Procedurals - Added STRMOverviewStreamPriority to test Streaming Voice Priority Change 3177819 on 2016/10/28 by Thomas.Sarkanen Consolidated LOD screen size calculations Static, skeletal and HLOD now use the same method of specifying LOD level at runtime.Namely "Screen Size". When the bounds of the objects sphere occupy half the max screen dimension, the screen size is 0.5 & all of the screen, 1.0. HLOD still uses a distance based metric at runtime to choose when to switch clusters, so will still not switch LODs on FOV changes. Conversion functions have been implemented to convert each of the legacy LOD specifications into the new unified version. Conversion uses an assumption that the average case uses 1080p @ 90 degree FOV. This is necessary as previous screen sizes/areas were based around that resolution and we want the least perf regressions when at that resolution. Auto LOD now uses the same functionality to determine what LOD thresholds to use. #tests Verified that LODs switch at equivalent distances/sizes before and after this change for various assets. #tests Verified that HLOD distance->screen size and inverse functions map correctly #tests Ran Michael N's triangle count test before and after the changes with Paragon to verify rendered triangle counts do not vary with the new method Change 3177996 on 2016/10/28 by Marc.Audy Support play button on SoundCues as well as SoundWaves Change 3178013 on 2016/10/28 by Marc.Audy Allow previewing of force feedback effects from content browser #jira UE-36388 Change 3178020 on 2016/10/28 by Lukasz.Furman fixed navmesh wall segment calculations for crowds #jira UE-37893 Change 3178096 on 2016/10/28 by Marc.Audy Make ALevelSequenceActor::Tick call Super #jira UE-37932 Change 3178247 on 2016/10/28 by Zak.Middleton #ue4 - Crash fix when player is destroyed and server checks to see if it needs to force a network update. No repro steps in the bug but guarding against the crash is pretty straightforward. UE-37902 Change 3178256 on 2016/10/28 by Zak.Middleton #ue4 - Avoid crash when calling ACharacter::SetReplicateMovement when not on the server. Change 3178263 on 2016/10/28 by Ben.Zeigler Add support for a SearchableNameMap to the Linker and the Asset Registry. Call MarkSearchableName(TypeObject,Name) from a serialize function to register that an FName should be considered Searchable. This change bumps the object version. Also fix it so the StringAssetReferencesMap does not get written out in editor builds Clean up FLinker::Serialize, as it is no longer called except to get memory size Add code to mark searchable names for GameplayTags, DataTableHandles, and CurveTableHandles. Add FAssetIdentifier to the AssetRegistry that allows searching for Package.Object::Name. If Object/Name aren't specified PackageName will be used as it was before UI Improvements to the reference viewer to support name references. Collapse the reference/dependency checkboxes, and add new checkboxes for SearchableNames and NativePackages, disabled by default Remove bResolveIniStringReferences option from GetDepdendencies and handle that when parsing in the string asset reference table Change 3178265 on 2016/10/28 by Ben.Zeigler Move all ini settings for GameplayTags over to GameplayTagsSettings.h/GameplayTags.ini, instead of being in 3 different places. Add metadata for the source of a gameplay tag and it's comment to the node, but only in editor builds Change it so the default list and developer tags list are saved the same way as a list of structs. This will allow UI for selecting what tag list to save it into The first time someone in the project modifies the GameplayTags project settings it will migrate these settings from the old locations. This will cause defaultEngine.ini to resave, which may wipe out comments Migrate QAGame's tag config as a test Change 3178266 on 2016/10/28 by Lina.Halper Fix issue with anim editor sound play notify doesn't work with follow option #jira: UE-37946 Change 3178441 on 2016/10/28 by Ben.Zeigler Fix use of IsValid on names inside asset identifier to properly be a None check and add accessor to make use more clear Change 3178443 on 2016/10/28 by Ben.Zeigler Half migrated gameplay tag settings for internal games, will need full migration via the editor on their branches Change 3178533 on 2016/10/28 by Ben.Zeigler Build fix Change 3178655 on 2016/10/28 by Ben.Zeigler Build fix Change 3178672 on 2016/10/28 by Lina.Halper Unshelved from changelist '3164228': PR #2867: Fixed for UE-15388 : Bones of uniformly scaled SkeletalMesh rotate incorrectly in Persona (Contributed by rarihoma) #jira: UE-37372 Change 3178675 on 2016/10/28 by Ben.Zeigler Crash fix if you have no defaultengine.ini redirects section Change 3178698 on 2016/10/28 by Ben.Zeigler #jira UE-37774 Fix issue with loading save games referencing UObjects not in memory, this broke in 4.13 Change 3178743 on 2016/10/28 by Lina.Halper Fixed so that if no key, it clamps to 0. #jira: UE-36790 Change 3179121 on 2016/10/28 by dan.reynolds AEOverview tweaks - updated Concurrency map to tighten up the audio playback (as in James C's feedback) - tweaked some timers to be closer to real-time Change 3179912 on 2016/10/31 by Mieszko.Zielinski Removed unused piece of functionality from UEdGraphSchema_BehaviorTreeDecorator #UE4 Change 3179933 on 2016/10/31 by Lukasz.Furman fixed missing update timers in avoidance manager #ue4 Change 3180028 on 2016/10/31 by Ben.Zeigler #jira UE-373993 Fix crash with bad default value for objects Change 3180503 on 2016/10/31 by mason.seay Test map for character spawning bug Change 3180744 on 2016/10/31 by Ben.Zeigler #jira UE-38025 Fix APlayerController:DisplayDebug to not make a bad copy of the debug display manager Change 3180914 on 2016/10/31 by Ben.Zeigler #jira UE-37773 Add hooks for deleting and renaming tags, untested pending UI support Add handler for editing a gameplaytag asset from asset browser Change 3181879 on 2016/11/01 by Marc.Audy Rollback CL# 3169645 to resolve fortnite audio hitching when stopping sounds #jira UE-38055 [CL 3182044 by Marc Audy in Main branch]
2016-11-01 15:50:29 -04:00
bool FEditorModeTools::HasToolkitHost() const
{
return ToolkitHost.Pin().IsValid();
}
void FEditorModeTools::SetToolkitHost(TSharedRef<class IToolkitHost> InHost)
{
checkf(!ToolkitHost.IsValid(), TEXT("SetToolkitHost can only be called once"));
ToolkitHost = InHost;
if (HasToolkitHost())
{
UAssetEditorContextObject* AssetEditorContextObject = NewObject<UAssetEditorContextObject>(InteractiveToolsContext->ToolManager);
AssetEditorContextObject->SetToolkitHost(GetToolkitHost().Get());
InteractiveToolsContext->ContextObjectStore->AddContextObject(AssetEditorContextObject);
}
}
USelection* FEditorModeTools::GetSelectedActors() const
{
return GEditor->GetSelectedActors();
}
USelection* FEditorModeTools::GetSelectedObjects() const
{
return GEditor->GetSelectedObjects();
}
USelection* FEditorModeTools::GetSelectedComponents() const
{
return GEditor->GetSelectedComponents();
}
UTypedElementSelectionSet* FEditorModeTools::GetEditorSelectionSet() const
{
if (USelection* SelectedActorsSet = GetSelectedActors())
{
return SelectedActorsSet->GetElementSelectionSet();
}
return nullptr;
}
void FEditorModeTools::StoreSelection(FName SelectionStoreKey, bool bClearSelection)
{
if (UTypedElementSelectionSet* SelectionSet = GetEditorSelectionSet())
{
StoredSelectionSets.Emplace(SelectionStoreKey, SelectionSet->GetCurrentSelectionState());
if (bClearSelection)
{
SelectionSet->ClearSelection(FTypedElementSelectionOptions().SetAllowHidden(true));
}
}
}
void FEditorModeTools::RestoreSelection(FName SelectionStoreKey)
{
if (UTypedElementSelectionSet* SelectionSet = GetEditorSelectionSet())
{
if (FTypedElementSelectionSetState* StoredState = StoredSelectionSets.Find(SelectionStoreKey))
{
SelectionSet->RestoreSelectionState(*StoredState);
}
}
}
UWorld* FEditorModeTools::GetWorld() const
{
// When in 'Simulate' mode, the editor mode tools will actually interact with the PIE world
if( GEditor->bIsSimulatingInEditor )
{
return GEditor->GetPIEWorldContext()->World();
}
else
{
return GEditor->GetEditorWorldContext().World();
}
}
FEditorViewportClient* FEditorModeTools::GetHoveredViewportClient() const
{
// Note: as per the comment in MouseLeave, this currently acts as LastHoveredViewportClient.
return HoveredViewportClient;
}
FEditorViewportClient* FEditorModeTools::GetFocusedViewportClient() const
{
// Note: as per the comment in LostFocus, this actually currently acts as LastFocusedViewportClient.
return FocusedViewportClient;
}
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3050373) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2973846 on 2016/05/11 by Jamie.Dale Exposed FConfigValue::ExpandValue and added FConfigValue::CollapseValue These are both static and can be used to expand or collapse the macros used in our config files (mostly when dealing with paths), in code that has to deal with the config system, but isn't internal to the config system (mostly things that deal with default configs outside of UObjects). The old non-static version of FConfigValue::ExpandValue is now FConfigValue::ExpandValueInternal, which just calls FConfigValue::ExpandValue on SavedValue and ExpandedValue. This also changes some code that was using FString.Replace to use FString.ReplaceInline. This reduces allocations, and also allows us to avoid another string comparison to see whether the strings are identical (as ReplaceInline returns the number of replacements that were made). Change 2973847 on 2016/05/11 by Jamie.Dale Changing the loading phase in the localization dashboard now writes to the default config #jira UE-30482 Change 2973866 on 2016/05/11 by Jamie.Dale Deprecated some functions that were taking an unused position. These unused parameters caused confusion and lead to UE-30276. The old versions have been deprecated, and new versions without those parameters have been added. Existing code has been updated to call the non-deprecated version. - FViewportFrame::ResizeFrame - FSceneViewport::ResizeFrame - FSceneViewport::ResizeViewport Change 2974505 on 2016/05/11 by Nick.Darnell PR #2309: Added Combobox styling (Contributed by Chris528) Change 2975241 on 2016/05/12 by Richard.TalbotWatkin Made sRGB Preview the default in the Color Picker. Change 2975390 on 2016/05/12 by Jamie.Dale Made sure that en-US-POSIX is in our list of available cultures Some people use machine tags as their native text, so they need an invariant machine like culture to use as their native culture. en-US-POSIX is perfect for this. Change 2975411 on 2016/05/12 by Jamie.Dale PR #2237: Fixed formatting of Error_TooManyMaterials message (Contributed by pfranz) Change 2975559 on 2016/05/12 by Jamie.Dale Dialogue Wave VO direction can now be localized This is gathered as editor-only data. #jira UE-28715 Change 2975710 on 2016/05/12 by Jamie.Dale Implemented UObject::IsLocalizedResource to test whether the object belongs to a localized package Change 2975728 on 2016/05/12 by Jamie.Dale Exported dialogue scripts now include a column that says whether they have a localized recording of that line of dialogue #jira UETOOL-794 Change 2975763 on 2016/05/12 by Jamie.Dale We no longer warn if asked to check out a UNC path when running the GatherText commandlets #jira UE-25833 Change 2975766 on 2016/05/12 by Jamie.Dale Resolved some loc key conflicts #jira UE-25833 Change 2975774 on 2016/05/12 by Jamie.Dale PO files now only contain a single entry in the case of a native translation being exported They used to contain the original entry, as well as an entry for the native translation, however the original entry would never be used. This change also cleans up some directory walking code that was looking for archive files, and replaces it with code to load the specific archive file. Change 2975776 on 2016/05/12 by Jamie.Dale Downgraded a PO file import warning that isn't really an issue #jira UE-25833 Change 2976675 on 2016/05/13 by Jamie.Dale Fixed some more fallout from changes to use the window position when changing the game viewport mode - FSceneViewport::ResizeFrame: - Fixed the HMD monitor info setting the wrong variables. - Fixed SetWindowMode and ResizeViewport potentially being passed two different modes. - We now only move the window if we need to (this avoids issues with WindowedFullscreen window positioning). - FWindowsWindow::MoveWindowTo: - Now treats the screen space position it's given as relative to the top-left of the window, rather than the top-left of the windows' client area. - FWindowsApplication: - WM_MOVE was passing a screen space position relative to the top-left of the windows' client area, rather than its window area like Slate expected. #jira UE-30276 #jira UE-30677 Change 2976804 on 2016/05/13 by Jamie.Dale Slight optimization to FICUInternationalization::FindOrMakeCulture to avoid hitting the filesystem until we know we need to Change 2976967 on 2016/05/13 by Alexis.Matte #jira UE-30687 Cannot import a skeletal mesh scale to zero Change 2977042 on 2016/05/13 by Alexis.Matte #jira UE-29952 log a warning if fbx exceed the maximum number of LOD. #2326 Github PR #code review matt.kuhlenschmidt Change 2977074 on 2016/05/13 by Jamie.Dale Follow up to CL# 2976804 to avoid a potential change in behavior Change 2977076 on 2016/05/13 by Jamie.Dale Some tidy up and optimization to SCulturePicker Change 2977327 on 2016/05/13 by Alex.Delesky Now deleting the Redirector package on Redirector Fix Up rather than simply removing it from the Content Browser. #jira UE-30423 Change 2977499 on 2016/05/13 by Alexis.Matte #jira UE-29475 Enable UStruct child property to be favorite Change 2978415 on 2016/05/16 by Jamie.Dale We now pre-load all the culture data when starting the editor to avoid a UI hitch later Change 2978517 on 2016/05/16 by Alex.Delesky #jira UE-29406 Creating a static mesh from a geometry brush and then attempting to reimport the mesh will no longer crash the editor. Change 2978518 on 2016/05/16 by Alex.Delesky #jira UE-28210 The FBX Importer no longer runs cleanup upon failing to import an FBX file and won't crash the engine the next time an FBX is imported within the same editor session. Change 2978556 on 2016/05/16 by Alexis.Matte Fbx tests automation #jira UE-29635 Change 2978797 on 2016/05/16 by Alexis.Matte #jira UE-30774 - prevent baking the pivot if we transform the vertex with the absolute transform. - Also make sure we set the identity for the Max puivot in case we dont bake the pivot and we dont transform the vertex with the absolute transform. #code review matt.kuhlenschmidt Change 2978965 on 2016/05/16 by Alexis.Matte FBX importer, fix the socket rotation. #jira UE-30094 Change 2980613 on 2016/05/17 by Jamie.Dale Moved the XLOC UAT localization provider to be publicly accessible Change 2980614 on 2016/05/17 by Jamie.Dale Reference update for project move Change 2980633 on 2016/05/17 by Jamie.Dale Made the culture mapping used between XLOC and UE4 configurable on a per-project basis You can now override GetEpicCultureToXLocLanguageId in your custom localization provider in order to change the default mappings. Change 2980836 on 2016/05/17 by Jamie.Dale Added -LocalizationSteps flag to allow you to only run a subset of the UAT "Localise" command You can pass any of the following steps: Download, Gather, Import, Export, Compile, GenerateReports, Upload Change 2982700 on 2016/05/18 by Jamie.Dale Fixed the loc package gather potentially adding the same source location multiple times Change 2983906 on 2016/05/19 by Jamie.Dale Slight cleanup of the way we register localization gatherer callbacks Change 2984356 on 2016/05/19 by Chris.Wood Removed temporary analytics API change needed for earlier hot fix [UE-31005] - Undo temp Hardware Survey API change from 4.10 - CL 2782817 Change 2986679 on 2016/05/23 by Alex.Delesky #jira UE-24747 - Importing FBX files that contain meshes that do not have non-degenerate triangles will no longer crash the editor on import, and will warn the user that the meshes are bad. Change 2986798 on 2016/05/23 by Alex.Delesky #jira UE-31136 - Chord Input fields will no longer display the blinking edit cursor if they do not have focus. Change 2987106 on 2016/05/23 by Alexis.Matte Fbx importer, fail import must not create a package in the content browser #jira UE-31154 Change 2987563 on 2016/05/23 by Alex.Delesky #jira UE-30988 - Changed the default window mode when launching a game from the .uproject file to Windowed Change 2987564 on 2016/05/23 by Alex.Delesky #jira UE-28856 - Fixed a crash that could potentially occur when starting up PIE while dragging objects like widgets in the editor. Change 2988321 on 2016/05/24 by Jamie.Dale Added a way to backup and restore the selection state of a level (its actors and components) in a way that can be reapplied even if the level is reloaded Change 2988708 on 2016/05/24 by Jamie.Dale Fix for crash when missing the fallback/last resort font Change 2988782 on 2016/05/24 by Jamie.Dale Added the ability to version each localized string individually when loaded into the localization manager The single 32-bit global history has now been replaced with two 16-bit histories. One is global, and is updated whenever the culture is changed (or a LocRes file is loaded), and the other is local to each string, and is updated if the display string is changed outside of a culture update (to handle cases where the display string is changed, but the key is preserved). Changing the global history will reset all local histories. Because of the change from an int32 to a uint16, 0, rather than INDEX_NONE, is now considered the "unset" value for a history. Change 2988856 on 2016/05/24 by Jamie.Dale Added a way to get the package(s) of the object(s) being edited by a property panel Typically the package is just the outermost of the object being edited, however there are some cases where this may not be the case: - UMG widgets edit a transient copy of the real data, so we use the SetObjectPackageOverrides to override the package these objects should use to be the real asset package. - Structs (UDS, Data Table, etc) don't have a way to get to their package, so you have to specify it on their FStructOnScope instance (see FStructOnScope::GetPackage and FStructOnScope::SetPackage). This has been hooked up for the UDS and Data Table editors. Change 2988955 on 2016/05/24 by Alex.Delesky #jira UE-30645 - Adding in support for splash images to support .png and .jpg files. In general, this adds multi-extension support for external image references and external image picker modules. Git Request #2376 Change 2989418 on 2016/05/25 by Jamie.Dale Added a way to count text references within a package that match the given search criteria This can be used to detect whether a localization ID is unique within its package. The following search modes are available: - MatchId: Detect a reference if it matches the given ID (ignoring the source text) - MatchSource: Detect a reference if it matches the given ID and source string - MismatchSource: Detect a reference if it matches the given ID but has a different source string Change 2989436 on 2016/05/25 by Jamie.Dale Added "root-level" meta-data (meta-data associated with the package rather than an object within it) Change 2989471 on 2016/05/25 by Alexis.Matte Fbx scene importer, fix naming clash when creating package we now also look in memory to find existing package not just on disk Change 2989639 on 2016/05/25 by Jamie.Dale Added static version of FName::IsValidXName This allows you to verify name-like strings without having to convert them to an FName (and thus add them to the name table) Change 2989716 on 2016/05/25 by Alex.Delesky #jira UE-30828 - The Standalone Session Frontend will now render the names of automation tests correctly instead of as solid white blocks. Change 2990100 on 2016/05/25 by Alexis.Matte Fix crash when reimporting a mesh that originaly exceed the maximum number of LOD #jira UE-30907 Change 2991442 on 2016/05/26 by Bob.Tellez #UE4 Fix components in world not rendering when saved without a physics scene. Change 2991736 on 2016/05/26 by Bob.Tellez #UE4 Fix duplicated worlds not being initialized when inactive. Re-enabled duplication of worlds in the content browser. Change 2991942 on 2016/05/26 by Alex.Delesky #jira UE-31012 - Setting a Decimal Grid Interval value to 0 and using it will no longer crash the editor or cause an editor crash on startup. Change 2991994 on 2016/05/26 by Alex.Delesky #jira UE-31177 - Attempting to export an entire level as an object file and choosing to export all materials as images will no longer crash the editor. Change 2994037 on 2016/05/30 by Alexis.Matte Add Fbx Automation Tests - static mesh import reimport (sections and materials) - skeletal mesh import and reimport (sections and materials also bone position) - static/skeletal mesh LODs (import, add, reimport) - rigid mesh (import, reimport) Change 2994253 on 2016/05/31 by Alexis.Matte Mikkt crash when computing the normals if there is more vertex then the number of wedge #jira UE-29143 Change 2994260 on 2016/05/31 by Alexis.Matte Make sure we cannot modify fbx test plan when json file is read only Change 2994431 on 2016/05/31 by Alex.Delesky #jira UE-21900 - The scale widget should now render all axes when using an orthographic camera. Change 2994432 on 2016/05/31 by Alex.Delesky #jira UE-31328 - New objects dragged into the scene will now comply with the Surface Snapping option in the viewport, and will not use the Surface Offset if snapping is disabled. Change 2994537 on 2016/05/31 by Richard.TalbotWatkin Fixed potential crash in the Mesh Paint tool when non-transactable actors are in the SelectedActors list following a Redo. #jira UE-31172 - Crash related to Vertex Painting - MeshPaint!CastChecked<AActor,UObject>() Change 2994983 on 2016/05/31 by Richard.TalbotWatkin Added some guard code to protect against a crash when editing geometry. Repro currently unknown, ensure was added in order to try to get more information. #jira UE-30820 - UT EDITOR: CRASH: Crash in Public Release CL#2973693 Change 2995022 on 2016/05/31 by Jamie.Dale PR #2428: Added missing END_OPTIMIZATION macro to SOutputLog (Contributed by MatzeOGH) Change 2995027 on 2016/05/31 by Jamie.Dale PR #2409: fixed a small typo in GraphEditor.h (Contributed by MatzeOGH) Change 2995963 on 2016/06/01 by Alex.Delesky #jira UE-31317 - The transform gizmo will no longer block the placement of a material onto a mesh. Change 2997002 on 2016/06/01 by Cody.Albert Fix to ensure ActiveTopLevelWindow is properly set after a window is destroyed #jira UE-31448 Change 2998013 on 2016/06/02 by Alexis.Matte Prevent static mesh materials array to grow when using the reset button in the staticmesh editor. #jira UE-12931 Change 2998370 on 2016/06/02 by Alexis.Matte Fbx Automation, add some import LOD test in case the options are not ok Change 2999709 on 2016/06/03 by Jamie.Dale Fixed some issues with gathering text from BP bytecode Bytecode in Blueprints is very volatile, and can only be safely gathered after it's been compiled (which is not guaranteed to have happened by the time we save the package). This change avoids caching any assets that contain scripts (non-data-only Blueprints), and instead will always load them to perform a gather (which will ensure the Blueprint bytecode is up-to-date due to compile-on-load). Change 2999755 on 2016/06/03 by Richard.TalbotWatkin Fixes to Spline Mesh collision generation. - Fixed a serious issue with DDC ID generation, in that the static mesh wasn't forming a part of the key, hence any two spline meshes with identical properties but different meshes would yield the same cache entry. - Fixed how different collision boxes are transformed when rebuilding physics meshes. Convex collision transforms are now correctly taken into account, and spherical and capsule collision now gets correctly translated when a scale is applied to the start or end of the spline mesh. - Optimized physics rebuilding. A new BodySetup object is now only created when needed, otherwise it is reused. #jira UE-31361 - Splines handle box collision and collision from other shapes differently Change 2999973 on 2016/06/03 by Jamie.Dale We now skip bulk data when detecting text references #jira UE-31596 Change 3000159 on 2016/06/03 by Alex.Delesky #jira UE-30244 - Added a safeguard against a potential crash when editing BSP brushes before placing another BSP brush into the level. Change 3001814 on 2016/06/06 by Alexis.Matte Make sure the staticmesh Materials list dont grow when we reimport or override a LOD other then the base mesh. Add a fbx test to make sure the problem is flag by automation test #jira UE-1394 Change 3001820 on 2016/06/06 by Alex.Delesky #jira UE-19079 - Widget Blueprints should no longer crash when dragging widgets from one blueprint to a second and then compiling the second blueprint. Change 3001915 on 2016/06/06 by Alexis.Matte Make sure we check attribute type before checking attribute unique ID in case of unique id clash. #jira UE-31214 Change 3002026 on 2016/06/06 by Alexis.Matte Importing morph target should not import textures like materials since the base mesh already import thoses. UDN Question: https://udn.unrealengine.com/questions/293973/does-importing-an-fbx-with-morph-targets-cause-a-m.html Change 3002623 on 2016/06/06 by Jamie.Dale Fixing more loc conflicts Change 3002883 on 2016/06/06 by Jamie.Dale Adding retry when dealing with OneSky This is attempting to compensate for some timeouts with OneSky, which were also noticed when testing UE-31413 Change 3003004 on 2016/06/06 by Trung.Le #jira UE-13101 - Make "Description" field for a BluePrint Function multiline Change 3003859 on 2016/06/07 by Alexis.Matte #jira UE-30436 Refresh the property editor when a array element is added, remove, insert, delete and the property is favorite Change 3004132 on 2016/06/07 by Jamie.Dale Fixed a hash conflict that could occur when both the case-sensitive and case-insensitive FName hashes were identical This resulted in the case-preserving FName being added to the head of the linked list for the bucket, which caused any subsequent name lookups to return that name index for the comparison index (since it matched an insensitive string comparison), rather than the name index of the first case-variant of that name that was added to the bucket. This change has new entries be inserted at the tail of the list, which ensures that enumeration for a case-insensitive name will always find the same entry in the bucket (the first one that was ever added) and will continue to compare correctly. Change 3004286 on 2016/06/07 by Jamie.Dale Ensured that assignments that publish new names to the bucket are atomic Change 3004310 on 2016/06/07 by Jamie.Dale Ensured FName internal hashes are returned as uint16 Change 3004381 on 2016/06/07 by Jamie.Dale FAsyncPackage now creates the meta-data before processing the remaining exports This matches the behavior of FLinkerLoad::LoadAllObjects, as other objects may depend on the meta-data being loaded before them. Change 3004765 on 2016/06/07 by Alex.Delesky #jira UE-31498 - Material thumbnails will now render the full sphere rather than an extreme close-up of the material. Change 3005754 on 2016/06/08 by Trung.Le Allow whitespace for meta class names #jira UE-31668 Change 3005755 on 2016/06/08 by Stephan.Jiang UMGSequencePlayer implements GetPlaybackContext() and return UserWidget->GetWorld() if it's valid #jira UE-31299 Change 3006512 on 2016/06/08 by Alex.Delesky #jira UE-31572 - The "All Classes" tab in the Modes panel will now refresh when a placeable asset is created, renamed, or deleted without needed to navigate away from the tab first. Change 3006760 on 2016/06/08 by Jamie.Dale Added support for stable localization keys This feature adds support for preserving the existing key of an FText property when editing the source string, providing that it is the only reference to that string within the package. A side effect of this is that you're now able to specify custom keys for FText properties since we can now verify that the custom key won't cause an identity conflict. In order to limit the search domain for uniqueness to a single package, we've added the concept of a "localization namespace" to packages (stored in the meta-data). Each package is given a unique namespace, which is appended to the user-defined namespace of the text when it is modified, saved, or duplicated. This package namespace ensures that the same user-defined namespace and key may be used in different packages without causing an identity conflict. In order to access the package namespace within the Core code that hosts FText (which doesn't know about UPackage), FArchive now provides a GetLocalizationNamespace function to access the package namespace within the Core code, and a SetLocalizationNamespace function for CoreUObject and Engine code to pass down the package namespace from their packages. If you have an archive that handles duplicating objects into a different package, or duplicating packages themselves, then you'll want to make sure it's setting the package namespace correctly. FObjectReader and FObjectWriter have been updated to do this, and serve as a good example. FDuplicateDataReader (used by StaticDuplicateObject), and FCopyPropertiesArchiveObjectWriter (used when compiling Blueprints) have also been updated to set the package namespace, as they both handle copying objects between packages. TextNamespaceUtil provides a suite of functions for getting at (or setting) the namespace for a package. Keys will start to stabilize naturally over time once this feature is enabled, however the StabilizeLocalizationKeys commandlet may also be used to stabilize all the keys for a game at once. Running it for a game under source control would look something like this: MyGame -run=StabilizeLocalizationKeys -IncludeGame -NativeCulture=en -EnableSCC This commandlet also updates your localization archives to use the new text identities, however you'll still need to run a localization gather and localization compile before the updated translations will be available for your game. Note: This feature is currently disabled via the USE_STABLE_LOCALIZATION_KEYS define. It will be enabled at a later date. #jira UETOOL-796 Change 3007501 on 2016/06/09 by Trung.Le #jira UE-31722 Fix MaterialFunctions crash when editing text in Libraries Category Text field. Solution: Removed PredEdit and PostEdit from IEditableTextProperty, its derived types and other code that was calling them. The new SetText method already calls NotifyPreChange and NotifyPostChange to properly create/destroy ScopedTransaction. Change 3007524 on 2016/06/09 by Jamie.Dale Added some additional checks to avoid re-keying text when duplicating for PIE Change 3007564 on 2016/06/09 by Jamie.Dale PR #2401: DataTable import/export improvements (Contributed by bozaro) Change 3007653 on 2016/06/09 by Jamie.Dale PR #2459: Generate JSON for nested structs in DataTable rows (Contributed by jorgenpt) Change 3008019 on 2016/06/09 by Jamie.Dale Updated structs to export as JSON when displaying them in the Data Table editor This produces much cleaner results than using the text export method (which will use the internal names for user defined structs). This also cleans up the FDataTableExporterCSV and FDataTableExporterJSON APIs so that you don't need to pass in a UDataTable if you're not going to use it. #jira UE-29958 Change 3008052 on 2016/06/09 by Jamie.Dale Fixed bug importing an array inside a JSON Data Table This was noticed when testing a GitHub PR, but the JSON importer for a Data Table was appending the new data to the array rather than replacing it. It now clears the array prior to importing. Change 3008875 on 2016/06/10 by Jamie.Dale PR #2406: Git plugin: Fix for Git diff not working in UE 4.12 (and master) (Contributed by SRombauts) Change 3008879 on 2016/06/10 by Jamie.Dale PR #2484: Git Plugin: fix the Submit To Source Control menu broken by new "migrate" support in 4.12 (and master) (Contributed by SRombauts) Change 3008990 on 2016/06/10 by Alex.Delesky #jira UE-15699 - Submitting to source control via the editor should now check for current asset status before prompting the user to submit their changes. This should prevent files that had been previously deleted from being readded to source. Change 3008991 on 2016/06/10 by Alex.Delesky #jira UE-31688 - The Output Log will now automatically anchor to the bottom of the scroll bar when the user scrolls all the way down using the mouse wheel or clicking and dragging the content window. Change 3010856 on 2016/06/13 by Alexis.Matte #jira UE-31713 Fix a serialize issue for skeletal mesh with apex cloth. Change 3011736 on 2016/06/13 by Jamie.Dale Adding missing plurals.res file This is needed to get plural form information from ICU. #jira UETOOL-875 Change 3012387 on 2016/06/14 by Richard.TalbotWatkin Disabled the Paste context menu action if the property is marked as EditConst. #jira UE-27469 - User is able to paste values into a read-only setting Change 3012971 on 2016/06/14 by Stephan.Jiang Editor Preferences->Widget Designer now have two options to toggle the visibilities of widgets created from Engine content folder and Developers folder. By default, visibility for engine content is off and developers is on #jira UE-31657 Change 3013111 on 2016/06/14 by Jamie.Dale Unified the number, percentage, and currency formatting between the ICU and Legacy text implementations Removed all the old legacy number formatting code, and removed the calls to the ICU specific number formatting. Everything is now using FastDecimalFormat as this will allow some optimizations later when formatting numbers in FText::Format. Change 3015438 on 2016/06/15 by Cody.Albert Fixing ScrollBy function to calculate new scroll offset based on the current scroll offset and not the current desired scroll offset (which may not be the same during an animation) #jira UE-32082 Change 3016782 on 2016/06/16 by Richard.TalbotWatkin Corrected ConvexHull2D so that it returns an empty set of indices when passed an empty points array. Change 3016949 on 2016/06/16 by Jamie.Dale Added FastDecimalFormat overloads to write into an existing string This helps avoid an extra allocation if you already have a pre-sized string that you're writing the number to (as is the case in FText::Format). Change 3016952 on 2016/06/16 by Jamie.Dale Changed an Add for an Emplace to avoid moving a temporary Change 3016954 on 2016/06/16 by Jamie.Dale Updated some FText code to avoid creating temporary objects just to move data through a hierarchy There was some code in FText and its internal types that were using pass-by-value as a marshaller to move data through a hierarchy. This resulted in temporary objects being created and destroyed to facilitate the movement of data. This change has all the internal FText code (private FText constructors, internal text data, and internal text history) take its movable types as an r-value reference. This avoids the temporary objects, but also makes it impossible to accidentally copy a construction argument when you meant to move it (you can still copy, but the copy must be explicit). In addition to this, FText::FromString and FText::AsCultureInvariant now have two overloads, const FString& and FString&&, to avoid them creating a temporary when you're invoking a move. FText::ChangeKey now takes its parameters by const& as their data wasn't being moved further down the chain, so the by-value copy was wasteful. Change 3019021 on 2016/06/19 by Richard.TalbotWatkin When deleting a brush, ensure geometry is rebuilt before updating the details panel according to the selection change, so that the old Surface Properties don't continue to appear. #jira UE-8966 - Surface Properties of a BSP remain in the details panel after the BSP is deleted Change 3019022 on 2016/06/19 by Richard.TalbotWatkin Fixed issue where the Surface Properties category in the Details panel doesn't appear after selecting a surface on a Brush which has just been placed. #jira UE-31916 - Selecting an edge of BSP geometry then a face does not show Surface Properties while in Place mode #jira UE-31915 - Selecting BSP face does not show Surface Properties in Details Change 3019025 on 2016/06/19 by Richard.TalbotWatkin Fixed issue which was stopping 'Cancel' from correctly returning a 'Cancelled' result during P4 asynchronous ops. #jira UE-28595 - Submit to Source Control: "Checking for assets to check in..." cancel button does not cancel operation, editor becomes unresponsive Change 3020050 on 2016/06/20 by Cody.Albert Changed window centering logic to correctly work when monitor 1 isn't set to primary monitor. #jira UE-32173 Change 3021145 on 2016/06/21 by Jamie.Dale Added support for text format argument modifiers These can be used to mutate a format argument before appending it to the resultant formatted string, and are applied to the preceding argument via a pipe, eg) "{Arg}|plural(one=is,other=are)". We provide a few of these by default: - |plural(key=val,...) - |ordinal(key=val,...) Provides support for cardinal and ordinal plural forms, where key may be any of "one", "two", "few", "many", or "other", and val may be any optionally quoted string. - |gender(masculine,feminine,[neuter]) Provides support for gender forms, where the 0th item is the masculine version, the 1st item is the feminine version, and the 2nd item is an optional neuter version. The values may be any optionally quoted string. - |hpp(consonant,vowel) Provides support for Hangul post-positions, where the 0th item is the consonant suffix, and the 1st item is the verb suffix. The values may be any optionally quoted string. Major changes: - Exposed the ICU plural form handling via FCulture::GetPluralForm. - Updated the FText formatting code to use an expression evaluator (to support the more complex expressions needed for the argument modifiers). - Added FTextFormat to store a pre-compiled format expression. Re-using one of these if you're performing a lot of formats with the same FText will increase your performance (as around half of the FText::Format cost can be compilation, via an implicit construction of FTextFormat). - Updated the FText::Format(...) family of functions to take their format string as FTextFormat, and take their arguments as FFormatArgumentValue. This allows us access to the real numeric types within the format code, but doesn't break the existing API as these types are implicitly constructible from the old parameters (FText). - Converted text history to store their format string as an FTextFormat in-case they need to perform a re-format (this is still saved as an FText). Breaking changes: - The rules for the escape token have been simplified, and there is an incredibly unlikely chance that this may affect some text: - The ` character will now only escape a valid character (producing only the escaped character in the final string), or it will be ignored and inserted as a literal character, eg) "`{F" -> "{F", and "`F" -> "`F". - Previously it would also remove the escape character when it followed { or }, eg) "{`" -> "{" and "}`" -> "}", rather than "{`" and "}`" like you might expect. It would also have previously removed a ` at the end of a string due to a parser bug. Change 3021156 on 2016/06/21 by Jamie.Dale Updated LinuxToolChain to use the same output delegate for all of its actions when cross-compiling This avoids the compile and link actions being split into different batches. Change 3021280 on 2016/06/21 by Richard.TalbotWatkin Fixed bug in parsing LOD in UStaticMeshComponent::ImportCustomProperties (thanks to Aurelien Cordonnier). #jira UE-31937 - UDN code submission for UStaticMeshComponent::ImportCustomProperties parsing bug Change 3022949 on 2016/06/22 by Alex.Delesky #jira UE-31944 - Upgrading Subversion binaries to version 1.9.4. Change 3023092 on 2016/06/22 by Jamie.Dale Downgraded some checks to ensures and added an early out #jira UE-32009 Change 3023154 on 2016/06/22 by Jamie.Dale Ported over CL# 3018771 to the UE automation This fixes an issue where a downloaded PO file smaller than the one already on disk leaving a mix of both files on disk (rather than the existing file on disk being truncated). Change 3023579 on 2016/06/22 by Jamie.Dale Expanded the Blueprint FormatText node to support numeric and gender types These are needed to correctly support the new plural and gender forms that can be used in format strings, as these require actual numeric/enum data to be passed into the format arguments, rather than pre-formatted text. Major changes: - The FormatText node for Blueprints now uses PC_Wildcard as its pin type for format arguments instead of PC_Text. - Any existing literal text argument data in the pin is hoisted out into a "Make Literal Text" node which is then connected to the pin. - FFormatArgumentData has been updated to be variant on the data needed by Blueprints. It's now a less comprehensive and non-unioned version of FFormatArgumentValue. - The version of FText::Format taking FFormatArgumentData has been deprecated as its usage was internal to Blueprints and we have much better ways to format text in C++. Any existing C++ using that (of which we have none internally) should be updated to use FFormatArgumentValue instead. Change 3023915 on 2016/06/22 by Jamie.Dale Cleaned up some of the UK2Node_FormatText expansion code to avoid unchecked literals Change 3024813 on 2016/06/23 by Jamie.Dale Renamed FContext to FManifestContext to better reflect its purpose and avoid naming conflicts with other code Change 3024852 on 2016/06/23 by Nick.Darnell FBX - Updating automation tests with the changes to chunk and chunk index removal and them being merged with sections. Change 3024994 on 2016/06/23 by Nick.Darnell UMG - Removing the DesignerWidgetTree, instead going to directly inject the widget tree into the partially constructed UUserWidget during design time, when refreshing the preview. This avoids doing something a little dangerous and sketchy like updating the living class instance with a new designer tree that all new instances will begin biasing using. Also making the preview widget explictly non-transactional as there's no reason to track changes to the preview, all the changes that need to be tracked should be on the template widget. This should fix the crash in the widget designer when you Undo just after compiling the widget blueprint. #jira UE-31155 Change 3025194 on 2016/06/23 by Alex.Delesky #jira UE-31155 - Compilation error fix. Change 3025255 on 2016/06/23 by Alex.Delesky #jira UE-21900 - Redoing changes done in CL 2994431 since it got stomped. Reinstates the grabber handles and ensures consistent scaling on the scale widget in orthographic viewports. Change 3025460 on 2016/06/23 by Cody.Albert Fixed issue where widget components would misalign when aspect ratio was being constrained #jira UE-29637 Change 3025508 on 2016/06/23 by Cody.Albert Adding support for adjusting animation playback speed #jira UE-32222 Change 3026444 on 2016/06/24 by Jamie.Dale Fixed crash caused by bad access of shared this when closing an active IME context This was only needed to get the owner window, which we now cache when the IME context is created. #jira UE-32240 Change 3028358 on 2016/06/27 by Jamie.Dale Fixed IMEs not working due to no window being cached #jira UE-32240 Change 3028464 on 2016/06/27 by Alex.Delesky #jira UE-31873 - A single "Files need check-out" notification will now be shown instead of multiple notifications if multiple files need to be checked out, and updated as more files need to be checked out. Change 3028524 on 2016/06/27 by Chris.Wood Switched off uploads to legacy Crash Report Receiver. [UE-31252] - Switch off deprecated CRR upload in Crash Report Client Also added CRC version string, added to crash context from CRC config Change 3028840 on 2016/06/27 by Alexis.Matte #jira UE-32306 replace material bad name character by an underscore when doing a scen import. Change 3028924 on 2016/06/27 by Alexis.Matte #jira UE-32125 Make sure we can add a plan when a fbx file is drop in the fbx automation test folder Change 3029044 on 2016/06/27 by Alex.Delesky #jira UE-31944 - Updating SVN binaries for Mac to 1.9.4 Change 3029276 on 2016/06/27 by Alex.Delesky #jira UE-31531 - A user can now select the base class when creating a new physical material. PR #2462: added dialog, which enables picking base class for asset (Contributed by iniside) Change 3029459 on 2016/06/27 by Alexis.Matte #jira UE-32354 Make sure we set all blueprint component to the correct mobility set in the scene import options. Change 3030577 on 2016/06/28 by Nick.Darnell PR #2531: Git plugin: fix wrong status icons (Contributed by SRombauts) Change 3030587 on 2016/06/28 by Alexis.Matte #jira UE-32251 add missing body setup variables when restoring the body setup value after a re-import of a staticmesh Change 3030946 on 2016/06/28 by Alexis.Matte #jira UE-32515 prevent crash when re-import staticmesh userdata Change 3031115 on 2016/06/28 by Jamie.Dale The DDC builder now gives the shader compile worker a chance to catch up when it pauses to run a GC pass This prevents an issue where the shader backlog could cause massive amounts of memory to be consumed. Change 3031146 on 2016/06/28 by Jamie.Dale Fixed errors when building with USE_STABLE_LOCALIZATION_KEYS enabled caused by UEdGraphPin no longer being a UObject Change 3031357 on 2016/06/28 by Nick.Darnell PR #2431: Add plugin support to the editor class wizard. (Contributed by Koderz) Change 3031515 on 2016/06/28 by Jamie.Dale Fixed game targets not being able to depend on other game targets Change 3031520 on 2016/06/28 by Jamie.Dale Localization compilation now specifies an ArchiveName to use Change 3031671 on 2016/06/28 by Nick.Darnell Editor - Checking to see if a weak variable is valid before using it in the editor build window. Change 3032013 on 2016/06/28 by Matt.Kuhlenschmidt Added ability to invert the Y axis in editor viewports for mouse look and orbit Change 3032495 on 2016/06/29 by Jamie.Dale Fixed some measuring issues with bi-directional text within a right-flowed document There were three main issues: 1) Measuring blocks was measuring visual glyphs rather than logical glyphs (this caused bad measures/wrapping and overlapped rendering). 2) The text layout would consider blocks visually contiguous without making sure the block flow direction matched the line flow direction (this caused bad highlights). 3) The text layout would fail to compensate for a non-contiguous block that had a flow direction different to the line flow direction (it was hard-coded for RTL in LTR, so broke for LTR in RTL - this caused bad highlights). #jira UE-32526 Change 3032533 on 2016/06/29 by Nick.Darnell UMG - The widget component now extends from UMeshComponent, it can have a custom material applied to it, in order to achieve cooler effects - like ignoring the depth buffer. Users who use this option are encouraged to start with the widget components default material and work from there. The widget component now offers the ability to automatically size the render target to be the desired size of the widget - note that this can go real bad if your widget wants to be really big. Change 3032855 on 2016/06/29 by Alexis.Matte #jira UE-32508 Remove the cachewindow from the FTextInputMethodContext constructor since it will be cache only when the IME is activated #test please re-test also UE-32240 Change 3033145 on 2016/06/29 by Alex.Delesky #jira UE-32239 - The PropertyEditorModule will no longer cause a crash on editor shutdown if a SDetailsView widget tries to force refresh itself when the Slate application is no longer initialized. Change 3033147 on 2016/06/29 by Alex.Delesky #jira UE-32326 - Clicking on the "Install {compiler}" button when trying to create a new code class or code project will now not crash the engine if it fails to open the installation file for write, nor will it create multiple notifications if the button is pressed repeatedly. This also addresses a potential issue with static initialization order when it comes to adding TickableEditorObjects to its corresponding array, since it was wholly possible for a statically initialized TickableEditorObject to initialize itself and add itself to the tickable objects arra before the tickable objects array was initialized, causing that object to not get ticked at runtime and causing a crash when the editor was closed. Change 3033162 on 2016/06/29 by Alex.Delesky #jira UE-31827 - Undo/redo now works in the Material function editor. Change 3033391 on 2016/06/29 by Matt.Kuhlenschmidt Fix post process settings blendable picker not being readable in the details panel Change 3033498 on 2016/06/29 by Matt.Kuhlenschmidt Fixed huge number of redundant calls to CanEditChange and DiffersFromDefault that were causing massive performance loss when thousands of objects are selected. CanEditChange and DiffersFromDefault are now cached each time a property value changes. Fixed redundant calls for getting visualizers for each selected object. This is now cached on selection Change 3033504 on 2016/06/29 by Matt.Kuhlenschmidt Fix Mass customization on the body instance not working with undo/redo or reset to default Change 3034357 on 2016/06/30 by Alex.Delesky #jira UE-31184 - Renamed the multiple collision components in the cascade particle system to more accurately reflect what they represent. Change 3035915 on 2016/07/01 by Richard.TalbotWatkin Fix to SListPanel so that those with horizontal arrangement (i.e. from STileView) use the number of desired items instead of the number of actual items in order to calculate the desired size of the geometry. This fixes the case where an STileView is contained within an SScrollBox. #jira UE-32195 - STileView no longer works correctly when placed inside of a SScrollBox Change 3035951 on 2016/07/01 by Richard.TalbotWatkin Fixed issue when importing a brush, so that the brush is always validated (relinked), whether it be a static or dynamic brush. This is because the process of rebuilding a dynamic brush sets the link indices to signify FBspSurf indices from the UModel instead of FPoly indices (the FPoly::iLink member is overloaded in its meaning). Always forcing a relink correctly sets the linked list of coplanars. #jira UE-32087 - Crash occurs when creating Static Mesh from Trigger Volume Change 3036991 on 2016/07/04 by Alexis.Matte #jira UETOOL-901 Scene importer now support the rigid mesh animation Change 3037037 on 2016/07/04 by Jamie.Dale Fixed regression in editable text box alignment Text was no longer vertically aligned center since SEditableText was converted to use a text layout. This vertical alignment is now handled by the outer SEditableTextBox instead. Change 3037057 on 2016/07/04 by Richard.TalbotWatkin Fixed screenshots when running automation tests so that they are saved locally when a FAutomationWorkerScreenMessage is received. #jira UE-29815 - In-game screenshot isn't working under certain circumstances Change 3037082 on 2016/07/04 by Chris.Wood Added detection of asserts and passing assert flag and crash type string to crash reports. [UE-30592] - Crash Reporter should determine crash type on client and pass string to server Reviewe by Steve with reservations about the static variable for setting asserted state. While not thread-aware, this is probably accurate enough for the purpose of crash reporting, certainly for now. I'm submitting it like this because the work required to add fully thread-aware fix is not necessary at this point. Change 3037095 on 2016/07/04 by Alexis.Matte Fix the bone name when duplicating a socket. Change 3037453 on 2016/07/05 by Stephan.Jiang Adding ability to animate the root wigdet #2 FHierarchyRoot adds the preview widget instead of CDO to selectedobjects in widgetblueprint the properties are then migrated back to the CDO #UE 31810 Change 3037487 on 2016/07/05 by Jamie.Dale Fixed crash caused by stale BP pointer #jira UE-32325 Change 3037488 on 2016/07/05 by Jamie.Dale Fixed a crash that could occur when a class and a folder had the same name Change 3037526 on 2016/07/05 by Jamie.Dale Speculative fix for a potential race condition when shutting down the editor while a "launch" was in progress The launch-thread could potentially queue up a request after the game-thread had requested it cancel, and cleared out any queued tasks. This change has the game-thread wait for the launch-thread to acknowledge its cancellation before continuing with editor shutdown. #jira UE-17688 Change 3037557 on 2016/07/05 by Alex.Delesky #jira UE-32424 - Added a safeguard to ensure that renaming a world that was duplicated from another world would not crash the editor if both worlds' lightmaps and shadowmaps were still active in memory, due to the editor attempting to rename identical textures from different packages to the same location. The actual fix to this issue was performed in an earlier CL, but this should prevent the editor from crashing if the issue returns. Change 3037558 on 2016/07/05 by Alex.Delesky #jira UE-32285 - Importing assets to the Content Browser via drag and drop operations are no longer permitted while the UI file picker dialog is opened. Change 3037559 on 2016/07/05 by Alex.Delesky #jira UE-32075 - The user can no longer attempt to import non-FBX and non-OBJ files when importing into a level. Change 3037593 on 2016/07/05 by Stephan.Jiang GitHub #2549: Add function for setting the playback rate of UMG animations original code shelved in CL 3033449 #UE-32653 Change 3037605 on 2016/07/05 by Jamie.Dale Fixed infinite recursion that could happen when gather loc from an object with a custom callback #jira UE-32670 Change 3037649 on 2016/07/05 by Nick.Darnell PR #2538: [WidgetBlueprintLibrary] GetAllWidgetsOfClass, Added META ~ DeterminesOutputType, DynamicOutputParam, removes the need for extra cast,  Rama (Contributed by EverNewJoy) Change 3037652 on 2016/07/05 by Nick.Darnell Clean - Removing commented out code. Change 3037658 on 2016/07/05 by Matt.Kuhlenschmidt Fix initial hitch when dragging around in a color picker opened from a material expression node. Change 3037679 on 2016/07/05 by Nick.Darnell Engine - Texture2D no longer forces the MIP level to 0 for TextureGroup_UI textures. Change 3037757 on 2016/07/05 by Nick.Darnell PR #2447: WebBrowser widget: Added GetUrl method and OnUrlChanged property (Contributed by nelbok) Change 3037840 on 2016/07/05 by Nick.Darnell UMG - Now allowing for spirtes to be used just like textures and materials on UMG widgets anywhere that takes a brush, can now also take a Sprite. There is now a ISlateTextureAtlasInterface interface that any UObject may now implement if it wishes to integrate with UMG to provide its atlas data in a form Slate can understand. Change 3037924 on 2016/07/05 by Jamie.Dale Re-ordered variable initialization to appease a warning on Mac Change 3037981 on 2016/07/05 by Jamie.Dale Fixed crash where FColorStructCustomization could call SetPerObjectValues with an empty array #jira UE-32639 Change 3038075 on 2016/07/05 by Cody.Albert Removed misleading error message in HandleCECommand #jira 28007 Change 3038231 on 2016/07/05 by Alexis.Matte #jira UE-30694 We set the section collision only if there is an imported collision or a generated one. If there is no collision we do not set the collision flag. Change 3038275 on 2016/07/05 by Alex.Delesky #jira UE-32689 - "Game Gets Mouse Control" will now override the Capture Mouse on Launch setting when launching the game from within a Level Viewport (i.e., within the editor window itself). Change 3039310 on 2016/07/06 by Trung.Le #jira UE-25005 Change PIE Key Bindings - Removed Shift+F1 and Esc from BaseInput.ini - Created new customizable key binding for + Shift+F1: same functionality. + Esc: now will pause the play session and bring back the mouse cursor. Clicking the mouse on the viewport should resume play session. + Shift+Esc: now will stop the play session Change 3039458 on 2016/07/06 by Trung.Le Removed unused code in StaticMeshLight.cpp Change 3039827 on 2016/07/06 by Frank.Fella FString - Fix divide overload path concatenation for empty paths since there are several places in the engine that expect using that doing { path / "" } will append a / onto path. #jira UE-31959 Change 3041094 on 2016/07/07 by Nick.Darnell WebBrowser - Fixing an issue where the web browser widget plugin wasn't loading soon enough to be properly loaded in time if it was referenced by game nessesary content thatloads in the Default stage of the pipeline, so moving it to PreDefault. #jira UE-32694 Change 3041110 on 2016/07/07 by Matt.Kuhlenschmidt Fix visualizers on blueprint actors not working when the internal components are trashed and replaced Change 3041302 on 2016/07/07 by Chris.Wood Increased buffer size for crash uploads. [UE-32151] - High number of crashes read from S3 by Crash Report Process are failing to unpack Trivial change in dev branch - no code review Change 3041969 on 2016/07/07 by Nick.Darnell UMG - Input Key Selector now no longer adds a bogus Selected Key property to the details panel. Change 3041971 on 2016/07/07 by Nick.Darnell UMG - Not using separate settings for the Engine/Developer folders visible in the UMG palette, now just using the same setting that powers the content browser. Change 3042612 on 2016/07/08 by Trung.Le #jira UE-25005, set Shift+Esc defaults to toggle play/pause and Esc remains defaults to quit Change 3042732 on 2016/07/08 by mitchell.wilson Adding test content for UMG Paper 2d Atlas test Change 3042780 on 2016/07/08 by mitchell.wilson Updating UMG_Paper2d test content for UMG Paper 2d Atlas testing Change 3042870 on 2016/07/08 by mitchell.wilson Renaming UMG_Paper2d to UMG_Sprite Change 3044104 on 2016/07/10 by Nick.Darnell PR #2104: Improved widget input support (Contributed by projectgheist) Change 3044107 on 2016/07/10 by Nick.Darnell Slate - Fixing the slider handle rendering to no longer run off the edge and get cut off. #jira UE-25750 Change 3044377 on 2016/07/11 by Chris.Wood Add Slack messaging module - Epic Friday Change 3044536 on 2016/07/11 by Alex.Delesky #jira UE-7293 - Mouse locking to viewport is now determined off an enum instead of a boolean, to allow for more flexibility when upgrading with new features. Change 3044922 on 2016/07/11 by Nick.Darnell Slate/UMG - Working on better support for VR interactions with Slate widgets. This change fixes a lot of issues with the way interaction works with slate widgets rendered in the virtual world. Breakages, direct mouse interaction with widgets in the virtual world is no longer supported. Those kinds of interactions must all use the WidgetInteractionComponent now, which by default works similar to the lasers in VREditor for interaction. However - you can disable automatic hittesting, and instead provide a custom hitresult instead if you want to use screen tracing and act like you're just a mouse cursor that is supported. Menu anchors now properly function inside of widgets in the virtual world. Performance improvements - the viewport no longer arranges all 3d widgets every frame. Additionally, Widget Components now support a whole bunch of methods for reducing how often they redraw to help control performance, they also support manual refresh. This automatically works in tandem with the widget interaction component to request refresh whenever the widget interaction component is interacting with the widget, thus giving you a simple way to only redraw widgets that the user is hovering on top of. Unrelated - this change also fixes Stop navigation commands not working with Next/Prev navigation - Wrap is still unsupported. Change 3045157 on 2016/07/11 by Nick.Darnell Slate - Always consume the bottom face button of the analog cursor, even if it's a repeat. Change 3045355 on 2016/07/11 by Matt.Kuhlenschmidt Added logging for unreproducible top 10 crash in matinee when a track ends up not being able to add a keyframe Change 3045358 on 2016/07/11 by Alex.Delesky #jira UE-31179 - The editor should now log additional information and hit an assertion if the editor tries to construct FObjectOrAssetData using invalid data. This doesn't stop the crash, but should help get some extra info when it does break. Change 3045371 on 2016/07/11 by Matt.Kuhlenschmidt Enable the widget reflector from the editor console by typing "widgetreflector" Change 3045387 on 2016/07/11 by Stephan.Jiang Stripping off 'b' in the propertyname so that "Is Enabled" is animated properly. #UE-31874 Change 3046093 on 2016/07/12 by Nick.Darnell UMG - The Slider now exposes the IsFocusable option from Slate. #jira UE-32960 Change 3046094 on 2016/07/12 by Alexis.Matte #jira UE-32807 scene re-import blueprint hierarchy kept some part of old blueprint component value. Change 3046104 on 2016/07/12 by Stephan.Jiang typo "Syc" causing the "Sync" button doesn't show Slateicon #UE-31409 Change 3046142 on 2016/07/12 by Nick.Darnell Orion - Upgrading more code to use the new input mode functions and not the deprecated ones. Change 3046165 on 2016/07/12 by Nick.Darnell UMG - Fixing a crash on the widget component if the render target is null when reapplied through widget component data. #jira UE-32844 Change 3046255 on 2016/07/12 by Nick.Darnell UT - More build warning fixes for the new Input Mode methods. Change 3046604 on 2016/07/12 by Richard.Hinckley Adding a template file and code to support creating a UInterface directly from the New C++ Class wizard. Change 3047071 on 2016/07/12 by Matt.Kuhlenschmidt Better way of summoning the widget reflector from the console Change 3047842 on 2016/07/13 by Matt.Kuhlenschmidt Mark Subdivision surface setting as advanced since it is experimental and definitely for advanced users only Change 3048754 on 2016/07/13 by Trung.Le #jira UE-32159 Automatically regain focus after user gets mouse control during PIE session so we can continue process PIE keybinding commands Change 3048756 on 2016/07/13 by Trung.Le Removed default toggle pause/play keybinding from BaseInput.ini, instead we should use the action defined in DebuggerCommands that is customizable Change 3048865 on 2016/07/13 by Trung.Le #jira UE-32159 SGlobalPlayWorldActions widget shouldn't clear out active widget pointer when it's being handled properly Change 3048892 on 2016/07/13 by Nick.Darnell UMG - Fixing a problem with the interaction component, it now does some basic intelligent ignoring of anything it's attached to - excluding widget components. So it's easier to attach it to things that might be inside of a say a player collision capsule. Also removing the 'Max Interaction Distance' from the widget component as that is no longer the arbitor of interaction distance. #jira UE-33250 Change 3049096 on 2016/07/13 by Trung.Le Wrap SGlobalPlayActions around ViewportWidget instead of making it a child of ViewportWidget. This was causing PIE to stop working when there are other UMG in game. #jira UE-33259 Change 3049177 on 2016/07/13 by Stephan.Jiang Fixing the "No Animation Selected" tag shows up after switching back from Graph to Designer. #UE-33016 Change 3049726 on 2016/07/14 by Stephan.Jiang Adding icons for terrain mirror tool #UE-20588 Change 3049957 on 2016/07/14 by Nick.Darnell Slate - Fixing a small bug in the virtual user function - was preventing getting the same virtual user multiple times if it had already been created. Adding an option to the widget component to control the focusabilty of the underlying slate window that's created to host the widget content. Adding an option to the widget interaction component to control if it should be simulating mouse input at all - use this to effectively disable hit testing, and changing hover states and the like. Change 3049994 on 2016/07/14 by Stephan.Jiang Set viewed animtion to current animtion after switching from Graph to Designer (This is for "No Animation Selected" showing up when switching) #UE-33016 Change 3050194 on 2016/07/14 by Stephan.Jiang Added ability to replace the widget the track is currently bound to Also includes changes in WidgetBlueprintEditor to send delegate to AnimationtabSummoner when switching from Graph to Designer #UE-31809 [CL 3050870 by Matt Kuhlenschmidt in Main branch]
2016-07-14 19:07:16 -04:00
bool FEditorModeTools::SelectionHasSceneComponent() const
{
return bSelectionHasSceneComponent;
}
bool FEditorModeTools::IsSelectionAllowed(AActor* InActor, const bool bInSelected) const
{
bool bSelectionAllowed = (ActiveScriptableModes.Num() == 0);
for (const UEdMode* Mode : ActiveScriptableModes)
{
// Exclusive ability for a mode to disable selection
if (Mode->IsSelectionDisallowed(InActor, bInSelected))
{
return false;
}
bSelectionAllowed |= Mode->IsSelectionAllowed(InActor, bInSelected);
}
return bSelectionAllowed;
}
bool FEditorModeTools::IsSelectionHandled(AActor* InActor, const bool bInSelected) const
{
bool bSelectionHandled = false;
ForEachEdMode([&bSelectionHandled, bInSelected, InActor](UEdMode* Mode)
{
bSelectionHandled |= Mode->Select(InActor, bInSelected);
return true;
});
return bSelectionHandled;
}
bool FEditorModeTools::ProcessEditDuplicate()
{
bool bHandled = false;
ForEachEdMode([&bHandled](UEdMode* Mode)
{
bHandled |= Mode->ProcessEditDuplicate();
return true;
});
return bHandled;
}
bool FEditorModeTools::ProcessEditDelete()
{
bool bHandled = InteractiveToolsContext->ProcessEditDelete();
ForEachEdMode([&bHandled](UEdMode* Mode)
{
bHandled |= Mode->ProcessEditDelete();
return true;
});
return bHandled;
}
bool FEditorModeTools::ProcessEditCut()
{
bool bHandled = false;
ForEachEdMode([&bHandled](UEdMode* Mode)
{
bHandled = Mode->ProcessEditCut();
return !bHandled;
});
return bHandled;
}
bool FEditorModeTools::ProcessEditCopy()
{
bool bHandled = false;
ForEachEdMode([&bHandled](UEdMode* Mode)
{
bHandled = Mode->ProcessEditCopy();
return !bHandled;
});
return bHandled;
}
bool FEditorModeTools::ProcessEditPaste()
{
bool bHandled = false;
ForEachEdMode([&bHandled](UEdMode* Mode)
{
bHandled = Mode->ProcessEditPaste();
return !bHandled;
});
return bHandled;
}
EEditAction::Type FEditorModeTools::GetActionEditDuplicate()
{
EEditAction::Type ReturnedAction = EEditAction::Skip;
ForEachEdMode([&ReturnedAction](UEdMode* Mode)
{
const EEditAction::Type EditAction = Mode->GetActionEditDuplicate();
if (EditAction == EEditAction::Process || EditAction == EEditAction::Halt)
{
ReturnedAction = EditAction;
return false;
}
return true;
});
return ReturnedAction;
}
EEditAction::Type FEditorModeTools::GetActionEditDelete()
{
EEditAction::Type ReturnedAction = EEditAction::Skip;
ForEachEdMode([&ReturnedAction](UEdMode* Mode)
{
const EEditAction::Type EditAction = Mode->GetActionEditDelete();
if (EditAction == EEditAction::Process || EditAction == EEditAction::Halt)
{
ReturnedAction = EditAction;
return false;
}
return true;
});
return ReturnedAction;
}
EEditAction::Type FEditorModeTools::GetActionEditCut()
{
EEditAction::Type ReturnedAction = EEditAction::Skip;
ForEachEdMode([&ReturnedAction](UEdMode* Mode)
{
const EEditAction::Type EditAction = Mode->GetActionEditCut();
if (EditAction == EEditAction::Process || EditAction == EEditAction::Halt)
{
ReturnedAction = EditAction;
return false;
}
return true;
});
return ReturnedAction;
}
EEditAction::Type FEditorModeTools::GetActionEditCopy()
{
EEditAction::Type ReturnedAction = EEditAction::Skip;
ForEachEdMode([&ReturnedAction](UEdMode* Mode)
{
const EEditAction::Type EditAction = Mode->GetActionEditCopy();
if (EditAction == EEditAction::Process || EditAction == EEditAction::Halt)
{
ReturnedAction = EditAction;
return false;
}
return true;
});
return ReturnedAction;
}
EEditAction::Type FEditorModeTools::GetActionEditPaste()
{
EEditAction::Type ReturnedAction = EEditAction::Skip;
ForEachEdMode([&ReturnedAction](UEdMode* Mode)
{
const EEditAction::Type EditAction = Mode->GetActionEditPaste();
if (EditAction == EEditAction::Process || EditAction == EEditAction::Halt)
{
ReturnedAction = EditAction;
return false;
}
return true;
});
return ReturnedAction;
}
void FEditorModeTools::DeactivateOtherVisibleModes(FEditorModeID InMode)
{
ForEachEdMode([this, InMode](UEdMode* Mode)
{
if (Mode->GetID() != InMode && Mode->GetModeInfo().IsVisible())
{
DeactivateMode(Mode->GetID());
}
return true;
});
}
bool FEditorModeTools::IsSnapRotationEnabled() const
{
bool bRetVal = false;
ForEachEdMode([&bRetVal](UEdMode* Mode)
{
bRetVal = Mode->IsSnapRotationEnabled();
return !bRetVal;
});
return bRetVal;
}
bool FEditorModeTools::SnapRotatorToGridOverride(FRotator& InRotation) const
{
bool bRetVal = false;
ForEachEdMode([&bRetVal, &InRotation](UEdMode* Mode)
{
bRetVal = Mode->SnapRotatorToGridOverride(InRotation);
return !bRetVal;
});
return bRetVal;
}
void FEditorModeTools::ActorsDuplicatedNotify(TArray<AActor*>& InPreDuplicateSelection, TArray<AActor*>& InPostDuplicateSelection, const bool bOffsetLocations)
{
ForEachEdMode([&InPreDuplicateSelection, &InPostDuplicateSelection, bOffsetLocations](UEdMode* Mode)
{
// Tell the tools about the duplication
Mode->ActorsDuplicatedNotify(InPreDuplicateSelection, InPostDuplicateSelection, bOffsetLocations);
return true;
});
}
void FEditorModeTools::ActorMoveNotify()
{
ForEachEdMode([](UEdMode* Mode)
{
// Also notify the current editing modes if they are interested.
Mode->ActorMoveNotify();
return true;
});
}
void FEditorModeTools::ActorSelectionChangeNotify()
{
ForEachEdMode([](UEdMode* Mode)
{
Mode->ActorSelectionChangeNotify();
return true;
});
}
void FEditorModeTools::ActorPropChangeNotify()
{
ForEachEdMode([](UEdMode* Mode)
{
Mode->ActorPropChangeNotify();
return true;
});
}
void FEditorModeTools::UpdateInternalData()
{
ForEachEdMode([](UEdMode* Mode)
{
Mode->UpdateInternalData();
return true;
});
}
bool FEditorModeTools::IsOnlyVisibleActiveMode(FEditorModeID InMode) const
{
// Only return true if this is the *only* active mode
bool bFoundAnotherVisibleMode = false;
ForEachEdMode([&bFoundAnotherVisibleMode, InMode](UEdMode* Mode)
{
bFoundAnotherVisibleMode = (Mode->GetModeInfo().IsVisible() && Mode->GetID() != InMode);
return !bFoundAnotherVisibleMode;
});
return !bFoundAnotherVisibleMode;
}
void FEditorModeTools::OnEditorSelectionChanged(UObject* NewSelection)
{
if (NewSelection == GetSelectedActors())
{
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3050373) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2973846 on 2016/05/11 by Jamie.Dale Exposed FConfigValue::ExpandValue and added FConfigValue::CollapseValue These are both static and can be used to expand or collapse the macros used in our config files (mostly when dealing with paths), in code that has to deal with the config system, but isn't internal to the config system (mostly things that deal with default configs outside of UObjects). The old non-static version of FConfigValue::ExpandValue is now FConfigValue::ExpandValueInternal, which just calls FConfigValue::ExpandValue on SavedValue and ExpandedValue. This also changes some code that was using FString.Replace to use FString.ReplaceInline. This reduces allocations, and also allows us to avoid another string comparison to see whether the strings are identical (as ReplaceInline returns the number of replacements that were made). Change 2973847 on 2016/05/11 by Jamie.Dale Changing the loading phase in the localization dashboard now writes to the default config #jira UE-30482 Change 2973866 on 2016/05/11 by Jamie.Dale Deprecated some functions that were taking an unused position. These unused parameters caused confusion and lead to UE-30276. The old versions have been deprecated, and new versions without those parameters have been added. Existing code has been updated to call the non-deprecated version. - FViewportFrame::ResizeFrame - FSceneViewport::ResizeFrame - FSceneViewport::ResizeViewport Change 2974505 on 2016/05/11 by Nick.Darnell PR #2309: Added Combobox styling (Contributed by Chris528) Change 2975241 on 2016/05/12 by Richard.TalbotWatkin Made sRGB Preview the default in the Color Picker. Change 2975390 on 2016/05/12 by Jamie.Dale Made sure that en-US-POSIX is in our list of available cultures Some people use machine tags as their native text, so they need an invariant machine like culture to use as their native culture. en-US-POSIX is perfect for this. Change 2975411 on 2016/05/12 by Jamie.Dale PR #2237: Fixed formatting of Error_TooManyMaterials message (Contributed by pfranz) Change 2975559 on 2016/05/12 by Jamie.Dale Dialogue Wave VO direction can now be localized This is gathered as editor-only data. #jira UE-28715 Change 2975710 on 2016/05/12 by Jamie.Dale Implemented UObject::IsLocalizedResource to test whether the object belongs to a localized package Change 2975728 on 2016/05/12 by Jamie.Dale Exported dialogue scripts now include a column that says whether they have a localized recording of that line of dialogue #jira UETOOL-794 Change 2975763 on 2016/05/12 by Jamie.Dale We no longer warn if asked to check out a UNC path when running the GatherText commandlets #jira UE-25833 Change 2975766 on 2016/05/12 by Jamie.Dale Resolved some loc key conflicts #jira UE-25833 Change 2975774 on 2016/05/12 by Jamie.Dale PO files now only contain a single entry in the case of a native translation being exported They used to contain the original entry, as well as an entry for the native translation, however the original entry would never be used. This change also cleans up some directory walking code that was looking for archive files, and replaces it with code to load the specific archive file. Change 2975776 on 2016/05/12 by Jamie.Dale Downgraded a PO file import warning that isn't really an issue #jira UE-25833 Change 2976675 on 2016/05/13 by Jamie.Dale Fixed some more fallout from changes to use the window position when changing the game viewport mode - FSceneViewport::ResizeFrame: - Fixed the HMD monitor info setting the wrong variables. - Fixed SetWindowMode and ResizeViewport potentially being passed two different modes. - We now only move the window if we need to (this avoids issues with WindowedFullscreen window positioning). - FWindowsWindow::MoveWindowTo: - Now treats the screen space position it's given as relative to the top-left of the window, rather than the top-left of the windows' client area. - FWindowsApplication: - WM_MOVE was passing a screen space position relative to the top-left of the windows' client area, rather than its window area like Slate expected. #jira UE-30276 #jira UE-30677 Change 2976804 on 2016/05/13 by Jamie.Dale Slight optimization to FICUInternationalization::FindOrMakeCulture to avoid hitting the filesystem until we know we need to Change 2976967 on 2016/05/13 by Alexis.Matte #jira UE-30687 Cannot import a skeletal mesh scale to zero Change 2977042 on 2016/05/13 by Alexis.Matte #jira UE-29952 log a warning if fbx exceed the maximum number of LOD. #2326 Github PR #code review matt.kuhlenschmidt Change 2977074 on 2016/05/13 by Jamie.Dale Follow up to CL# 2976804 to avoid a potential change in behavior Change 2977076 on 2016/05/13 by Jamie.Dale Some tidy up and optimization to SCulturePicker Change 2977327 on 2016/05/13 by Alex.Delesky Now deleting the Redirector package on Redirector Fix Up rather than simply removing it from the Content Browser. #jira UE-30423 Change 2977499 on 2016/05/13 by Alexis.Matte #jira UE-29475 Enable UStruct child property to be favorite Change 2978415 on 2016/05/16 by Jamie.Dale We now pre-load all the culture data when starting the editor to avoid a UI hitch later Change 2978517 on 2016/05/16 by Alex.Delesky #jira UE-29406 Creating a static mesh from a geometry brush and then attempting to reimport the mesh will no longer crash the editor. Change 2978518 on 2016/05/16 by Alex.Delesky #jira UE-28210 The FBX Importer no longer runs cleanup upon failing to import an FBX file and won't crash the engine the next time an FBX is imported within the same editor session. Change 2978556 on 2016/05/16 by Alexis.Matte Fbx tests automation #jira UE-29635 Change 2978797 on 2016/05/16 by Alexis.Matte #jira UE-30774 - prevent baking the pivot if we transform the vertex with the absolute transform. - Also make sure we set the identity for the Max puivot in case we dont bake the pivot and we dont transform the vertex with the absolute transform. #code review matt.kuhlenschmidt Change 2978965 on 2016/05/16 by Alexis.Matte FBX importer, fix the socket rotation. #jira UE-30094 Change 2980613 on 2016/05/17 by Jamie.Dale Moved the XLOC UAT localization provider to be publicly accessible Change 2980614 on 2016/05/17 by Jamie.Dale Reference update for project move Change 2980633 on 2016/05/17 by Jamie.Dale Made the culture mapping used between XLOC and UE4 configurable on a per-project basis You can now override GetEpicCultureToXLocLanguageId in your custom localization provider in order to change the default mappings. Change 2980836 on 2016/05/17 by Jamie.Dale Added -LocalizationSteps flag to allow you to only run a subset of the UAT "Localise" command You can pass any of the following steps: Download, Gather, Import, Export, Compile, GenerateReports, Upload Change 2982700 on 2016/05/18 by Jamie.Dale Fixed the loc package gather potentially adding the same source location multiple times Change 2983906 on 2016/05/19 by Jamie.Dale Slight cleanup of the way we register localization gatherer callbacks Change 2984356 on 2016/05/19 by Chris.Wood Removed temporary analytics API change needed for earlier hot fix [UE-31005] - Undo temp Hardware Survey API change from 4.10 - CL 2782817 Change 2986679 on 2016/05/23 by Alex.Delesky #jira UE-24747 - Importing FBX files that contain meshes that do not have non-degenerate triangles will no longer crash the editor on import, and will warn the user that the meshes are bad. Change 2986798 on 2016/05/23 by Alex.Delesky #jira UE-31136 - Chord Input fields will no longer display the blinking edit cursor if they do not have focus. Change 2987106 on 2016/05/23 by Alexis.Matte Fbx importer, fail import must not create a package in the content browser #jira UE-31154 Change 2987563 on 2016/05/23 by Alex.Delesky #jira UE-30988 - Changed the default window mode when launching a game from the .uproject file to Windowed Change 2987564 on 2016/05/23 by Alex.Delesky #jira UE-28856 - Fixed a crash that could potentially occur when starting up PIE while dragging objects like widgets in the editor. Change 2988321 on 2016/05/24 by Jamie.Dale Added a way to backup and restore the selection state of a level (its actors and components) in a way that can be reapplied even if the level is reloaded Change 2988708 on 2016/05/24 by Jamie.Dale Fix for crash when missing the fallback/last resort font Change 2988782 on 2016/05/24 by Jamie.Dale Added the ability to version each localized string individually when loaded into the localization manager The single 32-bit global history has now been replaced with two 16-bit histories. One is global, and is updated whenever the culture is changed (or a LocRes file is loaded), and the other is local to each string, and is updated if the display string is changed outside of a culture update (to handle cases where the display string is changed, but the key is preserved). Changing the global history will reset all local histories. Because of the change from an int32 to a uint16, 0, rather than INDEX_NONE, is now considered the "unset" value for a history. Change 2988856 on 2016/05/24 by Jamie.Dale Added a way to get the package(s) of the object(s) being edited by a property panel Typically the package is just the outermost of the object being edited, however there are some cases where this may not be the case: - UMG widgets edit a transient copy of the real data, so we use the SetObjectPackageOverrides to override the package these objects should use to be the real asset package. - Structs (UDS, Data Table, etc) don't have a way to get to their package, so you have to specify it on their FStructOnScope instance (see FStructOnScope::GetPackage and FStructOnScope::SetPackage). This has been hooked up for the UDS and Data Table editors. Change 2988955 on 2016/05/24 by Alex.Delesky #jira UE-30645 - Adding in support for splash images to support .png and .jpg files. In general, this adds multi-extension support for external image references and external image picker modules. Git Request #2376 Change 2989418 on 2016/05/25 by Jamie.Dale Added a way to count text references within a package that match the given search criteria This can be used to detect whether a localization ID is unique within its package. The following search modes are available: - MatchId: Detect a reference if it matches the given ID (ignoring the source text) - MatchSource: Detect a reference if it matches the given ID and source string - MismatchSource: Detect a reference if it matches the given ID but has a different source string Change 2989436 on 2016/05/25 by Jamie.Dale Added "root-level" meta-data (meta-data associated with the package rather than an object within it) Change 2989471 on 2016/05/25 by Alexis.Matte Fbx scene importer, fix naming clash when creating package we now also look in memory to find existing package not just on disk Change 2989639 on 2016/05/25 by Jamie.Dale Added static version of FName::IsValidXName This allows you to verify name-like strings without having to convert them to an FName (and thus add them to the name table) Change 2989716 on 2016/05/25 by Alex.Delesky #jira UE-30828 - The Standalone Session Frontend will now render the names of automation tests correctly instead of as solid white blocks. Change 2990100 on 2016/05/25 by Alexis.Matte Fix crash when reimporting a mesh that originaly exceed the maximum number of LOD #jira UE-30907 Change 2991442 on 2016/05/26 by Bob.Tellez #UE4 Fix components in world not rendering when saved without a physics scene. Change 2991736 on 2016/05/26 by Bob.Tellez #UE4 Fix duplicated worlds not being initialized when inactive. Re-enabled duplication of worlds in the content browser. Change 2991942 on 2016/05/26 by Alex.Delesky #jira UE-31012 - Setting a Decimal Grid Interval value to 0 and using it will no longer crash the editor or cause an editor crash on startup. Change 2991994 on 2016/05/26 by Alex.Delesky #jira UE-31177 - Attempting to export an entire level as an object file and choosing to export all materials as images will no longer crash the editor. Change 2994037 on 2016/05/30 by Alexis.Matte Add Fbx Automation Tests - static mesh import reimport (sections and materials) - skeletal mesh import and reimport (sections and materials also bone position) - static/skeletal mesh LODs (import, add, reimport) - rigid mesh (import, reimport) Change 2994253 on 2016/05/31 by Alexis.Matte Mikkt crash when computing the normals if there is more vertex then the number of wedge #jira UE-29143 Change 2994260 on 2016/05/31 by Alexis.Matte Make sure we cannot modify fbx test plan when json file is read only Change 2994431 on 2016/05/31 by Alex.Delesky #jira UE-21900 - The scale widget should now render all axes when using an orthographic camera. Change 2994432 on 2016/05/31 by Alex.Delesky #jira UE-31328 - New objects dragged into the scene will now comply with the Surface Snapping option in the viewport, and will not use the Surface Offset if snapping is disabled. Change 2994537 on 2016/05/31 by Richard.TalbotWatkin Fixed potential crash in the Mesh Paint tool when non-transactable actors are in the SelectedActors list following a Redo. #jira UE-31172 - Crash related to Vertex Painting - MeshPaint!CastChecked<AActor,UObject>() Change 2994983 on 2016/05/31 by Richard.TalbotWatkin Added some guard code to protect against a crash when editing geometry. Repro currently unknown, ensure was added in order to try to get more information. #jira UE-30820 - UT EDITOR: CRASH: Crash in Public Release CL#2973693 Change 2995022 on 2016/05/31 by Jamie.Dale PR #2428: Added missing END_OPTIMIZATION macro to SOutputLog (Contributed by MatzeOGH) Change 2995027 on 2016/05/31 by Jamie.Dale PR #2409: fixed a small typo in GraphEditor.h (Contributed by MatzeOGH) Change 2995963 on 2016/06/01 by Alex.Delesky #jira UE-31317 - The transform gizmo will no longer block the placement of a material onto a mesh. Change 2997002 on 2016/06/01 by Cody.Albert Fix to ensure ActiveTopLevelWindow is properly set after a window is destroyed #jira UE-31448 Change 2998013 on 2016/06/02 by Alexis.Matte Prevent static mesh materials array to grow when using the reset button in the staticmesh editor. #jira UE-12931 Change 2998370 on 2016/06/02 by Alexis.Matte Fbx Automation, add some import LOD test in case the options are not ok Change 2999709 on 2016/06/03 by Jamie.Dale Fixed some issues with gathering text from BP bytecode Bytecode in Blueprints is very volatile, and can only be safely gathered after it's been compiled (which is not guaranteed to have happened by the time we save the package). This change avoids caching any assets that contain scripts (non-data-only Blueprints), and instead will always load them to perform a gather (which will ensure the Blueprint bytecode is up-to-date due to compile-on-load). Change 2999755 on 2016/06/03 by Richard.TalbotWatkin Fixes to Spline Mesh collision generation. - Fixed a serious issue with DDC ID generation, in that the static mesh wasn't forming a part of the key, hence any two spline meshes with identical properties but different meshes would yield the same cache entry. - Fixed how different collision boxes are transformed when rebuilding physics meshes. Convex collision transforms are now correctly taken into account, and spherical and capsule collision now gets correctly translated when a scale is applied to the start or end of the spline mesh. - Optimized physics rebuilding. A new BodySetup object is now only created when needed, otherwise it is reused. #jira UE-31361 - Splines handle box collision and collision from other shapes differently Change 2999973 on 2016/06/03 by Jamie.Dale We now skip bulk data when detecting text references #jira UE-31596 Change 3000159 on 2016/06/03 by Alex.Delesky #jira UE-30244 - Added a safeguard against a potential crash when editing BSP brushes before placing another BSP brush into the level. Change 3001814 on 2016/06/06 by Alexis.Matte Make sure the staticmesh Materials list dont grow when we reimport or override a LOD other then the base mesh. Add a fbx test to make sure the problem is flag by automation test #jira UE-1394 Change 3001820 on 2016/06/06 by Alex.Delesky #jira UE-19079 - Widget Blueprints should no longer crash when dragging widgets from one blueprint to a second and then compiling the second blueprint. Change 3001915 on 2016/06/06 by Alexis.Matte Make sure we check attribute type before checking attribute unique ID in case of unique id clash. #jira UE-31214 Change 3002026 on 2016/06/06 by Alexis.Matte Importing morph target should not import textures like materials since the base mesh already import thoses. UDN Question: https://udn.unrealengine.com/questions/293973/does-importing-an-fbx-with-morph-targets-cause-a-m.html Change 3002623 on 2016/06/06 by Jamie.Dale Fixing more loc conflicts Change 3002883 on 2016/06/06 by Jamie.Dale Adding retry when dealing with OneSky This is attempting to compensate for some timeouts with OneSky, which were also noticed when testing UE-31413 Change 3003004 on 2016/06/06 by Trung.Le #jira UE-13101 - Make "Description" field for a BluePrint Function multiline Change 3003859 on 2016/06/07 by Alexis.Matte #jira UE-30436 Refresh the property editor when a array element is added, remove, insert, delete and the property is favorite Change 3004132 on 2016/06/07 by Jamie.Dale Fixed a hash conflict that could occur when both the case-sensitive and case-insensitive FName hashes were identical This resulted in the case-preserving FName being added to the head of the linked list for the bucket, which caused any subsequent name lookups to return that name index for the comparison index (since it matched an insensitive string comparison), rather than the name index of the first case-variant of that name that was added to the bucket. This change has new entries be inserted at the tail of the list, which ensures that enumeration for a case-insensitive name will always find the same entry in the bucket (the first one that was ever added) and will continue to compare correctly. Change 3004286 on 2016/06/07 by Jamie.Dale Ensured that assignments that publish new names to the bucket are atomic Change 3004310 on 2016/06/07 by Jamie.Dale Ensured FName internal hashes are returned as uint16 Change 3004381 on 2016/06/07 by Jamie.Dale FAsyncPackage now creates the meta-data before processing the remaining exports This matches the behavior of FLinkerLoad::LoadAllObjects, as other objects may depend on the meta-data being loaded before them. Change 3004765 on 2016/06/07 by Alex.Delesky #jira UE-31498 - Material thumbnails will now render the full sphere rather than an extreme close-up of the material. Change 3005754 on 2016/06/08 by Trung.Le Allow whitespace for meta class names #jira UE-31668 Change 3005755 on 2016/06/08 by Stephan.Jiang UMGSequencePlayer implements GetPlaybackContext() and return UserWidget->GetWorld() if it's valid #jira UE-31299 Change 3006512 on 2016/06/08 by Alex.Delesky #jira UE-31572 - The "All Classes" tab in the Modes panel will now refresh when a placeable asset is created, renamed, or deleted without needed to navigate away from the tab first. Change 3006760 on 2016/06/08 by Jamie.Dale Added support for stable localization keys This feature adds support for preserving the existing key of an FText property when editing the source string, providing that it is the only reference to that string within the package. A side effect of this is that you're now able to specify custom keys for FText properties since we can now verify that the custom key won't cause an identity conflict. In order to limit the search domain for uniqueness to a single package, we've added the concept of a "localization namespace" to packages (stored in the meta-data). Each package is given a unique namespace, which is appended to the user-defined namespace of the text when it is modified, saved, or duplicated. This package namespace ensures that the same user-defined namespace and key may be used in different packages without causing an identity conflict. In order to access the package namespace within the Core code that hosts FText (which doesn't know about UPackage), FArchive now provides a GetLocalizationNamespace function to access the package namespace within the Core code, and a SetLocalizationNamespace function for CoreUObject and Engine code to pass down the package namespace from their packages. If you have an archive that handles duplicating objects into a different package, or duplicating packages themselves, then you'll want to make sure it's setting the package namespace correctly. FObjectReader and FObjectWriter have been updated to do this, and serve as a good example. FDuplicateDataReader (used by StaticDuplicateObject), and FCopyPropertiesArchiveObjectWriter (used when compiling Blueprints) have also been updated to set the package namespace, as they both handle copying objects between packages. TextNamespaceUtil provides a suite of functions for getting at (or setting) the namespace for a package. Keys will start to stabilize naturally over time once this feature is enabled, however the StabilizeLocalizationKeys commandlet may also be used to stabilize all the keys for a game at once. Running it for a game under source control would look something like this: MyGame -run=StabilizeLocalizationKeys -IncludeGame -NativeCulture=en -EnableSCC This commandlet also updates your localization archives to use the new text identities, however you'll still need to run a localization gather and localization compile before the updated translations will be available for your game. Note: This feature is currently disabled via the USE_STABLE_LOCALIZATION_KEYS define. It will be enabled at a later date. #jira UETOOL-796 Change 3007501 on 2016/06/09 by Trung.Le #jira UE-31722 Fix MaterialFunctions crash when editing text in Libraries Category Text field. Solution: Removed PredEdit and PostEdit from IEditableTextProperty, its derived types and other code that was calling them. The new SetText method already calls NotifyPreChange and NotifyPostChange to properly create/destroy ScopedTransaction. Change 3007524 on 2016/06/09 by Jamie.Dale Added some additional checks to avoid re-keying text when duplicating for PIE Change 3007564 on 2016/06/09 by Jamie.Dale PR #2401: DataTable import/export improvements (Contributed by bozaro) Change 3007653 on 2016/06/09 by Jamie.Dale PR #2459: Generate JSON for nested structs in DataTable rows (Contributed by jorgenpt) Change 3008019 on 2016/06/09 by Jamie.Dale Updated structs to export as JSON when displaying them in the Data Table editor This produces much cleaner results than using the text export method (which will use the internal names for user defined structs). This also cleans up the FDataTableExporterCSV and FDataTableExporterJSON APIs so that you don't need to pass in a UDataTable if you're not going to use it. #jira UE-29958 Change 3008052 on 2016/06/09 by Jamie.Dale Fixed bug importing an array inside a JSON Data Table This was noticed when testing a GitHub PR, but the JSON importer for a Data Table was appending the new data to the array rather than replacing it. It now clears the array prior to importing. Change 3008875 on 2016/06/10 by Jamie.Dale PR #2406: Git plugin: Fix for Git diff not working in UE 4.12 (and master) (Contributed by SRombauts) Change 3008879 on 2016/06/10 by Jamie.Dale PR #2484: Git Plugin: fix the Submit To Source Control menu broken by new "migrate" support in 4.12 (and master) (Contributed by SRombauts) Change 3008990 on 2016/06/10 by Alex.Delesky #jira UE-15699 - Submitting to source control via the editor should now check for current asset status before prompting the user to submit their changes. This should prevent files that had been previously deleted from being readded to source. Change 3008991 on 2016/06/10 by Alex.Delesky #jira UE-31688 - The Output Log will now automatically anchor to the bottom of the scroll bar when the user scrolls all the way down using the mouse wheel or clicking and dragging the content window. Change 3010856 on 2016/06/13 by Alexis.Matte #jira UE-31713 Fix a serialize issue for skeletal mesh with apex cloth. Change 3011736 on 2016/06/13 by Jamie.Dale Adding missing plurals.res file This is needed to get plural form information from ICU. #jira UETOOL-875 Change 3012387 on 2016/06/14 by Richard.TalbotWatkin Disabled the Paste context menu action if the property is marked as EditConst. #jira UE-27469 - User is able to paste values into a read-only setting Change 3012971 on 2016/06/14 by Stephan.Jiang Editor Preferences->Widget Designer now have two options to toggle the visibilities of widgets created from Engine content folder and Developers folder. By default, visibility for engine content is off and developers is on #jira UE-31657 Change 3013111 on 2016/06/14 by Jamie.Dale Unified the number, percentage, and currency formatting between the ICU and Legacy text implementations Removed all the old legacy number formatting code, and removed the calls to the ICU specific number formatting. Everything is now using FastDecimalFormat as this will allow some optimizations later when formatting numbers in FText::Format. Change 3015438 on 2016/06/15 by Cody.Albert Fixing ScrollBy function to calculate new scroll offset based on the current scroll offset and not the current desired scroll offset (which may not be the same during an animation) #jira UE-32082 Change 3016782 on 2016/06/16 by Richard.TalbotWatkin Corrected ConvexHull2D so that it returns an empty set of indices when passed an empty points array. Change 3016949 on 2016/06/16 by Jamie.Dale Added FastDecimalFormat overloads to write into an existing string This helps avoid an extra allocation if you already have a pre-sized string that you're writing the number to (as is the case in FText::Format). Change 3016952 on 2016/06/16 by Jamie.Dale Changed an Add for an Emplace to avoid moving a temporary Change 3016954 on 2016/06/16 by Jamie.Dale Updated some FText code to avoid creating temporary objects just to move data through a hierarchy There was some code in FText and its internal types that were using pass-by-value as a marshaller to move data through a hierarchy. This resulted in temporary objects being created and destroyed to facilitate the movement of data. This change has all the internal FText code (private FText constructors, internal text data, and internal text history) take its movable types as an r-value reference. This avoids the temporary objects, but also makes it impossible to accidentally copy a construction argument when you meant to move it (you can still copy, but the copy must be explicit). In addition to this, FText::FromString and FText::AsCultureInvariant now have two overloads, const FString& and FString&&, to avoid them creating a temporary when you're invoking a move. FText::ChangeKey now takes its parameters by const& as their data wasn't being moved further down the chain, so the by-value copy was wasteful. Change 3019021 on 2016/06/19 by Richard.TalbotWatkin When deleting a brush, ensure geometry is rebuilt before updating the details panel according to the selection change, so that the old Surface Properties don't continue to appear. #jira UE-8966 - Surface Properties of a BSP remain in the details panel after the BSP is deleted Change 3019022 on 2016/06/19 by Richard.TalbotWatkin Fixed issue where the Surface Properties category in the Details panel doesn't appear after selecting a surface on a Brush which has just been placed. #jira UE-31916 - Selecting an edge of BSP geometry then a face does not show Surface Properties while in Place mode #jira UE-31915 - Selecting BSP face does not show Surface Properties in Details Change 3019025 on 2016/06/19 by Richard.TalbotWatkin Fixed issue which was stopping 'Cancel' from correctly returning a 'Cancelled' result during P4 asynchronous ops. #jira UE-28595 - Submit to Source Control: "Checking for assets to check in..." cancel button does not cancel operation, editor becomes unresponsive Change 3020050 on 2016/06/20 by Cody.Albert Changed window centering logic to correctly work when monitor 1 isn't set to primary monitor. #jira UE-32173 Change 3021145 on 2016/06/21 by Jamie.Dale Added support for text format argument modifiers These can be used to mutate a format argument before appending it to the resultant formatted string, and are applied to the preceding argument via a pipe, eg) "{Arg}|plural(one=is,other=are)". We provide a few of these by default: - |plural(key=val,...) - |ordinal(key=val,...) Provides support for cardinal and ordinal plural forms, where key may be any of "one", "two", "few", "many", or "other", and val may be any optionally quoted string. - |gender(masculine,feminine,[neuter]) Provides support for gender forms, where the 0th item is the masculine version, the 1st item is the feminine version, and the 2nd item is an optional neuter version. The values may be any optionally quoted string. - |hpp(consonant,vowel) Provides support for Hangul post-positions, where the 0th item is the consonant suffix, and the 1st item is the verb suffix. The values may be any optionally quoted string. Major changes: - Exposed the ICU plural form handling via FCulture::GetPluralForm. - Updated the FText formatting code to use an expression evaluator (to support the more complex expressions needed for the argument modifiers). - Added FTextFormat to store a pre-compiled format expression. Re-using one of these if you're performing a lot of formats with the same FText will increase your performance (as around half of the FText::Format cost can be compilation, via an implicit construction of FTextFormat). - Updated the FText::Format(...) family of functions to take their format string as FTextFormat, and take their arguments as FFormatArgumentValue. This allows us access to the real numeric types within the format code, but doesn't break the existing API as these types are implicitly constructible from the old parameters (FText). - Converted text history to store their format string as an FTextFormat in-case they need to perform a re-format (this is still saved as an FText). Breaking changes: - The rules for the escape token have been simplified, and there is an incredibly unlikely chance that this may affect some text: - The ` character will now only escape a valid character (producing only the escaped character in the final string), or it will be ignored and inserted as a literal character, eg) "`{F" -> "{F", and "`F" -> "`F". - Previously it would also remove the escape character when it followed { or }, eg) "{`" -> "{" and "}`" -> "}", rather than "{`" and "}`" like you might expect. It would also have previously removed a ` at the end of a string due to a parser bug. Change 3021156 on 2016/06/21 by Jamie.Dale Updated LinuxToolChain to use the same output delegate for all of its actions when cross-compiling This avoids the compile and link actions being split into different batches. Change 3021280 on 2016/06/21 by Richard.TalbotWatkin Fixed bug in parsing LOD in UStaticMeshComponent::ImportCustomProperties (thanks to Aurelien Cordonnier). #jira UE-31937 - UDN code submission for UStaticMeshComponent::ImportCustomProperties parsing bug Change 3022949 on 2016/06/22 by Alex.Delesky #jira UE-31944 - Upgrading Subversion binaries to version 1.9.4. Change 3023092 on 2016/06/22 by Jamie.Dale Downgraded some checks to ensures and added an early out #jira UE-32009 Change 3023154 on 2016/06/22 by Jamie.Dale Ported over CL# 3018771 to the UE automation This fixes an issue where a downloaded PO file smaller than the one already on disk leaving a mix of both files on disk (rather than the existing file on disk being truncated). Change 3023579 on 2016/06/22 by Jamie.Dale Expanded the Blueprint FormatText node to support numeric and gender types These are needed to correctly support the new plural and gender forms that can be used in format strings, as these require actual numeric/enum data to be passed into the format arguments, rather than pre-formatted text. Major changes: - The FormatText node for Blueprints now uses PC_Wildcard as its pin type for format arguments instead of PC_Text. - Any existing literal text argument data in the pin is hoisted out into a "Make Literal Text" node which is then connected to the pin. - FFormatArgumentData has been updated to be variant on the data needed by Blueprints. It's now a less comprehensive and non-unioned version of FFormatArgumentValue. - The version of FText::Format taking FFormatArgumentData has been deprecated as its usage was internal to Blueprints and we have much better ways to format text in C++. Any existing C++ using that (of which we have none internally) should be updated to use FFormatArgumentValue instead. Change 3023915 on 2016/06/22 by Jamie.Dale Cleaned up some of the UK2Node_FormatText expansion code to avoid unchecked literals Change 3024813 on 2016/06/23 by Jamie.Dale Renamed FContext to FManifestContext to better reflect its purpose and avoid naming conflicts with other code Change 3024852 on 2016/06/23 by Nick.Darnell FBX - Updating automation tests with the changes to chunk and chunk index removal and them being merged with sections. Change 3024994 on 2016/06/23 by Nick.Darnell UMG - Removing the DesignerWidgetTree, instead going to directly inject the widget tree into the partially constructed UUserWidget during design time, when refreshing the preview. This avoids doing something a little dangerous and sketchy like updating the living class instance with a new designer tree that all new instances will begin biasing using. Also making the preview widget explictly non-transactional as there's no reason to track changes to the preview, all the changes that need to be tracked should be on the template widget. This should fix the crash in the widget designer when you Undo just after compiling the widget blueprint. #jira UE-31155 Change 3025194 on 2016/06/23 by Alex.Delesky #jira UE-31155 - Compilation error fix. Change 3025255 on 2016/06/23 by Alex.Delesky #jira UE-21900 - Redoing changes done in CL 2994431 since it got stomped. Reinstates the grabber handles and ensures consistent scaling on the scale widget in orthographic viewports. Change 3025460 on 2016/06/23 by Cody.Albert Fixed issue where widget components would misalign when aspect ratio was being constrained #jira UE-29637 Change 3025508 on 2016/06/23 by Cody.Albert Adding support for adjusting animation playback speed #jira UE-32222 Change 3026444 on 2016/06/24 by Jamie.Dale Fixed crash caused by bad access of shared this when closing an active IME context This was only needed to get the owner window, which we now cache when the IME context is created. #jira UE-32240 Change 3028358 on 2016/06/27 by Jamie.Dale Fixed IMEs not working due to no window being cached #jira UE-32240 Change 3028464 on 2016/06/27 by Alex.Delesky #jira UE-31873 - A single "Files need check-out" notification will now be shown instead of multiple notifications if multiple files need to be checked out, and updated as more files need to be checked out. Change 3028524 on 2016/06/27 by Chris.Wood Switched off uploads to legacy Crash Report Receiver. [UE-31252] - Switch off deprecated CRR upload in Crash Report Client Also added CRC version string, added to crash context from CRC config Change 3028840 on 2016/06/27 by Alexis.Matte #jira UE-32306 replace material bad name character by an underscore when doing a scen import. Change 3028924 on 2016/06/27 by Alexis.Matte #jira UE-32125 Make sure we can add a plan when a fbx file is drop in the fbx automation test folder Change 3029044 on 2016/06/27 by Alex.Delesky #jira UE-31944 - Updating SVN binaries for Mac to 1.9.4 Change 3029276 on 2016/06/27 by Alex.Delesky #jira UE-31531 - A user can now select the base class when creating a new physical material. PR #2462: added dialog, which enables picking base class for asset (Contributed by iniside) Change 3029459 on 2016/06/27 by Alexis.Matte #jira UE-32354 Make sure we set all blueprint component to the correct mobility set in the scene import options. Change 3030577 on 2016/06/28 by Nick.Darnell PR #2531: Git plugin: fix wrong status icons (Contributed by SRombauts) Change 3030587 on 2016/06/28 by Alexis.Matte #jira UE-32251 add missing body setup variables when restoring the body setup value after a re-import of a staticmesh Change 3030946 on 2016/06/28 by Alexis.Matte #jira UE-32515 prevent crash when re-import staticmesh userdata Change 3031115 on 2016/06/28 by Jamie.Dale The DDC builder now gives the shader compile worker a chance to catch up when it pauses to run a GC pass This prevents an issue where the shader backlog could cause massive amounts of memory to be consumed. Change 3031146 on 2016/06/28 by Jamie.Dale Fixed errors when building with USE_STABLE_LOCALIZATION_KEYS enabled caused by UEdGraphPin no longer being a UObject Change 3031357 on 2016/06/28 by Nick.Darnell PR #2431: Add plugin support to the editor class wizard. (Contributed by Koderz) Change 3031515 on 2016/06/28 by Jamie.Dale Fixed game targets not being able to depend on other game targets Change 3031520 on 2016/06/28 by Jamie.Dale Localization compilation now specifies an ArchiveName to use Change 3031671 on 2016/06/28 by Nick.Darnell Editor - Checking to see if a weak variable is valid before using it in the editor build window. Change 3032013 on 2016/06/28 by Matt.Kuhlenschmidt Added ability to invert the Y axis in editor viewports for mouse look and orbit Change 3032495 on 2016/06/29 by Jamie.Dale Fixed some measuring issues with bi-directional text within a right-flowed document There were three main issues: 1) Measuring blocks was measuring visual glyphs rather than logical glyphs (this caused bad measures/wrapping and overlapped rendering). 2) The text layout would consider blocks visually contiguous without making sure the block flow direction matched the line flow direction (this caused bad highlights). 3) The text layout would fail to compensate for a non-contiguous block that had a flow direction different to the line flow direction (it was hard-coded for RTL in LTR, so broke for LTR in RTL - this caused bad highlights). #jira UE-32526 Change 3032533 on 2016/06/29 by Nick.Darnell UMG - The widget component now extends from UMeshComponent, it can have a custom material applied to it, in order to achieve cooler effects - like ignoring the depth buffer. Users who use this option are encouraged to start with the widget components default material and work from there. The widget component now offers the ability to automatically size the render target to be the desired size of the widget - note that this can go real bad if your widget wants to be really big. Change 3032855 on 2016/06/29 by Alexis.Matte #jira UE-32508 Remove the cachewindow from the FTextInputMethodContext constructor since it will be cache only when the IME is activated #test please re-test also UE-32240 Change 3033145 on 2016/06/29 by Alex.Delesky #jira UE-32239 - The PropertyEditorModule will no longer cause a crash on editor shutdown if a SDetailsView widget tries to force refresh itself when the Slate application is no longer initialized. Change 3033147 on 2016/06/29 by Alex.Delesky #jira UE-32326 - Clicking on the "Install {compiler}" button when trying to create a new code class or code project will now not crash the engine if it fails to open the installation file for write, nor will it create multiple notifications if the button is pressed repeatedly. This also addresses a potential issue with static initialization order when it comes to adding TickableEditorObjects to its corresponding array, since it was wholly possible for a statically initialized TickableEditorObject to initialize itself and add itself to the tickable objects arra before the tickable objects array was initialized, causing that object to not get ticked at runtime and causing a crash when the editor was closed. Change 3033162 on 2016/06/29 by Alex.Delesky #jira UE-31827 - Undo/redo now works in the Material function editor. Change 3033391 on 2016/06/29 by Matt.Kuhlenschmidt Fix post process settings blendable picker not being readable in the details panel Change 3033498 on 2016/06/29 by Matt.Kuhlenschmidt Fixed huge number of redundant calls to CanEditChange and DiffersFromDefault that were causing massive performance loss when thousands of objects are selected. CanEditChange and DiffersFromDefault are now cached each time a property value changes. Fixed redundant calls for getting visualizers for each selected object. This is now cached on selection Change 3033504 on 2016/06/29 by Matt.Kuhlenschmidt Fix Mass customization on the body instance not working with undo/redo or reset to default Change 3034357 on 2016/06/30 by Alex.Delesky #jira UE-31184 - Renamed the multiple collision components in the cascade particle system to more accurately reflect what they represent. Change 3035915 on 2016/07/01 by Richard.TalbotWatkin Fix to SListPanel so that those with horizontal arrangement (i.e. from STileView) use the number of desired items instead of the number of actual items in order to calculate the desired size of the geometry. This fixes the case where an STileView is contained within an SScrollBox. #jira UE-32195 - STileView no longer works correctly when placed inside of a SScrollBox Change 3035951 on 2016/07/01 by Richard.TalbotWatkin Fixed issue when importing a brush, so that the brush is always validated (relinked), whether it be a static or dynamic brush. This is because the process of rebuilding a dynamic brush sets the link indices to signify FBspSurf indices from the UModel instead of FPoly indices (the FPoly::iLink member is overloaded in its meaning). Always forcing a relink correctly sets the linked list of coplanars. #jira UE-32087 - Crash occurs when creating Static Mesh from Trigger Volume Change 3036991 on 2016/07/04 by Alexis.Matte #jira UETOOL-901 Scene importer now support the rigid mesh animation Change 3037037 on 2016/07/04 by Jamie.Dale Fixed regression in editable text box alignment Text was no longer vertically aligned center since SEditableText was converted to use a text layout. This vertical alignment is now handled by the outer SEditableTextBox instead. Change 3037057 on 2016/07/04 by Richard.TalbotWatkin Fixed screenshots when running automation tests so that they are saved locally when a FAutomationWorkerScreenMessage is received. #jira UE-29815 - In-game screenshot isn't working under certain circumstances Change 3037082 on 2016/07/04 by Chris.Wood Added detection of asserts and passing assert flag and crash type string to crash reports. [UE-30592] - Crash Reporter should determine crash type on client and pass string to server Reviewe by Steve with reservations about the static variable for setting asserted state. While not thread-aware, this is probably accurate enough for the purpose of crash reporting, certainly for now. I'm submitting it like this because the work required to add fully thread-aware fix is not necessary at this point. Change 3037095 on 2016/07/04 by Alexis.Matte Fix the bone name when duplicating a socket. Change 3037453 on 2016/07/05 by Stephan.Jiang Adding ability to animate the root wigdet #2 FHierarchyRoot adds the preview widget instead of CDO to selectedobjects in widgetblueprint the properties are then migrated back to the CDO #UE 31810 Change 3037487 on 2016/07/05 by Jamie.Dale Fixed crash caused by stale BP pointer #jira UE-32325 Change 3037488 on 2016/07/05 by Jamie.Dale Fixed a crash that could occur when a class and a folder had the same name Change 3037526 on 2016/07/05 by Jamie.Dale Speculative fix for a potential race condition when shutting down the editor while a "launch" was in progress The launch-thread could potentially queue up a request after the game-thread had requested it cancel, and cleared out any queued tasks. This change has the game-thread wait for the launch-thread to acknowledge its cancellation before continuing with editor shutdown. #jira UE-17688 Change 3037557 on 2016/07/05 by Alex.Delesky #jira UE-32424 - Added a safeguard to ensure that renaming a world that was duplicated from another world would not crash the editor if both worlds' lightmaps and shadowmaps were still active in memory, due to the editor attempting to rename identical textures from different packages to the same location. The actual fix to this issue was performed in an earlier CL, but this should prevent the editor from crashing if the issue returns. Change 3037558 on 2016/07/05 by Alex.Delesky #jira UE-32285 - Importing assets to the Content Browser via drag and drop operations are no longer permitted while the UI file picker dialog is opened. Change 3037559 on 2016/07/05 by Alex.Delesky #jira UE-32075 - The user can no longer attempt to import non-FBX and non-OBJ files when importing into a level. Change 3037593 on 2016/07/05 by Stephan.Jiang GitHub #2549: Add function for setting the playback rate of UMG animations original code shelved in CL 3033449 #UE-32653 Change 3037605 on 2016/07/05 by Jamie.Dale Fixed infinite recursion that could happen when gather loc from an object with a custom callback #jira UE-32670 Change 3037649 on 2016/07/05 by Nick.Darnell PR #2538: [WidgetBlueprintLibrary] GetAllWidgetsOfClass, Added META ~ DeterminesOutputType, DynamicOutputParam, removes the need for extra cast,  Rama (Contributed by EverNewJoy) Change 3037652 on 2016/07/05 by Nick.Darnell Clean - Removing commented out code. Change 3037658 on 2016/07/05 by Matt.Kuhlenschmidt Fix initial hitch when dragging around in a color picker opened from a material expression node. Change 3037679 on 2016/07/05 by Nick.Darnell Engine - Texture2D no longer forces the MIP level to 0 for TextureGroup_UI textures. Change 3037757 on 2016/07/05 by Nick.Darnell PR #2447: WebBrowser widget: Added GetUrl method and OnUrlChanged property (Contributed by nelbok) Change 3037840 on 2016/07/05 by Nick.Darnell UMG - Now allowing for spirtes to be used just like textures and materials on UMG widgets anywhere that takes a brush, can now also take a Sprite. There is now a ISlateTextureAtlasInterface interface that any UObject may now implement if it wishes to integrate with UMG to provide its atlas data in a form Slate can understand. Change 3037924 on 2016/07/05 by Jamie.Dale Re-ordered variable initialization to appease a warning on Mac Change 3037981 on 2016/07/05 by Jamie.Dale Fixed crash where FColorStructCustomization could call SetPerObjectValues with an empty array #jira UE-32639 Change 3038075 on 2016/07/05 by Cody.Albert Removed misleading error message in HandleCECommand #jira 28007 Change 3038231 on 2016/07/05 by Alexis.Matte #jira UE-30694 We set the section collision only if there is an imported collision or a generated one. If there is no collision we do not set the collision flag. Change 3038275 on 2016/07/05 by Alex.Delesky #jira UE-32689 - "Game Gets Mouse Control" will now override the Capture Mouse on Launch setting when launching the game from within a Level Viewport (i.e., within the editor window itself). Change 3039310 on 2016/07/06 by Trung.Le #jira UE-25005 Change PIE Key Bindings - Removed Shift+F1 and Esc from BaseInput.ini - Created new customizable key binding for + Shift+F1: same functionality. + Esc: now will pause the play session and bring back the mouse cursor. Clicking the mouse on the viewport should resume play session. + Shift+Esc: now will stop the play session Change 3039458 on 2016/07/06 by Trung.Le Removed unused code in StaticMeshLight.cpp Change 3039827 on 2016/07/06 by Frank.Fella FString - Fix divide overload path concatenation for empty paths since there are several places in the engine that expect using that doing { path / "" } will append a / onto path. #jira UE-31959 Change 3041094 on 2016/07/07 by Nick.Darnell WebBrowser - Fixing an issue where the web browser widget plugin wasn't loading soon enough to be properly loaded in time if it was referenced by game nessesary content thatloads in the Default stage of the pipeline, so moving it to PreDefault. #jira UE-32694 Change 3041110 on 2016/07/07 by Matt.Kuhlenschmidt Fix visualizers on blueprint actors not working when the internal components are trashed and replaced Change 3041302 on 2016/07/07 by Chris.Wood Increased buffer size for crash uploads. [UE-32151] - High number of crashes read from S3 by Crash Report Process are failing to unpack Trivial change in dev branch - no code review Change 3041969 on 2016/07/07 by Nick.Darnell UMG - Input Key Selector now no longer adds a bogus Selected Key property to the details panel. Change 3041971 on 2016/07/07 by Nick.Darnell UMG - Not using separate settings for the Engine/Developer folders visible in the UMG palette, now just using the same setting that powers the content browser. Change 3042612 on 2016/07/08 by Trung.Le #jira UE-25005, set Shift+Esc defaults to toggle play/pause and Esc remains defaults to quit Change 3042732 on 2016/07/08 by mitchell.wilson Adding test content for UMG Paper 2d Atlas test Change 3042780 on 2016/07/08 by mitchell.wilson Updating UMG_Paper2d test content for UMG Paper 2d Atlas testing Change 3042870 on 2016/07/08 by mitchell.wilson Renaming UMG_Paper2d to UMG_Sprite Change 3044104 on 2016/07/10 by Nick.Darnell PR #2104: Improved widget input support (Contributed by projectgheist) Change 3044107 on 2016/07/10 by Nick.Darnell Slate - Fixing the slider handle rendering to no longer run off the edge and get cut off. #jira UE-25750 Change 3044377 on 2016/07/11 by Chris.Wood Add Slack messaging module - Epic Friday Change 3044536 on 2016/07/11 by Alex.Delesky #jira UE-7293 - Mouse locking to viewport is now determined off an enum instead of a boolean, to allow for more flexibility when upgrading with new features. Change 3044922 on 2016/07/11 by Nick.Darnell Slate/UMG - Working on better support for VR interactions with Slate widgets. This change fixes a lot of issues with the way interaction works with slate widgets rendered in the virtual world. Breakages, direct mouse interaction with widgets in the virtual world is no longer supported. Those kinds of interactions must all use the WidgetInteractionComponent now, which by default works similar to the lasers in VREditor for interaction. However - you can disable automatic hittesting, and instead provide a custom hitresult instead if you want to use screen tracing and act like you're just a mouse cursor that is supported. Menu anchors now properly function inside of widgets in the virtual world. Performance improvements - the viewport no longer arranges all 3d widgets every frame. Additionally, Widget Components now support a whole bunch of methods for reducing how often they redraw to help control performance, they also support manual refresh. This automatically works in tandem with the widget interaction component to request refresh whenever the widget interaction component is interacting with the widget, thus giving you a simple way to only redraw widgets that the user is hovering on top of. Unrelated - this change also fixes Stop navigation commands not working with Next/Prev navigation - Wrap is still unsupported. Change 3045157 on 2016/07/11 by Nick.Darnell Slate - Always consume the bottom face button of the analog cursor, even if it's a repeat. Change 3045355 on 2016/07/11 by Matt.Kuhlenschmidt Added logging for unreproducible top 10 crash in matinee when a track ends up not being able to add a keyframe Change 3045358 on 2016/07/11 by Alex.Delesky #jira UE-31179 - The editor should now log additional information and hit an assertion if the editor tries to construct FObjectOrAssetData using invalid data. This doesn't stop the crash, but should help get some extra info when it does break. Change 3045371 on 2016/07/11 by Matt.Kuhlenschmidt Enable the widget reflector from the editor console by typing "widgetreflector" Change 3045387 on 2016/07/11 by Stephan.Jiang Stripping off 'b' in the propertyname so that "Is Enabled" is animated properly. #UE-31874 Change 3046093 on 2016/07/12 by Nick.Darnell UMG - The Slider now exposes the IsFocusable option from Slate. #jira UE-32960 Change 3046094 on 2016/07/12 by Alexis.Matte #jira UE-32807 scene re-import blueprint hierarchy kept some part of old blueprint component value. Change 3046104 on 2016/07/12 by Stephan.Jiang typo "Syc" causing the "Sync" button doesn't show Slateicon #UE-31409 Change 3046142 on 2016/07/12 by Nick.Darnell Orion - Upgrading more code to use the new input mode functions and not the deprecated ones. Change 3046165 on 2016/07/12 by Nick.Darnell UMG - Fixing a crash on the widget component if the render target is null when reapplied through widget component data. #jira UE-32844 Change 3046255 on 2016/07/12 by Nick.Darnell UT - More build warning fixes for the new Input Mode methods. Change 3046604 on 2016/07/12 by Richard.Hinckley Adding a template file and code to support creating a UInterface directly from the New C++ Class wizard. Change 3047071 on 2016/07/12 by Matt.Kuhlenschmidt Better way of summoning the widget reflector from the console Change 3047842 on 2016/07/13 by Matt.Kuhlenschmidt Mark Subdivision surface setting as advanced since it is experimental and definitely for advanced users only Change 3048754 on 2016/07/13 by Trung.Le #jira UE-32159 Automatically regain focus after user gets mouse control during PIE session so we can continue process PIE keybinding commands Change 3048756 on 2016/07/13 by Trung.Le Removed default toggle pause/play keybinding from BaseInput.ini, instead we should use the action defined in DebuggerCommands that is customizable Change 3048865 on 2016/07/13 by Trung.Le #jira UE-32159 SGlobalPlayWorldActions widget shouldn't clear out active widget pointer when it's being handled properly Change 3048892 on 2016/07/13 by Nick.Darnell UMG - Fixing a problem with the interaction component, it now does some basic intelligent ignoring of anything it's attached to - excluding widget components. So it's easier to attach it to things that might be inside of a say a player collision capsule. Also removing the 'Max Interaction Distance' from the widget component as that is no longer the arbitor of interaction distance. #jira UE-33250 Change 3049096 on 2016/07/13 by Trung.Le Wrap SGlobalPlayActions around ViewportWidget instead of making it a child of ViewportWidget. This was causing PIE to stop working when there are other UMG in game. #jira UE-33259 Change 3049177 on 2016/07/13 by Stephan.Jiang Fixing the "No Animation Selected" tag shows up after switching back from Graph to Designer. #UE-33016 Change 3049726 on 2016/07/14 by Stephan.Jiang Adding icons for terrain mirror tool #UE-20588 Change 3049957 on 2016/07/14 by Nick.Darnell Slate - Fixing a small bug in the virtual user function - was preventing getting the same virtual user multiple times if it had already been created. Adding an option to the widget component to control the focusabilty of the underlying slate window that's created to host the widget content. Adding an option to the widget interaction component to control if it should be simulating mouse input at all - use this to effectively disable hit testing, and changing hover states and the like. Change 3049994 on 2016/07/14 by Stephan.Jiang Set viewed animtion to current animtion after switching from Graph to Designer (This is for "No Animation Selected" showing up when switching) #UE-33016 Change 3050194 on 2016/07/14 by Stephan.Jiang Added ability to replace the widget the track is currently bound to Also includes changes in WidgetBlueprintEditor to send delegate to AnimationtabSummoner when switching from Graph to Designer #UE-31809 [CL 3050870 by Matt Kuhlenschmidt in Main branch]
2016-07-14 19:07:16 -04:00
// when actors are selected check if there is at least one component selected and cache that off
// Editor modes use this primarily to determine of transform gizmos should be drawn.
// Performing this check each frame with lots of actors is expensive so only do this when selection changes
bSelectionHasSceneComponent = false;
for(FSelectionIterator It(*GetSelectedActors()); It; ++It)
{
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3050373) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2973846 on 2016/05/11 by Jamie.Dale Exposed FConfigValue::ExpandValue and added FConfigValue::CollapseValue These are both static and can be used to expand or collapse the macros used in our config files (mostly when dealing with paths), in code that has to deal with the config system, but isn't internal to the config system (mostly things that deal with default configs outside of UObjects). The old non-static version of FConfigValue::ExpandValue is now FConfigValue::ExpandValueInternal, which just calls FConfigValue::ExpandValue on SavedValue and ExpandedValue. This also changes some code that was using FString.Replace to use FString.ReplaceInline. This reduces allocations, and also allows us to avoid another string comparison to see whether the strings are identical (as ReplaceInline returns the number of replacements that were made). Change 2973847 on 2016/05/11 by Jamie.Dale Changing the loading phase in the localization dashboard now writes to the default config #jira UE-30482 Change 2973866 on 2016/05/11 by Jamie.Dale Deprecated some functions that were taking an unused position. These unused parameters caused confusion and lead to UE-30276. The old versions have been deprecated, and new versions without those parameters have been added. Existing code has been updated to call the non-deprecated version. - FViewportFrame::ResizeFrame - FSceneViewport::ResizeFrame - FSceneViewport::ResizeViewport Change 2974505 on 2016/05/11 by Nick.Darnell PR #2309: Added Combobox styling (Contributed by Chris528) Change 2975241 on 2016/05/12 by Richard.TalbotWatkin Made sRGB Preview the default in the Color Picker. Change 2975390 on 2016/05/12 by Jamie.Dale Made sure that en-US-POSIX is in our list of available cultures Some people use machine tags as their native text, so they need an invariant machine like culture to use as their native culture. en-US-POSIX is perfect for this. Change 2975411 on 2016/05/12 by Jamie.Dale PR #2237: Fixed formatting of Error_TooManyMaterials message (Contributed by pfranz) Change 2975559 on 2016/05/12 by Jamie.Dale Dialogue Wave VO direction can now be localized This is gathered as editor-only data. #jira UE-28715 Change 2975710 on 2016/05/12 by Jamie.Dale Implemented UObject::IsLocalizedResource to test whether the object belongs to a localized package Change 2975728 on 2016/05/12 by Jamie.Dale Exported dialogue scripts now include a column that says whether they have a localized recording of that line of dialogue #jira UETOOL-794 Change 2975763 on 2016/05/12 by Jamie.Dale We no longer warn if asked to check out a UNC path when running the GatherText commandlets #jira UE-25833 Change 2975766 on 2016/05/12 by Jamie.Dale Resolved some loc key conflicts #jira UE-25833 Change 2975774 on 2016/05/12 by Jamie.Dale PO files now only contain a single entry in the case of a native translation being exported They used to contain the original entry, as well as an entry for the native translation, however the original entry would never be used. This change also cleans up some directory walking code that was looking for archive files, and replaces it with code to load the specific archive file. Change 2975776 on 2016/05/12 by Jamie.Dale Downgraded a PO file import warning that isn't really an issue #jira UE-25833 Change 2976675 on 2016/05/13 by Jamie.Dale Fixed some more fallout from changes to use the window position when changing the game viewport mode - FSceneViewport::ResizeFrame: - Fixed the HMD monitor info setting the wrong variables. - Fixed SetWindowMode and ResizeViewport potentially being passed two different modes. - We now only move the window if we need to (this avoids issues with WindowedFullscreen window positioning). - FWindowsWindow::MoveWindowTo: - Now treats the screen space position it's given as relative to the top-left of the window, rather than the top-left of the windows' client area. - FWindowsApplication: - WM_MOVE was passing a screen space position relative to the top-left of the windows' client area, rather than its window area like Slate expected. #jira UE-30276 #jira UE-30677 Change 2976804 on 2016/05/13 by Jamie.Dale Slight optimization to FICUInternationalization::FindOrMakeCulture to avoid hitting the filesystem until we know we need to Change 2976967 on 2016/05/13 by Alexis.Matte #jira UE-30687 Cannot import a skeletal mesh scale to zero Change 2977042 on 2016/05/13 by Alexis.Matte #jira UE-29952 log a warning if fbx exceed the maximum number of LOD. #2326 Github PR #code review matt.kuhlenschmidt Change 2977074 on 2016/05/13 by Jamie.Dale Follow up to CL# 2976804 to avoid a potential change in behavior Change 2977076 on 2016/05/13 by Jamie.Dale Some tidy up and optimization to SCulturePicker Change 2977327 on 2016/05/13 by Alex.Delesky Now deleting the Redirector package on Redirector Fix Up rather than simply removing it from the Content Browser. #jira UE-30423 Change 2977499 on 2016/05/13 by Alexis.Matte #jira UE-29475 Enable UStruct child property to be favorite Change 2978415 on 2016/05/16 by Jamie.Dale We now pre-load all the culture data when starting the editor to avoid a UI hitch later Change 2978517 on 2016/05/16 by Alex.Delesky #jira UE-29406 Creating a static mesh from a geometry brush and then attempting to reimport the mesh will no longer crash the editor. Change 2978518 on 2016/05/16 by Alex.Delesky #jira UE-28210 The FBX Importer no longer runs cleanup upon failing to import an FBX file and won't crash the engine the next time an FBX is imported within the same editor session. Change 2978556 on 2016/05/16 by Alexis.Matte Fbx tests automation #jira UE-29635 Change 2978797 on 2016/05/16 by Alexis.Matte #jira UE-30774 - prevent baking the pivot if we transform the vertex with the absolute transform. - Also make sure we set the identity for the Max puivot in case we dont bake the pivot and we dont transform the vertex with the absolute transform. #code review matt.kuhlenschmidt Change 2978965 on 2016/05/16 by Alexis.Matte FBX importer, fix the socket rotation. #jira UE-30094 Change 2980613 on 2016/05/17 by Jamie.Dale Moved the XLOC UAT localization provider to be publicly accessible Change 2980614 on 2016/05/17 by Jamie.Dale Reference update for project move Change 2980633 on 2016/05/17 by Jamie.Dale Made the culture mapping used between XLOC and UE4 configurable on a per-project basis You can now override GetEpicCultureToXLocLanguageId in your custom localization provider in order to change the default mappings. Change 2980836 on 2016/05/17 by Jamie.Dale Added -LocalizationSteps flag to allow you to only run a subset of the UAT "Localise" command You can pass any of the following steps: Download, Gather, Import, Export, Compile, GenerateReports, Upload Change 2982700 on 2016/05/18 by Jamie.Dale Fixed the loc package gather potentially adding the same source location multiple times Change 2983906 on 2016/05/19 by Jamie.Dale Slight cleanup of the way we register localization gatherer callbacks Change 2984356 on 2016/05/19 by Chris.Wood Removed temporary analytics API change needed for earlier hot fix [UE-31005] - Undo temp Hardware Survey API change from 4.10 - CL 2782817 Change 2986679 on 2016/05/23 by Alex.Delesky #jira UE-24747 - Importing FBX files that contain meshes that do not have non-degenerate triangles will no longer crash the editor on import, and will warn the user that the meshes are bad. Change 2986798 on 2016/05/23 by Alex.Delesky #jira UE-31136 - Chord Input fields will no longer display the blinking edit cursor if they do not have focus. Change 2987106 on 2016/05/23 by Alexis.Matte Fbx importer, fail import must not create a package in the content browser #jira UE-31154 Change 2987563 on 2016/05/23 by Alex.Delesky #jira UE-30988 - Changed the default window mode when launching a game from the .uproject file to Windowed Change 2987564 on 2016/05/23 by Alex.Delesky #jira UE-28856 - Fixed a crash that could potentially occur when starting up PIE while dragging objects like widgets in the editor. Change 2988321 on 2016/05/24 by Jamie.Dale Added a way to backup and restore the selection state of a level (its actors and components) in a way that can be reapplied even if the level is reloaded Change 2988708 on 2016/05/24 by Jamie.Dale Fix for crash when missing the fallback/last resort font Change 2988782 on 2016/05/24 by Jamie.Dale Added the ability to version each localized string individually when loaded into the localization manager The single 32-bit global history has now been replaced with two 16-bit histories. One is global, and is updated whenever the culture is changed (or a LocRes file is loaded), and the other is local to each string, and is updated if the display string is changed outside of a culture update (to handle cases where the display string is changed, but the key is preserved). Changing the global history will reset all local histories. Because of the change from an int32 to a uint16, 0, rather than INDEX_NONE, is now considered the "unset" value for a history. Change 2988856 on 2016/05/24 by Jamie.Dale Added a way to get the package(s) of the object(s) being edited by a property panel Typically the package is just the outermost of the object being edited, however there are some cases where this may not be the case: - UMG widgets edit a transient copy of the real data, so we use the SetObjectPackageOverrides to override the package these objects should use to be the real asset package. - Structs (UDS, Data Table, etc) don't have a way to get to their package, so you have to specify it on their FStructOnScope instance (see FStructOnScope::GetPackage and FStructOnScope::SetPackage). This has been hooked up for the UDS and Data Table editors. Change 2988955 on 2016/05/24 by Alex.Delesky #jira UE-30645 - Adding in support for splash images to support .png and .jpg files. In general, this adds multi-extension support for external image references and external image picker modules. Git Request #2376 Change 2989418 on 2016/05/25 by Jamie.Dale Added a way to count text references within a package that match the given search criteria This can be used to detect whether a localization ID is unique within its package. The following search modes are available: - MatchId: Detect a reference if it matches the given ID (ignoring the source text) - MatchSource: Detect a reference if it matches the given ID and source string - MismatchSource: Detect a reference if it matches the given ID but has a different source string Change 2989436 on 2016/05/25 by Jamie.Dale Added "root-level" meta-data (meta-data associated with the package rather than an object within it) Change 2989471 on 2016/05/25 by Alexis.Matte Fbx scene importer, fix naming clash when creating package we now also look in memory to find existing package not just on disk Change 2989639 on 2016/05/25 by Jamie.Dale Added static version of FName::IsValidXName This allows you to verify name-like strings without having to convert them to an FName (and thus add them to the name table) Change 2989716 on 2016/05/25 by Alex.Delesky #jira UE-30828 - The Standalone Session Frontend will now render the names of automation tests correctly instead of as solid white blocks. Change 2990100 on 2016/05/25 by Alexis.Matte Fix crash when reimporting a mesh that originaly exceed the maximum number of LOD #jira UE-30907 Change 2991442 on 2016/05/26 by Bob.Tellez #UE4 Fix components in world not rendering when saved without a physics scene. Change 2991736 on 2016/05/26 by Bob.Tellez #UE4 Fix duplicated worlds not being initialized when inactive. Re-enabled duplication of worlds in the content browser. Change 2991942 on 2016/05/26 by Alex.Delesky #jira UE-31012 - Setting a Decimal Grid Interval value to 0 and using it will no longer crash the editor or cause an editor crash on startup. Change 2991994 on 2016/05/26 by Alex.Delesky #jira UE-31177 - Attempting to export an entire level as an object file and choosing to export all materials as images will no longer crash the editor. Change 2994037 on 2016/05/30 by Alexis.Matte Add Fbx Automation Tests - static mesh import reimport (sections and materials) - skeletal mesh import and reimport (sections and materials also bone position) - static/skeletal mesh LODs (import, add, reimport) - rigid mesh (import, reimport) Change 2994253 on 2016/05/31 by Alexis.Matte Mikkt crash when computing the normals if there is more vertex then the number of wedge #jira UE-29143 Change 2994260 on 2016/05/31 by Alexis.Matte Make sure we cannot modify fbx test plan when json file is read only Change 2994431 on 2016/05/31 by Alex.Delesky #jira UE-21900 - The scale widget should now render all axes when using an orthographic camera. Change 2994432 on 2016/05/31 by Alex.Delesky #jira UE-31328 - New objects dragged into the scene will now comply with the Surface Snapping option in the viewport, and will not use the Surface Offset if snapping is disabled. Change 2994537 on 2016/05/31 by Richard.TalbotWatkin Fixed potential crash in the Mesh Paint tool when non-transactable actors are in the SelectedActors list following a Redo. #jira UE-31172 - Crash related to Vertex Painting - MeshPaint!CastChecked<AActor,UObject>() Change 2994983 on 2016/05/31 by Richard.TalbotWatkin Added some guard code to protect against a crash when editing geometry. Repro currently unknown, ensure was added in order to try to get more information. #jira UE-30820 - UT EDITOR: CRASH: Crash in Public Release CL#2973693 Change 2995022 on 2016/05/31 by Jamie.Dale PR #2428: Added missing END_OPTIMIZATION macro to SOutputLog (Contributed by MatzeOGH) Change 2995027 on 2016/05/31 by Jamie.Dale PR #2409: fixed a small typo in GraphEditor.h (Contributed by MatzeOGH) Change 2995963 on 2016/06/01 by Alex.Delesky #jira UE-31317 - The transform gizmo will no longer block the placement of a material onto a mesh. Change 2997002 on 2016/06/01 by Cody.Albert Fix to ensure ActiveTopLevelWindow is properly set after a window is destroyed #jira UE-31448 Change 2998013 on 2016/06/02 by Alexis.Matte Prevent static mesh materials array to grow when using the reset button in the staticmesh editor. #jira UE-12931 Change 2998370 on 2016/06/02 by Alexis.Matte Fbx Automation, add some import LOD test in case the options are not ok Change 2999709 on 2016/06/03 by Jamie.Dale Fixed some issues with gathering text from BP bytecode Bytecode in Blueprints is very volatile, and can only be safely gathered after it's been compiled (which is not guaranteed to have happened by the time we save the package). This change avoids caching any assets that contain scripts (non-data-only Blueprints), and instead will always load them to perform a gather (which will ensure the Blueprint bytecode is up-to-date due to compile-on-load). Change 2999755 on 2016/06/03 by Richard.TalbotWatkin Fixes to Spline Mesh collision generation. - Fixed a serious issue with DDC ID generation, in that the static mesh wasn't forming a part of the key, hence any two spline meshes with identical properties but different meshes would yield the same cache entry. - Fixed how different collision boxes are transformed when rebuilding physics meshes. Convex collision transforms are now correctly taken into account, and spherical and capsule collision now gets correctly translated when a scale is applied to the start or end of the spline mesh. - Optimized physics rebuilding. A new BodySetup object is now only created when needed, otherwise it is reused. #jira UE-31361 - Splines handle box collision and collision from other shapes differently Change 2999973 on 2016/06/03 by Jamie.Dale We now skip bulk data when detecting text references #jira UE-31596 Change 3000159 on 2016/06/03 by Alex.Delesky #jira UE-30244 - Added a safeguard against a potential crash when editing BSP brushes before placing another BSP brush into the level. Change 3001814 on 2016/06/06 by Alexis.Matte Make sure the staticmesh Materials list dont grow when we reimport or override a LOD other then the base mesh. Add a fbx test to make sure the problem is flag by automation test #jira UE-1394 Change 3001820 on 2016/06/06 by Alex.Delesky #jira UE-19079 - Widget Blueprints should no longer crash when dragging widgets from one blueprint to a second and then compiling the second blueprint. Change 3001915 on 2016/06/06 by Alexis.Matte Make sure we check attribute type before checking attribute unique ID in case of unique id clash. #jira UE-31214 Change 3002026 on 2016/06/06 by Alexis.Matte Importing morph target should not import textures like materials since the base mesh already import thoses. UDN Question: https://udn.unrealengine.com/questions/293973/does-importing-an-fbx-with-morph-targets-cause-a-m.html Change 3002623 on 2016/06/06 by Jamie.Dale Fixing more loc conflicts Change 3002883 on 2016/06/06 by Jamie.Dale Adding retry when dealing with OneSky This is attempting to compensate for some timeouts with OneSky, which were also noticed when testing UE-31413 Change 3003004 on 2016/06/06 by Trung.Le #jira UE-13101 - Make "Description" field for a BluePrint Function multiline Change 3003859 on 2016/06/07 by Alexis.Matte #jira UE-30436 Refresh the property editor when a array element is added, remove, insert, delete and the property is favorite Change 3004132 on 2016/06/07 by Jamie.Dale Fixed a hash conflict that could occur when both the case-sensitive and case-insensitive FName hashes were identical This resulted in the case-preserving FName being added to the head of the linked list for the bucket, which caused any subsequent name lookups to return that name index for the comparison index (since it matched an insensitive string comparison), rather than the name index of the first case-variant of that name that was added to the bucket. This change has new entries be inserted at the tail of the list, which ensures that enumeration for a case-insensitive name will always find the same entry in the bucket (the first one that was ever added) and will continue to compare correctly. Change 3004286 on 2016/06/07 by Jamie.Dale Ensured that assignments that publish new names to the bucket are atomic Change 3004310 on 2016/06/07 by Jamie.Dale Ensured FName internal hashes are returned as uint16 Change 3004381 on 2016/06/07 by Jamie.Dale FAsyncPackage now creates the meta-data before processing the remaining exports This matches the behavior of FLinkerLoad::LoadAllObjects, as other objects may depend on the meta-data being loaded before them. Change 3004765 on 2016/06/07 by Alex.Delesky #jira UE-31498 - Material thumbnails will now render the full sphere rather than an extreme close-up of the material. Change 3005754 on 2016/06/08 by Trung.Le Allow whitespace for meta class names #jira UE-31668 Change 3005755 on 2016/06/08 by Stephan.Jiang UMGSequencePlayer implements GetPlaybackContext() and return UserWidget->GetWorld() if it's valid #jira UE-31299 Change 3006512 on 2016/06/08 by Alex.Delesky #jira UE-31572 - The "All Classes" tab in the Modes panel will now refresh when a placeable asset is created, renamed, or deleted without needed to navigate away from the tab first. Change 3006760 on 2016/06/08 by Jamie.Dale Added support for stable localization keys This feature adds support for preserving the existing key of an FText property when editing the source string, providing that it is the only reference to that string within the package. A side effect of this is that you're now able to specify custom keys for FText properties since we can now verify that the custom key won't cause an identity conflict. In order to limit the search domain for uniqueness to a single package, we've added the concept of a "localization namespace" to packages (stored in the meta-data). Each package is given a unique namespace, which is appended to the user-defined namespace of the text when it is modified, saved, or duplicated. This package namespace ensures that the same user-defined namespace and key may be used in different packages without causing an identity conflict. In order to access the package namespace within the Core code that hosts FText (which doesn't know about UPackage), FArchive now provides a GetLocalizationNamespace function to access the package namespace within the Core code, and a SetLocalizationNamespace function for CoreUObject and Engine code to pass down the package namespace from their packages. If you have an archive that handles duplicating objects into a different package, or duplicating packages themselves, then you'll want to make sure it's setting the package namespace correctly. FObjectReader and FObjectWriter have been updated to do this, and serve as a good example. FDuplicateDataReader (used by StaticDuplicateObject), and FCopyPropertiesArchiveObjectWriter (used when compiling Blueprints) have also been updated to set the package namespace, as they both handle copying objects between packages. TextNamespaceUtil provides a suite of functions for getting at (or setting) the namespace for a package. Keys will start to stabilize naturally over time once this feature is enabled, however the StabilizeLocalizationKeys commandlet may also be used to stabilize all the keys for a game at once. Running it for a game under source control would look something like this: MyGame -run=StabilizeLocalizationKeys -IncludeGame -NativeCulture=en -EnableSCC This commandlet also updates your localization archives to use the new text identities, however you'll still need to run a localization gather and localization compile before the updated translations will be available for your game. Note: This feature is currently disabled via the USE_STABLE_LOCALIZATION_KEYS define. It will be enabled at a later date. #jira UETOOL-796 Change 3007501 on 2016/06/09 by Trung.Le #jira UE-31722 Fix MaterialFunctions crash when editing text in Libraries Category Text field. Solution: Removed PredEdit and PostEdit from IEditableTextProperty, its derived types and other code that was calling them. The new SetText method already calls NotifyPreChange and NotifyPostChange to properly create/destroy ScopedTransaction. Change 3007524 on 2016/06/09 by Jamie.Dale Added some additional checks to avoid re-keying text when duplicating for PIE Change 3007564 on 2016/06/09 by Jamie.Dale PR #2401: DataTable import/export improvements (Contributed by bozaro) Change 3007653 on 2016/06/09 by Jamie.Dale PR #2459: Generate JSON for nested structs in DataTable rows (Contributed by jorgenpt) Change 3008019 on 2016/06/09 by Jamie.Dale Updated structs to export as JSON when displaying them in the Data Table editor This produces much cleaner results than using the text export method (which will use the internal names for user defined structs). This also cleans up the FDataTableExporterCSV and FDataTableExporterJSON APIs so that you don't need to pass in a UDataTable if you're not going to use it. #jira UE-29958 Change 3008052 on 2016/06/09 by Jamie.Dale Fixed bug importing an array inside a JSON Data Table This was noticed when testing a GitHub PR, but the JSON importer for a Data Table was appending the new data to the array rather than replacing it. It now clears the array prior to importing. Change 3008875 on 2016/06/10 by Jamie.Dale PR #2406: Git plugin: Fix for Git diff not working in UE 4.12 (and master) (Contributed by SRombauts) Change 3008879 on 2016/06/10 by Jamie.Dale PR #2484: Git Plugin: fix the Submit To Source Control menu broken by new "migrate" support in 4.12 (and master) (Contributed by SRombauts) Change 3008990 on 2016/06/10 by Alex.Delesky #jira UE-15699 - Submitting to source control via the editor should now check for current asset status before prompting the user to submit their changes. This should prevent files that had been previously deleted from being readded to source. Change 3008991 on 2016/06/10 by Alex.Delesky #jira UE-31688 - The Output Log will now automatically anchor to the bottom of the scroll bar when the user scrolls all the way down using the mouse wheel or clicking and dragging the content window. Change 3010856 on 2016/06/13 by Alexis.Matte #jira UE-31713 Fix a serialize issue for skeletal mesh with apex cloth. Change 3011736 on 2016/06/13 by Jamie.Dale Adding missing plurals.res file This is needed to get plural form information from ICU. #jira UETOOL-875 Change 3012387 on 2016/06/14 by Richard.TalbotWatkin Disabled the Paste context menu action if the property is marked as EditConst. #jira UE-27469 - User is able to paste values into a read-only setting Change 3012971 on 2016/06/14 by Stephan.Jiang Editor Preferences->Widget Designer now have two options to toggle the visibilities of widgets created from Engine content folder and Developers folder. By default, visibility for engine content is off and developers is on #jira UE-31657 Change 3013111 on 2016/06/14 by Jamie.Dale Unified the number, percentage, and currency formatting between the ICU and Legacy text implementations Removed all the old legacy number formatting code, and removed the calls to the ICU specific number formatting. Everything is now using FastDecimalFormat as this will allow some optimizations later when formatting numbers in FText::Format. Change 3015438 on 2016/06/15 by Cody.Albert Fixing ScrollBy function to calculate new scroll offset based on the current scroll offset and not the current desired scroll offset (which may not be the same during an animation) #jira UE-32082 Change 3016782 on 2016/06/16 by Richard.TalbotWatkin Corrected ConvexHull2D so that it returns an empty set of indices when passed an empty points array. Change 3016949 on 2016/06/16 by Jamie.Dale Added FastDecimalFormat overloads to write into an existing string This helps avoid an extra allocation if you already have a pre-sized string that you're writing the number to (as is the case in FText::Format). Change 3016952 on 2016/06/16 by Jamie.Dale Changed an Add for an Emplace to avoid moving a temporary Change 3016954 on 2016/06/16 by Jamie.Dale Updated some FText code to avoid creating temporary objects just to move data through a hierarchy There was some code in FText and its internal types that were using pass-by-value as a marshaller to move data through a hierarchy. This resulted in temporary objects being created and destroyed to facilitate the movement of data. This change has all the internal FText code (private FText constructors, internal text data, and internal text history) take its movable types as an r-value reference. This avoids the temporary objects, but also makes it impossible to accidentally copy a construction argument when you meant to move it (you can still copy, but the copy must be explicit). In addition to this, FText::FromString and FText::AsCultureInvariant now have two overloads, const FString& and FString&&, to avoid them creating a temporary when you're invoking a move. FText::ChangeKey now takes its parameters by const& as their data wasn't being moved further down the chain, so the by-value copy was wasteful. Change 3019021 on 2016/06/19 by Richard.TalbotWatkin When deleting a brush, ensure geometry is rebuilt before updating the details panel according to the selection change, so that the old Surface Properties don't continue to appear. #jira UE-8966 - Surface Properties of a BSP remain in the details panel after the BSP is deleted Change 3019022 on 2016/06/19 by Richard.TalbotWatkin Fixed issue where the Surface Properties category in the Details panel doesn't appear after selecting a surface on a Brush which has just been placed. #jira UE-31916 - Selecting an edge of BSP geometry then a face does not show Surface Properties while in Place mode #jira UE-31915 - Selecting BSP face does not show Surface Properties in Details Change 3019025 on 2016/06/19 by Richard.TalbotWatkin Fixed issue which was stopping 'Cancel' from correctly returning a 'Cancelled' result during P4 asynchronous ops. #jira UE-28595 - Submit to Source Control: "Checking for assets to check in..." cancel button does not cancel operation, editor becomes unresponsive Change 3020050 on 2016/06/20 by Cody.Albert Changed window centering logic to correctly work when monitor 1 isn't set to primary monitor. #jira UE-32173 Change 3021145 on 2016/06/21 by Jamie.Dale Added support for text format argument modifiers These can be used to mutate a format argument before appending it to the resultant formatted string, and are applied to the preceding argument via a pipe, eg) "{Arg}|plural(one=is,other=are)". We provide a few of these by default: - |plural(key=val,...) - |ordinal(key=val,...) Provides support for cardinal and ordinal plural forms, where key may be any of "one", "two", "few", "many", or "other", and val may be any optionally quoted string. - |gender(masculine,feminine,[neuter]) Provides support for gender forms, where the 0th item is the masculine version, the 1st item is the feminine version, and the 2nd item is an optional neuter version. The values may be any optionally quoted string. - |hpp(consonant,vowel) Provides support for Hangul post-positions, where the 0th item is the consonant suffix, and the 1st item is the verb suffix. The values may be any optionally quoted string. Major changes: - Exposed the ICU plural form handling via FCulture::GetPluralForm. - Updated the FText formatting code to use an expression evaluator (to support the more complex expressions needed for the argument modifiers). - Added FTextFormat to store a pre-compiled format expression. Re-using one of these if you're performing a lot of formats with the same FText will increase your performance (as around half of the FText::Format cost can be compilation, via an implicit construction of FTextFormat). - Updated the FText::Format(...) family of functions to take their format string as FTextFormat, and take their arguments as FFormatArgumentValue. This allows us access to the real numeric types within the format code, but doesn't break the existing API as these types are implicitly constructible from the old parameters (FText). - Converted text history to store their format string as an FTextFormat in-case they need to perform a re-format (this is still saved as an FText). Breaking changes: - The rules for the escape token have been simplified, and there is an incredibly unlikely chance that this may affect some text: - The ` character will now only escape a valid character (producing only the escaped character in the final string), or it will be ignored and inserted as a literal character, eg) "`{F" -> "{F", and "`F" -> "`F". - Previously it would also remove the escape character when it followed { or }, eg) "{`" -> "{" and "}`" -> "}", rather than "{`" and "}`" like you might expect. It would also have previously removed a ` at the end of a string due to a parser bug. Change 3021156 on 2016/06/21 by Jamie.Dale Updated LinuxToolChain to use the same output delegate for all of its actions when cross-compiling This avoids the compile and link actions being split into different batches. Change 3021280 on 2016/06/21 by Richard.TalbotWatkin Fixed bug in parsing LOD in UStaticMeshComponent::ImportCustomProperties (thanks to Aurelien Cordonnier). #jira UE-31937 - UDN code submission for UStaticMeshComponent::ImportCustomProperties parsing bug Change 3022949 on 2016/06/22 by Alex.Delesky #jira UE-31944 - Upgrading Subversion binaries to version 1.9.4. Change 3023092 on 2016/06/22 by Jamie.Dale Downgraded some checks to ensures and added an early out #jira UE-32009 Change 3023154 on 2016/06/22 by Jamie.Dale Ported over CL# 3018771 to the UE automation This fixes an issue where a downloaded PO file smaller than the one already on disk leaving a mix of both files on disk (rather than the existing file on disk being truncated). Change 3023579 on 2016/06/22 by Jamie.Dale Expanded the Blueprint FormatText node to support numeric and gender types These are needed to correctly support the new plural and gender forms that can be used in format strings, as these require actual numeric/enum data to be passed into the format arguments, rather than pre-formatted text. Major changes: - The FormatText node for Blueprints now uses PC_Wildcard as its pin type for format arguments instead of PC_Text. - Any existing literal text argument data in the pin is hoisted out into a "Make Literal Text" node which is then connected to the pin. - FFormatArgumentData has been updated to be variant on the data needed by Blueprints. It's now a less comprehensive and non-unioned version of FFormatArgumentValue. - The version of FText::Format taking FFormatArgumentData has been deprecated as its usage was internal to Blueprints and we have much better ways to format text in C++. Any existing C++ using that (of which we have none internally) should be updated to use FFormatArgumentValue instead. Change 3023915 on 2016/06/22 by Jamie.Dale Cleaned up some of the UK2Node_FormatText expansion code to avoid unchecked literals Change 3024813 on 2016/06/23 by Jamie.Dale Renamed FContext to FManifestContext to better reflect its purpose and avoid naming conflicts with other code Change 3024852 on 2016/06/23 by Nick.Darnell FBX - Updating automation tests with the changes to chunk and chunk index removal and them being merged with sections. Change 3024994 on 2016/06/23 by Nick.Darnell UMG - Removing the DesignerWidgetTree, instead going to directly inject the widget tree into the partially constructed UUserWidget during design time, when refreshing the preview. This avoids doing something a little dangerous and sketchy like updating the living class instance with a new designer tree that all new instances will begin biasing using. Also making the preview widget explictly non-transactional as there's no reason to track changes to the preview, all the changes that need to be tracked should be on the template widget. This should fix the crash in the widget designer when you Undo just after compiling the widget blueprint. #jira UE-31155 Change 3025194 on 2016/06/23 by Alex.Delesky #jira UE-31155 - Compilation error fix. Change 3025255 on 2016/06/23 by Alex.Delesky #jira UE-21900 - Redoing changes done in CL 2994431 since it got stomped. Reinstates the grabber handles and ensures consistent scaling on the scale widget in orthographic viewports. Change 3025460 on 2016/06/23 by Cody.Albert Fixed issue where widget components would misalign when aspect ratio was being constrained #jira UE-29637 Change 3025508 on 2016/06/23 by Cody.Albert Adding support for adjusting animation playback speed #jira UE-32222 Change 3026444 on 2016/06/24 by Jamie.Dale Fixed crash caused by bad access of shared this when closing an active IME context This was only needed to get the owner window, which we now cache when the IME context is created. #jira UE-32240 Change 3028358 on 2016/06/27 by Jamie.Dale Fixed IMEs not working due to no window being cached #jira UE-32240 Change 3028464 on 2016/06/27 by Alex.Delesky #jira UE-31873 - A single "Files need check-out" notification will now be shown instead of multiple notifications if multiple files need to be checked out, and updated as more files need to be checked out. Change 3028524 on 2016/06/27 by Chris.Wood Switched off uploads to legacy Crash Report Receiver. [UE-31252] - Switch off deprecated CRR upload in Crash Report Client Also added CRC version string, added to crash context from CRC config Change 3028840 on 2016/06/27 by Alexis.Matte #jira UE-32306 replace material bad name character by an underscore when doing a scen import. Change 3028924 on 2016/06/27 by Alexis.Matte #jira UE-32125 Make sure we can add a plan when a fbx file is drop in the fbx automation test folder Change 3029044 on 2016/06/27 by Alex.Delesky #jira UE-31944 - Updating SVN binaries for Mac to 1.9.4 Change 3029276 on 2016/06/27 by Alex.Delesky #jira UE-31531 - A user can now select the base class when creating a new physical material. PR #2462: added dialog, which enables picking base class for asset (Contributed by iniside) Change 3029459 on 2016/06/27 by Alexis.Matte #jira UE-32354 Make sure we set all blueprint component to the correct mobility set in the scene import options. Change 3030577 on 2016/06/28 by Nick.Darnell PR #2531: Git plugin: fix wrong status icons (Contributed by SRombauts) Change 3030587 on 2016/06/28 by Alexis.Matte #jira UE-32251 add missing body setup variables when restoring the body setup value after a re-import of a staticmesh Change 3030946 on 2016/06/28 by Alexis.Matte #jira UE-32515 prevent crash when re-import staticmesh userdata Change 3031115 on 2016/06/28 by Jamie.Dale The DDC builder now gives the shader compile worker a chance to catch up when it pauses to run a GC pass This prevents an issue where the shader backlog could cause massive amounts of memory to be consumed. Change 3031146 on 2016/06/28 by Jamie.Dale Fixed errors when building with USE_STABLE_LOCALIZATION_KEYS enabled caused by UEdGraphPin no longer being a UObject Change 3031357 on 2016/06/28 by Nick.Darnell PR #2431: Add plugin support to the editor class wizard. (Contributed by Koderz) Change 3031515 on 2016/06/28 by Jamie.Dale Fixed game targets not being able to depend on other game targets Change 3031520 on 2016/06/28 by Jamie.Dale Localization compilation now specifies an ArchiveName to use Change 3031671 on 2016/06/28 by Nick.Darnell Editor - Checking to see if a weak variable is valid before using it in the editor build window. Change 3032013 on 2016/06/28 by Matt.Kuhlenschmidt Added ability to invert the Y axis in editor viewports for mouse look and orbit Change 3032495 on 2016/06/29 by Jamie.Dale Fixed some measuring issues with bi-directional text within a right-flowed document There were three main issues: 1) Measuring blocks was measuring visual glyphs rather than logical glyphs (this caused bad measures/wrapping and overlapped rendering). 2) The text layout would consider blocks visually contiguous without making sure the block flow direction matched the line flow direction (this caused bad highlights). 3) The text layout would fail to compensate for a non-contiguous block that had a flow direction different to the line flow direction (it was hard-coded for RTL in LTR, so broke for LTR in RTL - this caused bad highlights). #jira UE-32526 Change 3032533 on 2016/06/29 by Nick.Darnell UMG - The widget component now extends from UMeshComponent, it can have a custom material applied to it, in order to achieve cooler effects - like ignoring the depth buffer. Users who use this option are encouraged to start with the widget components default material and work from there. The widget component now offers the ability to automatically size the render target to be the desired size of the widget - note that this can go real bad if your widget wants to be really big. Change 3032855 on 2016/06/29 by Alexis.Matte #jira UE-32508 Remove the cachewindow from the FTextInputMethodContext constructor since it will be cache only when the IME is activated #test please re-test also UE-32240 Change 3033145 on 2016/06/29 by Alex.Delesky #jira UE-32239 - The PropertyEditorModule will no longer cause a crash on editor shutdown if a SDetailsView widget tries to force refresh itself when the Slate application is no longer initialized. Change 3033147 on 2016/06/29 by Alex.Delesky #jira UE-32326 - Clicking on the "Install {compiler}" button when trying to create a new code class or code project will now not crash the engine if it fails to open the installation file for write, nor will it create multiple notifications if the button is pressed repeatedly. This also addresses a potential issue with static initialization order when it comes to adding TickableEditorObjects to its corresponding array, since it was wholly possible for a statically initialized TickableEditorObject to initialize itself and add itself to the tickable objects arra before the tickable objects array was initialized, causing that object to not get ticked at runtime and causing a crash when the editor was closed. Change 3033162 on 2016/06/29 by Alex.Delesky #jira UE-31827 - Undo/redo now works in the Material function editor. Change 3033391 on 2016/06/29 by Matt.Kuhlenschmidt Fix post process settings blendable picker not being readable in the details panel Change 3033498 on 2016/06/29 by Matt.Kuhlenschmidt Fixed huge number of redundant calls to CanEditChange and DiffersFromDefault that were causing massive performance loss when thousands of objects are selected. CanEditChange and DiffersFromDefault are now cached each time a property value changes. Fixed redundant calls for getting visualizers for each selected object. This is now cached on selection Change 3033504 on 2016/06/29 by Matt.Kuhlenschmidt Fix Mass customization on the body instance not working with undo/redo or reset to default Change 3034357 on 2016/06/30 by Alex.Delesky #jira UE-31184 - Renamed the multiple collision components in the cascade particle system to more accurately reflect what they represent. Change 3035915 on 2016/07/01 by Richard.TalbotWatkin Fix to SListPanel so that those with horizontal arrangement (i.e. from STileView) use the number of desired items instead of the number of actual items in order to calculate the desired size of the geometry. This fixes the case where an STileView is contained within an SScrollBox. #jira UE-32195 - STileView no longer works correctly when placed inside of a SScrollBox Change 3035951 on 2016/07/01 by Richard.TalbotWatkin Fixed issue when importing a brush, so that the brush is always validated (relinked), whether it be a static or dynamic brush. This is because the process of rebuilding a dynamic brush sets the link indices to signify FBspSurf indices from the UModel instead of FPoly indices (the FPoly::iLink member is overloaded in its meaning). Always forcing a relink correctly sets the linked list of coplanars. #jira UE-32087 - Crash occurs when creating Static Mesh from Trigger Volume Change 3036991 on 2016/07/04 by Alexis.Matte #jira UETOOL-901 Scene importer now support the rigid mesh animation Change 3037037 on 2016/07/04 by Jamie.Dale Fixed regression in editable text box alignment Text was no longer vertically aligned center since SEditableText was converted to use a text layout. This vertical alignment is now handled by the outer SEditableTextBox instead. Change 3037057 on 2016/07/04 by Richard.TalbotWatkin Fixed screenshots when running automation tests so that they are saved locally when a FAutomationWorkerScreenMessage is received. #jira UE-29815 - In-game screenshot isn't working under certain circumstances Change 3037082 on 2016/07/04 by Chris.Wood Added detection of asserts and passing assert flag and crash type string to crash reports. [UE-30592] - Crash Reporter should determine crash type on client and pass string to server Reviewe by Steve with reservations about the static variable for setting asserted state. While not thread-aware, this is probably accurate enough for the purpose of crash reporting, certainly for now. I'm submitting it like this because the work required to add fully thread-aware fix is not necessary at this point. Change 3037095 on 2016/07/04 by Alexis.Matte Fix the bone name when duplicating a socket. Change 3037453 on 2016/07/05 by Stephan.Jiang Adding ability to animate the root wigdet #2 FHierarchyRoot adds the preview widget instead of CDO to selectedobjects in widgetblueprint the properties are then migrated back to the CDO #UE 31810 Change 3037487 on 2016/07/05 by Jamie.Dale Fixed crash caused by stale BP pointer #jira UE-32325 Change 3037488 on 2016/07/05 by Jamie.Dale Fixed a crash that could occur when a class and a folder had the same name Change 3037526 on 2016/07/05 by Jamie.Dale Speculative fix for a potential race condition when shutting down the editor while a "launch" was in progress The launch-thread could potentially queue up a request after the game-thread had requested it cancel, and cleared out any queued tasks. This change has the game-thread wait for the launch-thread to acknowledge its cancellation before continuing with editor shutdown. #jira UE-17688 Change 3037557 on 2016/07/05 by Alex.Delesky #jira UE-32424 - Added a safeguard to ensure that renaming a world that was duplicated from another world would not crash the editor if both worlds' lightmaps and shadowmaps were still active in memory, due to the editor attempting to rename identical textures from different packages to the same location. The actual fix to this issue was performed in an earlier CL, but this should prevent the editor from crashing if the issue returns. Change 3037558 on 2016/07/05 by Alex.Delesky #jira UE-32285 - Importing assets to the Content Browser via drag and drop operations are no longer permitted while the UI file picker dialog is opened. Change 3037559 on 2016/07/05 by Alex.Delesky #jira UE-32075 - The user can no longer attempt to import non-FBX and non-OBJ files when importing into a level. Change 3037593 on 2016/07/05 by Stephan.Jiang GitHub #2549: Add function for setting the playback rate of UMG animations original code shelved in CL 3033449 #UE-32653 Change 3037605 on 2016/07/05 by Jamie.Dale Fixed infinite recursion that could happen when gather loc from an object with a custom callback #jira UE-32670 Change 3037649 on 2016/07/05 by Nick.Darnell PR #2538: [WidgetBlueprintLibrary] GetAllWidgetsOfClass, Added META ~ DeterminesOutputType, DynamicOutputParam, removes the need for extra cast,  Rama (Contributed by EverNewJoy) Change 3037652 on 2016/07/05 by Nick.Darnell Clean - Removing commented out code. Change 3037658 on 2016/07/05 by Matt.Kuhlenschmidt Fix initial hitch when dragging around in a color picker opened from a material expression node. Change 3037679 on 2016/07/05 by Nick.Darnell Engine - Texture2D no longer forces the MIP level to 0 for TextureGroup_UI textures. Change 3037757 on 2016/07/05 by Nick.Darnell PR #2447: WebBrowser widget: Added GetUrl method and OnUrlChanged property (Contributed by nelbok) Change 3037840 on 2016/07/05 by Nick.Darnell UMG - Now allowing for spirtes to be used just like textures and materials on UMG widgets anywhere that takes a brush, can now also take a Sprite. There is now a ISlateTextureAtlasInterface interface that any UObject may now implement if it wishes to integrate with UMG to provide its atlas data in a form Slate can understand. Change 3037924 on 2016/07/05 by Jamie.Dale Re-ordered variable initialization to appease a warning on Mac Change 3037981 on 2016/07/05 by Jamie.Dale Fixed crash where FColorStructCustomization could call SetPerObjectValues with an empty array #jira UE-32639 Change 3038075 on 2016/07/05 by Cody.Albert Removed misleading error message in HandleCECommand #jira 28007 Change 3038231 on 2016/07/05 by Alexis.Matte #jira UE-30694 We set the section collision only if there is an imported collision or a generated one. If there is no collision we do not set the collision flag. Change 3038275 on 2016/07/05 by Alex.Delesky #jira UE-32689 - "Game Gets Mouse Control" will now override the Capture Mouse on Launch setting when launching the game from within a Level Viewport (i.e., within the editor window itself). Change 3039310 on 2016/07/06 by Trung.Le #jira UE-25005 Change PIE Key Bindings - Removed Shift+F1 and Esc from BaseInput.ini - Created new customizable key binding for + Shift+F1: same functionality. + Esc: now will pause the play session and bring back the mouse cursor. Clicking the mouse on the viewport should resume play session. + Shift+Esc: now will stop the play session Change 3039458 on 2016/07/06 by Trung.Le Removed unused code in StaticMeshLight.cpp Change 3039827 on 2016/07/06 by Frank.Fella FString - Fix divide overload path concatenation for empty paths since there are several places in the engine that expect using that doing { path / "" } will append a / onto path. #jira UE-31959 Change 3041094 on 2016/07/07 by Nick.Darnell WebBrowser - Fixing an issue where the web browser widget plugin wasn't loading soon enough to be properly loaded in time if it was referenced by game nessesary content thatloads in the Default stage of the pipeline, so moving it to PreDefault. #jira UE-32694 Change 3041110 on 2016/07/07 by Matt.Kuhlenschmidt Fix visualizers on blueprint actors not working when the internal components are trashed and replaced Change 3041302 on 2016/07/07 by Chris.Wood Increased buffer size for crash uploads. [UE-32151] - High number of crashes read from S3 by Crash Report Process are failing to unpack Trivial change in dev branch - no code review Change 3041969 on 2016/07/07 by Nick.Darnell UMG - Input Key Selector now no longer adds a bogus Selected Key property to the details panel. Change 3041971 on 2016/07/07 by Nick.Darnell UMG - Not using separate settings for the Engine/Developer folders visible in the UMG palette, now just using the same setting that powers the content browser. Change 3042612 on 2016/07/08 by Trung.Le #jira UE-25005, set Shift+Esc defaults to toggle play/pause and Esc remains defaults to quit Change 3042732 on 2016/07/08 by mitchell.wilson Adding test content for UMG Paper 2d Atlas test Change 3042780 on 2016/07/08 by mitchell.wilson Updating UMG_Paper2d test content for UMG Paper 2d Atlas testing Change 3042870 on 2016/07/08 by mitchell.wilson Renaming UMG_Paper2d to UMG_Sprite Change 3044104 on 2016/07/10 by Nick.Darnell PR #2104: Improved widget input support (Contributed by projectgheist) Change 3044107 on 2016/07/10 by Nick.Darnell Slate - Fixing the slider handle rendering to no longer run off the edge and get cut off. #jira UE-25750 Change 3044377 on 2016/07/11 by Chris.Wood Add Slack messaging module - Epic Friday Change 3044536 on 2016/07/11 by Alex.Delesky #jira UE-7293 - Mouse locking to viewport is now determined off an enum instead of a boolean, to allow for more flexibility when upgrading with new features. Change 3044922 on 2016/07/11 by Nick.Darnell Slate/UMG - Working on better support for VR interactions with Slate widgets. This change fixes a lot of issues with the way interaction works with slate widgets rendered in the virtual world. Breakages, direct mouse interaction with widgets in the virtual world is no longer supported. Those kinds of interactions must all use the WidgetInteractionComponent now, which by default works similar to the lasers in VREditor for interaction. However - you can disable automatic hittesting, and instead provide a custom hitresult instead if you want to use screen tracing and act like you're just a mouse cursor that is supported. Menu anchors now properly function inside of widgets in the virtual world. Performance improvements - the viewport no longer arranges all 3d widgets every frame. Additionally, Widget Components now support a whole bunch of methods for reducing how often they redraw to help control performance, they also support manual refresh. This automatically works in tandem with the widget interaction component to request refresh whenever the widget interaction component is interacting with the widget, thus giving you a simple way to only redraw widgets that the user is hovering on top of. Unrelated - this change also fixes Stop navigation commands not working with Next/Prev navigation - Wrap is still unsupported. Change 3045157 on 2016/07/11 by Nick.Darnell Slate - Always consume the bottom face button of the analog cursor, even if it's a repeat. Change 3045355 on 2016/07/11 by Matt.Kuhlenschmidt Added logging for unreproducible top 10 crash in matinee when a track ends up not being able to add a keyframe Change 3045358 on 2016/07/11 by Alex.Delesky #jira UE-31179 - The editor should now log additional information and hit an assertion if the editor tries to construct FObjectOrAssetData using invalid data. This doesn't stop the crash, but should help get some extra info when it does break. Change 3045371 on 2016/07/11 by Matt.Kuhlenschmidt Enable the widget reflector from the editor console by typing "widgetreflector" Change 3045387 on 2016/07/11 by Stephan.Jiang Stripping off 'b' in the propertyname so that "Is Enabled" is animated properly. #UE-31874 Change 3046093 on 2016/07/12 by Nick.Darnell UMG - The Slider now exposes the IsFocusable option from Slate. #jira UE-32960 Change 3046094 on 2016/07/12 by Alexis.Matte #jira UE-32807 scene re-import blueprint hierarchy kept some part of old blueprint component value. Change 3046104 on 2016/07/12 by Stephan.Jiang typo "Syc" causing the "Sync" button doesn't show Slateicon #UE-31409 Change 3046142 on 2016/07/12 by Nick.Darnell Orion - Upgrading more code to use the new input mode functions and not the deprecated ones. Change 3046165 on 2016/07/12 by Nick.Darnell UMG - Fixing a crash on the widget component if the render target is null when reapplied through widget component data. #jira UE-32844 Change 3046255 on 2016/07/12 by Nick.Darnell UT - More build warning fixes for the new Input Mode methods. Change 3046604 on 2016/07/12 by Richard.Hinckley Adding a template file and code to support creating a UInterface directly from the New C++ Class wizard. Change 3047071 on 2016/07/12 by Matt.Kuhlenschmidt Better way of summoning the widget reflector from the console Change 3047842 on 2016/07/13 by Matt.Kuhlenschmidt Mark Subdivision surface setting as advanced since it is experimental and definitely for advanced users only Change 3048754 on 2016/07/13 by Trung.Le #jira UE-32159 Automatically regain focus after user gets mouse control during PIE session so we can continue process PIE keybinding commands Change 3048756 on 2016/07/13 by Trung.Le Removed default toggle pause/play keybinding from BaseInput.ini, instead we should use the action defined in DebuggerCommands that is customizable Change 3048865 on 2016/07/13 by Trung.Le #jira UE-32159 SGlobalPlayWorldActions widget shouldn't clear out active widget pointer when it's being handled properly Change 3048892 on 2016/07/13 by Nick.Darnell UMG - Fixing a problem with the interaction component, it now does some basic intelligent ignoring of anything it's attached to - excluding widget components. So it's easier to attach it to things that might be inside of a say a player collision capsule. Also removing the 'Max Interaction Distance' from the widget component as that is no longer the arbitor of interaction distance. #jira UE-33250 Change 3049096 on 2016/07/13 by Trung.Le Wrap SGlobalPlayActions around ViewportWidget instead of making it a child of ViewportWidget. This was causing PIE to stop working when there are other UMG in game. #jira UE-33259 Change 3049177 on 2016/07/13 by Stephan.Jiang Fixing the "No Animation Selected" tag shows up after switching back from Graph to Designer. #UE-33016 Change 3049726 on 2016/07/14 by Stephan.Jiang Adding icons for terrain mirror tool #UE-20588 Change 3049957 on 2016/07/14 by Nick.Darnell Slate - Fixing a small bug in the virtual user function - was preventing getting the same virtual user multiple times if it had already been created. Adding an option to the widget component to control the focusabilty of the underlying slate window that's created to host the widget content. Adding an option to the widget interaction component to control if it should be simulating mouse input at all - use this to effectively disable hit testing, and changing hover states and the like. Change 3049994 on 2016/07/14 by Stephan.Jiang Set viewed animtion to current animtion after switching from Graph to Designer (This is for "No Animation Selected" showing up when switching) #UE-33016 Change 3050194 on 2016/07/14 by Stephan.Jiang Added ability to replace the widget the track is currently bound to Also includes changes in WidgetBlueprintEditor to send delegate to AnimationtabSummoner when switching from Graph to Designer #UE-31809 [CL 3050870 by Matt Kuhlenschmidt in Main branch]
2016-07-14 19:07:16 -04:00
AActor* Actor = Cast<AActor>(*It);
if(Actor != nullptr && Actor->FindComponentByClass<USceneComponent>() != nullptr)
{
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3050373) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2973846 on 2016/05/11 by Jamie.Dale Exposed FConfigValue::ExpandValue and added FConfigValue::CollapseValue These are both static and can be used to expand or collapse the macros used in our config files (mostly when dealing with paths), in code that has to deal with the config system, but isn't internal to the config system (mostly things that deal with default configs outside of UObjects). The old non-static version of FConfigValue::ExpandValue is now FConfigValue::ExpandValueInternal, which just calls FConfigValue::ExpandValue on SavedValue and ExpandedValue. This also changes some code that was using FString.Replace to use FString.ReplaceInline. This reduces allocations, and also allows us to avoid another string comparison to see whether the strings are identical (as ReplaceInline returns the number of replacements that were made). Change 2973847 on 2016/05/11 by Jamie.Dale Changing the loading phase in the localization dashboard now writes to the default config #jira UE-30482 Change 2973866 on 2016/05/11 by Jamie.Dale Deprecated some functions that were taking an unused position. These unused parameters caused confusion and lead to UE-30276. The old versions have been deprecated, and new versions without those parameters have been added. Existing code has been updated to call the non-deprecated version. - FViewportFrame::ResizeFrame - FSceneViewport::ResizeFrame - FSceneViewport::ResizeViewport Change 2974505 on 2016/05/11 by Nick.Darnell PR #2309: Added Combobox styling (Contributed by Chris528) Change 2975241 on 2016/05/12 by Richard.TalbotWatkin Made sRGB Preview the default in the Color Picker. Change 2975390 on 2016/05/12 by Jamie.Dale Made sure that en-US-POSIX is in our list of available cultures Some people use machine tags as their native text, so they need an invariant machine like culture to use as their native culture. en-US-POSIX is perfect for this. Change 2975411 on 2016/05/12 by Jamie.Dale PR #2237: Fixed formatting of Error_TooManyMaterials message (Contributed by pfranz) Change 2975559 on 2016/05/12 by Jamie.Dale Dialogue Wave VO direction can now be localized This is gathered as editor-only data. #jira UE-28715 Change 2975710 on 2016/05/12 by Jamie.Dale Implemented UObject::IsLocalizedResource to test whether the object belongs to a localized package Change 2975728 on 2016/05/12 by Jamie.Dale Exported dialogue scripts now include a column that says whether they have a localized recording of that line of dialogue #jira UETOOL-794 Change 2975763 on 2016/05/12 by Jamie.Dale We no longer warn if asked to check out a UNC path when running the GatherText commandlets #jira UE-25833 Change 2975766 on 2016/05/12 by Jamie.Dale Resolved some loc key conflicts #jira UE-25833 Change 2975774 on 2016/05/12 by Jamie.Dale PO files now only contain a single entry in the case of a native translation being exported They used to contain the original entry, as well as an entry for the native translation, however the original entry would never be used. This change also cleans up some directory walking code that was looking for archive files, and replaces it with code to load the specific archive file. Change 2975776 on 2016/05/12 by Jamie.Dale Downgraded a PO file import warning that isn't really an issue #jira UE-25833 Change 2976675 on 2016/05/13 by Jamie.Dale Fixed some more fallout from changes to use the window position when changing the game viewport mode - FSceneViewport::ResizeFrame: - Fixed the HMD monitor info setting the wrong variables. - Fixed SetWindowMode and ResizeViewport potentially being passed two different modes. - We now only move the window if we need to (this avoids issues with WindowedFullscreen window positioning). - FWindowsWindow::MoveWindowTo: - Now treats the screen space position it's given as relative to the top-left of the window, rather than the top-left of the windows' client area. - FWindowsApplication: - WM_MOVE was passing a screen space position relative to the top-left of the windows' client area, rather than its window area like Slate expected. #jira UE-30276 #jira UE-30677 Change 2976804 on 2016/05/13 by Jamie.Dale Slight optimization to FICUInternationalization::FindOrMakeCulture to avoid hitting the filesystem until we know we need to Change 2976967 on 2016/05/13 by Alexis.Matte #jira UE-30687 Cannot import a skeletal mesh scale to zero Change 2977042 on 2016/05/13 by Alexis.Matte #jira UE-29952 log a warning if fbx exceed the maximum number of LOD. #2326 Github PR #code review matt.kuhlenschmidt Change 2977074 on 2016/05/13 by Jamie.Dale Follow up to CL# 2976804 to avoid a potential change in behavior Change 2977076 on 2016/05/13 by Jamie.Dale Some tidy up and optimization to SCulturePicker Change 2977327 on 2016/05/13 by Alex.Delesky Now deleting the Redirector package on Redirector Fix Up rather than simply removing it from the Content Browser. #jira UE-30423 Change 2977499 on 2016/05/13 by Alexis.Matte #jira UE-29475 Enable UStruct child property to be favorite Change 2978415 on 2016/05/16 by Jamie.Dale We now pre-load all the culture data when starting the editor to avoid a UI hitch later Change 2978517 on 2016/05/16 by Alex.Delesky #jira UE-29406 Creating a static mesh from a geometry brush and then attempting to reimport the mesh will no longer crash the editor. Change 2978518 on 2016/05/16 by Alex.Delesky #jira UE-28210 The FBX Importer no longer runs cleanup upon failing to import an FBX file and won't crash the engine the next time an FBX is imported within the same editor session. Change 2978556 on 2016/05/16 by Alexis.Matte Fbx tests automation #jira UE-29635 Change 2978797 on 2016/05/16 by Alexis.Matte #jira UE-30774 - prevent baking the pivot if we transform the vertex with the absolute transform. - Also make sure we set the identity for the Max puivot in case we dont bake the pivot and we dont transform the vertex with the absolute transform. #code review matt.kuhlenschmidt Change 2978965 on 2016/05/16 by Alexis.Matte FBX importer, fix the socket rotation. #jira UE-30094 Change 2980613 on 2016/05/17 by Jamie.Dale Moved the XLOC UAT localization provider to be publicly accessible Change 2980614 on 2016/05/17 by Jamie.Dale Reference update for project move Change 2980633 on 2016/05/17 by Jamie.Dale Made the culture mapping used between XLOC and UE4 configurable on a per-project basis You can now override GetEpicCultureToXLocLanguageId in your custom localization provider in order to change the default mappings. Change 2980836 on 2016/05/17 by Jamie.Dale Added -LocalizationSteps flag to allow you to only run a subset of the UAT "Localise" command You can pass any of the following steps: Download, Gather, Import, Export, Compile, GenerateReports, Upload Change 2982700 on 2016/05/18 by Jamie.Dale Fixed the loc package gather potentially adding the same source location multiple times Change 2983906 on 2016/05/19 by Jamie.Dale Slight cleanup of the way we register localization gatherer callbacks Change 2984356 on 2016/05/19 by Chris.Wood Removed temporary analytics API change needed for earlier hot fix [UE-31005] - Undo temp Hardware Survey API change from 4.10 - CL 2782817 Change 2986679 on 2016/05/23 by Alex.Delesky #jira UE-24747 - Importing FBX files that contain meshes that do not have non-degenerate triangles will no longer crash the editor on import, and will warn the user that the meshes are bad. Change 2986798 on 2016/05/23 by Alex.Delesky #jira UE-31136 - Chord Input fields will no longer display the blinking edit cursor if they do not have focus. Change 2987106 on 2016/05/23 by Alexis.Matte Fbx importer, fail import must not create a package in the content browser #jira UE-31154 Change 2987563 on 2016/05/23 by Alex.Delesky #jira UE-30988 - Changed the default window mode when launching a game from the .uproject file to Windowed Change 2987564 on 2016/05/23 by Alex.Delesky #jira UE-28856 - Fixed a crash that could potentially occur when starting up PIE while dragging objects like widgets in the editor. Change 2988321 on 2016/05/24 by Jamie.Dale Added a way to backup and restore the selection state of a level (its actors and components) in a way that can be reapplied even if the level is reloaded Change 2988708 on 2016/05/24 by Jamie.Dale Fix for crash when missing the fallback/last resort font Change 2988782 on 2016/05/24 by Jamie.Dale Added the ability to version each localized string individually when loaded into the localization manager The single 32-bit global history has now been replaced with two 16-bit histories. One is global, and is updated whenever the culture is changed (or a LocRes file is loaded), and the other is local to each string, and is updated if the display string is changed outside of a culture update (to handle cases where the display string is changed, but the key is preserved). Changing the global history will reset all local histories. Because of the change from an int32 to a uint16, 0, rather than INDEX_NONE, is now considered the "unset" value for a history. Change 2988856 on 2016/05/24 by Jamie.Dale Added a way to get the package(s) of the object(s) being edited by a property panel Typically the package is just the outermost of the object being edited, however there are some cases where this may not be the case: - UMG widgets edit a transient copy of the real data, so we use the SetObjectPackageOverrides to override the package these objects should use to be the real asset package. - Structs (UDS, Data Table, etc) don't have a way to get to their package, so you have to specify it on their FStructOnScope instance (see FStructOnScope::GetPackage and FStructOnScope::SetPackage). This has been hooked up for the UDS and Data Table editors. Change 2988955 on 2016/05/24 by Alex.Delesky #jira UE-30645 - Adding in support for splash images to support .png and .jpg files. In general, this adds multi-extension support for external image references and external image picker modules. Git Request #2376 Change 2989418 on 2016/05/25 by Jamie.Dale Added a way to count text references within a package that match the given search criteria This can be used to detect whether a localization ID is unique within its package. The following search modes are available: - MatchId: Detect a reference if it matches the given ID (ignoring the source text) - MatchSource: Detect a reference if it matches the given ID and source string - MismatchSource: Detect a reference if it matches the given ID but has a different source string Change 2989436 on 2016/05/25 by Jamie.Dale Added "root-level" meta-data (meta-data associated with the package rather than an object within it) Change 2989471 on 2016/05/25 by Alexis.Matte Fbx scene importer, fix naming clash when creating package we now also look in memory to find existing package not just on disk Change 2989639 on 2016/05/25 by Jamie.Dale Added static version of FName::IsValidXName This allows you to verify name-like strings without having to convert them to an FName (and thus add them to the name table) Change 2989716 on 2016/05/25 by Alex.Delesky #jira UE-30828 - The Standalone Session Frontend will now render the names of automation tests correctly instead of as solid white blocks. Change 2990100 on 2016/05/25 by Alexis.Matte Fix crash when reimporting a mesh that originaly exceed the maximum number of LOD #jira UE-30907 Change 2991442 on 2016/05/26 by Bob.Tellez #UE4 Fix components in world not rendering when saved without a physics scene. Change 2991736 on 2016/05/26 by Bob.Tellez #UE4 Fix duplicated worlds not being initialized when inactive. Re-enabled duplication of worlds in the content browser. Change 2991942 on 2016/05/26 by Alex.Delesky #jira UE-31012 - Setting a Decimal Grid Interval value to 0 and using it will no longer crash the editor or cause an editor crash on startup. Change 2991994 on 2016/05/26 by Alex.Delesky #jira UE-31177 - Attempting to export an entire level as an object file and choosing to export all materials as images will no longer crash the editor. Change 2994037 on 2016/05/30 by Alexis.Matte Add Fbx Automation Tests - static mesh import reimport (sections and materials) - skeletal mesh import and reimport (sections and materials also bone position) - static/skeletal mesh LODs (import, add, reimport) - rigid mesh (import, reimport) Change 2994253 on 2016/05/31 by Alexis.Matte Mikkt crash when computing the normals if there is more vertex then the number of wedge #jira UE-29143 Change 2994260 on 2016/05/31 by Alexis.Matte Make sure we cannot modify fbx test plan when json file is read only Change 2994431 on 2016/05/31 by Alex.Delesky #jira UE-21900 - The scale widget should now render all axes when using an orthographic camera. Change 2994432 on 2016/05/31 by Alex.Delesky #jira UE-31328 - New objects dragged into the scene will now comply with the Surface Snapping option in the viewport, and will not use the Surface Offset if snapping is disabled. Change 2994537 on 2016/05/31 by Richard.TalbotWatkin Fixed potential crash in the Mesh Paint tool when non-transactable actors are in the SelectedActors list following a Redo. #jira UE-31172 - Crash related to Vertex Painting - MeshPaint!CastChecked<AActor,UObject>() Change 2994983 on 2016/05/31 by Richard.TalbotWatkin Added some guard code to protect against a crash when editing geometry. Repro currently unknown, ensure was added in order to try to get more information. #jira UE-30820 - UT EDITOR: CRASH: Crash in Public Release CL#2973693 Change 2995022 on 2016/05/31 by Jamie.Dale PR #2428: Added missing END_OPTIMIZATION macro to SOutputLog (Contributed by MatzeOGH) Change 2995027 on 2016/05/31 by Jamie.Dale PR #2409: fixed a small typo in GraphEditor.h (Contributed by MatzeOGH) Change 2995963 on 2016/06/01 by Alex.Delesky #jira UE-31317 - The transform gizmo will no longer block the placement of a material onto a mesh. Change 2997002 on 2016/06/01 by Cody.Albert Fix to ensure ActiveTopLevelWindow is properly set after a window is destroyed #jira UE-31448 Change 2998013 on 2016/06/02 by Alexis.Matte Prevent static mesh materials array to grow when using the reset button in the staticmesh editor. #jira UE-12931 Change 2998370 on 2016/06/02 by Alexis.Matte Fbx Automation, add some import LOD test in case the options are not ok Change 2999709 on 2016/06/03 by Jamie.Dale Fixed some issues with gathering text from BP bytecode Bytecode in Blueprints is very volatile, and can only be safely gathered after it's been compiled (which is not guaranteed to have happened by the time we save the package). This change avoids caching any assets that contain scripts (non-data-only Blueprints), and instead will always load them to perform a gather (which will ensure the Blueprint bytecode is up-to-date due to compile-on-load). Change 2999755 on 2016/06/03 by Richard.TalbotWatkin Fixes to Spline Mesh collision generation. - Fixed a serious issue with DDC ID generation, in that the static mesh wasn't forming a part of the key, hence any two spline meshes with identical properties but different meshes would yield the same cache entry. - Fixed how different collision boxes are transformed when rebuilding physics meshes. Convex collision transforms are now correctly taken into account, and spherical and capsule collision now gets correctly translated when a scale is applied to the start or end of the spline mesh. - Optimized physics rebuilding. A new BodySetup object is now only created when needed, otherwise it is reused. #jira UE-31361 - Splines handle box collision and collision from other shapes differently Change 2999973 on 2016/06/03 by Jamie.Dale We now skip bulk data when detecting text references #jira UE-31596 Change 3000159 on 2016/06/03 by Alex.Delesky #jira UE-30244 - Added a safeguard against a potential crash when editing BSP brushes before placing another BSP brush into the level. Change 3001814 on 2016/06/06 by Alexis.Matte Make sure the staticmesh Materials list dont grow when we reimport or override a LOD other then the base mesh. Add a fbx test to make sure the problem is flag by automation test #jira UE-1394 Change 3001820 on 2016/06/06 by Alex.Delesky #jira UE-19079 - Widget Blueprints should no longer crash when dragging widgets from one blueprint to a second and then compiling the second blueprint. Change 3001915 on 2016/06/06 by Alexis.Matte Make sure we check attribute type before checking attribute unique ID in case of unique id clash. #jira UE-31214 Change 3002026 on 2016/06/06 by Alexis.Matte Importing morph target should not import textures like materials since the base mesh already import thoses. UDN Question: https://udn.unrealengine.com/questions/293973/does-importing-an-fbx-with-morph-targets-cause-a-m.html Change 3002623 on 2016/06/06 by Jamie.Dale Fixing more loc conflicts Change 3002883 on 2016/06/06 by Jamie.Dale Adding retry when dealing with OneSky This is attempting to compensate for some timeouts with OneSky, which were also noticed when testing UE-31413 Change 3003004 on 2016/06/06 by Trung.Le #jira UE-13101 - Make "Description" field for a BluePrint Function multiline Change 3003859 on 2016/06/07 by Alexis.Matte #jira UE-30436 Refresh the property editor when a array element is added, remove, insert, delete and the property is favorite Change 3004132 on 2016/06/07 by Jamie.Dale Fixed a hash conflict that could occur when both the case-sensitive and case-insensitive FName hashes were identical This resulted in the case-preserving FName being added to the head of the linked list for the bucket, which caused any subsequent name lookups to return that name index for the comparison index (since it matched an insensitive string comparison), rather than the name index of the first case-variant of that name that was added to the bucket. This change has new entries be inserted at the tail of the list, which ensures that enumeration for a case-insensitive name will always find the same entry in the bucket (the first one that was ever added) and will continue to compare correctly. Change 3004286 on 2016/06/07 by Jamie.Dale Ensured that assignments that publish new names to the bucket are atomic Change 3004310 on 2016/06/07 by Jamie.Dale Ensured FName internal hashes are returned as uint16 Change 3004381 on 2016/06/07 by Jamie.Dale FAsyncPackage now creates the meta-data before processing the remaining exports This matches the behavior of FLinkerLoad::LoadAllObjects, as other objects may depend on the meta-data being loaded before them. Change 3004765 on 2016/06/07 by Alex.Delesky #jira UE-31498 - Material thumbnails will now render the full sphere rather than an extreme close-up of the material. Change 3005754 on 2016/06/08 by Trung.Le Allow whitespace for meta class names #jira UE-31668 Change 3005755 on 2016/06/08 by Stephan.Jiang UMGSequencePlayer implements GetPlaybackContext() and return UserWidget->GetWorld() if it's valid #jira UE-31299 Change 3006512 on 2016/06/08 by Alex.Delesky #jira UE-31572 - The "All Classes" tab in the Modes panel will now refresh when a placeable asset is created, renamed, or deleted without needed to navigate away from the tab first. Change 3006760 on 2016/06/08 by Jamie.Dale Added support for stable localization keys This feature adds support for preserving the existing key of an FText property when editing the source string, providing that it is the only reference to that string within the package. A side effect of this is that you're now able to specify custom keys for FText properties since we can now verify that the custom key won't cause an identity conflict. In order to limit the search domain for uniqueness to a single package, we've added the concept of a "localization namespace" to packages (stored in the meta-data). Each package is given a unique namespace, which is appended to the user-defined namespace of the text when it is modified, saved, or duplicated. This package namespace ensures that the same user-defined namespace and key may be used in different packages without causing an identity conflict. In order to access the package namespace within the Core code that hosts FText (which doesn't know about UPackage), FArchive now provides a GetLocalizationNamespace function to access the package namespace within the Core code, and a SetLocalizationNamespace function for CoreUObject and Engine code to pass down the package namespace from their packages. If you have an archive that handles duplicating objects into a different package, or duplicating packages themselves, then you'll want to make sure it's setting the package namespace correctly. FObjectReader and FObjectWriter have been updated to do this, and serve as a good example. FDuplicateDataReader (used by StaticDuplicateObject), and FCopyPropertiesArchiveObjectWriter (used when compiling Blueprints) have also been updated to set the package namespace, as they both handle copying objects between packages. TextNamespaceUtil provides a suite of functions for getting at (or setting) the namespace for a package. Keys will start to stabilize naturally over time once this feature is enabled, however the StabilizeLocalizationKeys commandlet may also be used to stabilize all the keys for a game at once. Running it for a game under source control would look something like this: MyGame -run=StabilizeLocalizationKeys -IncludeGame -NativeCulture=en -EnableSCC This commandlet also updates your localization archives to use the new text identities, however you'll still need to run a localization gather and localization compile before the updated translations will be available for your game. Note: This feature is currently disabled via the USE_STABLE_LOCALIZATION_KEYS define. It will be enabled at a later date. #jira UETOOL-796 Change 3007501 on 2016/06/09 by Trung.Le #jira UE-31722 Fix MaterialFunctions crash when editing text in Libraries Category Text field. Solution: Removed PredEdit and PostEdit from IEditableTextProperty, its derived types and other code that was calling them. The new SetText method already calls NotifyPreChange and NotifyPostChange to properly create/destroy ScopedTransaction. Change 3007524 on 2016/06/09 by Jamie.Dale Added some additional checks to avoid re-keying text when duplicating for PIE Change 3007564 on 2016/06/09 by Jamie.Dale PR #2401: DataTable import/export improvements (Contributed by bozaro) Change 3007653 on 2016/06/09 by Jamie.Dale PR #2459: Generate JSON for nested structs in DataTable rows (Contributed by jorgenpt) Change 3008019 on 2016/06/09 by Jamie.Dale Updated structs to export as JSON when displaying them in the Data Table editor This produces much cleaner results than using the text export method (which will use the internal names for user defined structs). This also cleans up the FDataTableExporterCSV and FDataTableExporterJSON APIs so that you don't need to pass in a UDataTable if you're not going to use it. #jira UE-29958 Change 3008052 on 2016/06/09 by Jamie.Dale Fixed bug importing an array inside a JSON Data Table This was noticed when testing a GitHub PR, but the JSON importer for a Data Table was appending the new data to the array rather than replacing it. It now clears the array prior to importing. Change 3008875 on 2016/06/10 by Jamie.Dale PR #2406: Git plugin: Fix for Git diff not working in UE 4.12 (and master) (Contributed by SRombauts) Change 3008879 on 2016/06/10 by Jamie.Dale PR #2484: Git Plugin: fix the Submit To Source Control menu broken by new "migrate" support in 4.12 (and master) (Contributed by SRombauts) Change 3008990 on 2016/06/10 by Alex.Delesky #jira UE-15699 - Submitting to source control via the editor should now check for current asset status before prompting the user to submit their changes. This should prevent files that had been previously deleted from being readded to source. Change 3008991 on 2016/06/10 by Alex.Delesky #jira UE-31688 - The Output Log will now automatically anchor to the bottom of the scroll bar when the user scrolls all the way down using the mouse wheel or clicking and dragging the content window. Change 3010856 on 2016/06/13 by Alexis.Matte #jira UE-31713 Fix a serialize issue for skeletal mesh with apex cloth. Change 3011736 on 2016/06/13 by Jamie.Dale Adding missing plurals.res file This is needed to get plural form information from ICU. #jira UETOOL-875 Change 3012387 on 2016/06/14 by Richard.TalbotWatkin Disabled the Paste context menu action if the property is marked as EditConst. #jira UE-27469 - User is able to paste values into a read-only setting Change 3012971 on 2016/06/14 by Stephan.Jiang Editor Preferences->Widget Designer now have two options to toggle the visibilities of widgets created from Engine content folder and Developers folder. By default, visibility for engine content is off and developers is on #jira UE-31657 Change 3013111 on 2016/06/14 by Jamie.Dale Unified the number, percentage, and currency formatting between the ICU and Legacy text implementations Removed all the old legacy number formatting code, and removed the calls to the ICU specific number formatting. Everything is now using FastDecimalFormat as this will allow some optimizations later when formatting numbers in FText::Format. Change 3015438 on 2016/06/15 by Cody.Albert Fixing ScrollBy function to calculate new scroll offset based on the current scroll offset and not the current desired scroll offset (which may not be the same during an animation) #jira UE-32082 Change 3016782 on 2016/06/16 by Richard.TalbotWatkin Corrected ConvexHull2D so that it returns an empty set of indices when passed an empty points array. Change 3016949 on 2016/06/16 by Jamie.Dale Added FastDecimalFormat overloads to write into an existing string This helps avoid an extra allocation if you already have a pre-sized string that you're writing the number to (as is the case in FText::Format). Change 3016952 on 2016/06/16 by Jamie.Dale Changed an Add for an Emplace to avoid moving a temporary Change 3016954 on 2016/06/16 by Jamie.Dale Updated some FText code to avoid creating temporary objects just to move data through a hierarchy There was some code in FText and its internal types that were using pass-by-value as a marshaller to move data through a hierarchy. This resulted in temporary objects being created and destroyed to facilitate the movement of data. This change has all the internal FText code (private FText constructors, internal text data, and internal text history) take its movable types as an r-value reference. This avoids the temporary objects, but also makes it impossible to accidentally copy a construction argument when you meant to move it (you can still copy, but the copy must be explicit). In addition to this, FText::FromString and FText::AsCultureInvariant now have two overloads, const FString& and FString&&, to avoid them creating a temporary when you're invoking a move. FText::ChangeKey now takes its parameters by const& as their data wasn't being moved further down the chain, so the by-value copy was wasteful. Change 3019021 on 2016/06/19 by Richard.TalbotWatkin When deleting a brush, ensure geometry is rebuilt before updating the details panel according to the selection change, so that the old Surface Properties don't continue to appear. #jira UE-8966 - Surface Properties of a BSP remain in the details panel after the BSP is deleted Change 3019022 on 2016/06/19 by Richard.TalbotWatkin Fixed issue where the Surface Properties category in the Details panel doesn't appear after selecting a surface on a Brush which has just been placed. #jira UE-31916 - Selecting an edge of BSP geometry then a face does not show Surface Properties while in Place mode #jira UE-31915 - Selecting BSP face does not show Surface Properties in Details Change 3019025 on 2016/06/19 by Richard.TalbotWatkin Fixed issue which was stopping 'Cancel' from correctly returning a 'Cancelled' result during P4 asynchronous ops. #jira UE-28595 - Submit to Source Control: "Checking for assets to check in..." cancel button does not cancel operation, editor becomes unresponsive Change 3020050 on 2016/06/20 by Cody.Albert Changed window centering logic to correctly work when monitor 1 isn't set to primary monitor. #jira UE-32173 Change 3021145 on 2016/06/21 by Jamie.Dale Added support for text format argument modifiers These can be used to mutate a format argument before appending it to the resultant formatted string, and are applied to the preceding argument via a pipe, eg) "{Arg}|plural(one=is,other=are)". We provide a few of these by default: - |plural(key=val,...) - |ordinal(key=val,...) Provides support for cardinal and ordinal plural forms, where key may be any of "one", "two", "few", "many", or "other", and val may be any optionally quoted string. - |gender(masculine,feminine,[neuter]) Provides support for gender forms, where the 0th item is the masculine version, the 1st item is the feminine version, and the 2nd item is an optional neuter version. The values may be any optionally quoted string. - |hpp(consonant,vowel) Provides support for Hangul post-positions, where the 0th item is the consonant suffix, and the 1st item is the verb suffix. The values may be any optionally quoted string. Major changes: - Exposed the ICU plural form handling via FCulture::GetPluralForm. - Updated the FText formatting code to use an expression evaluator (to support the more complex expressions needed for the argument modifiers). - Added FTextFormat to store a pre-compiled format expression. Re-using one of these if you're performing a lot of formats with the same FText will increase your performance (as around half of the FText::Format cost can be compilation, via an implicit construction of FTextFormat). - Updated the FText::Format(...) family of functions to take their format string as FTextFormat, and take their arguments as FFormatArgumentValue. This allows us access to the real numeric types within the format code, but doesn't break the existing API as these types are implicitly constructible from the old parameters (FText). - Converted text history to store their format string as an FTextFormat in-case they need to perform a re-format (this is still saved as an FText). Breaking changes: - The rules for the escape token have been simplified, and there is an incredibly unlikely chance that this may affect some text: - The ` character will now only escape a valid character (producing only the escaped character in the final string), or it will be ignored and inserted as a literal character, eg) "`{F" -> "{F", and "`F" -> "`F". - Previously it would also remove the escape character when it followed { or }, eg) "{`" -> "{" and "}`" -> "}", rather than "{`" and "}`" like you might expect. It would also have previously removed a ` at the end of a string due to a parser bug. Change 3021156 on 2016/06/21 by Jamie.Dale Updated LinuxToolChain to use the same output delegate for all of its actions when cross-compiling This avoids the compile and link actions being split into different batches. Change 3021280 on 2016/06/21 by Richard.TalbotWatkin Fixed bug in parsing LOD in UStaticMeshComponent::ImportCustomProperties (thanks to Aurelien Cordonnier). #jira UE-31937 - UDN code submission for UStaticMeshComponent::ImportCustomProperties parsing bug Change 3022949 on 2016/06/22 by Alex.Delesky #jira UE-31944 - Upgrading Subversion binaries to version 1.9.4. Change 3023092 on 2016/06/22 by Jamie.Dale Downgraded some checks to ensures and added an early out #jira UE-32009 Change 3023154 on 2016/06/22 by Jamie.Dale Ported over CL# 3018771 to the UE automation This fixes an issue where a downloaded PO file smaller than the one already on disk leaving a mix of both files on disk (rather than the existing file on disk being truncated). Change 3023579 on 2016/06/22 by Jamie.Dale Expanded the Blueprint FormatText node to support numeric and gender types These are needed to correctly support the new plural and gender forms that can be used in format strings, as these require actual numeric/enum data to be passed into the format arguments, rather than pre-formatted text. Major changes: - The FormatText node for Blueprints now uses PC_Wildcard as its pin type for format arguments instead of PC_Text. - Any existing literal text argument data in the pin is hoisted out into a "Make Literal Text" node which is then connected to the pin. - FFormatArgumentData has been updated to be variant on the data needed by Blueprints. It's now a less comprehensive and non-unioned version of FFormatArgumentValue. - The version of FText::Format taking FFormatArgumentData has been deprecated as its usage was internal to Blueprints and we have much better ways to format text in C++. Any existing C++ using that (of which we have none internally) should be updated to use FFormatArgumentValue instead. Change 3023915 on 2016/06/22 by Jamie.Dale Cleaned up some of the UK2Node_FormatText expansion code to avoid unchecked literals Change 3024813 on 2016/06/23 by Jamie.Dale Renamed FContext to FManifestContext to better reflect its purpose and avoid naming conflicts with other code Change 3024852 on 2016/06/23 by Nick.Darnell FBX - Updating automation tests with the changes to chunk and chunk index removal and them being merged with sections. Change 3024994 on 2016/06/23 by Nick.Darnell UMG - Removing the DesignerWidgetTree, instead going to directly inject the widget tree into the partially constructed UUserWidget during design time, when refreshing the preview. This avoids doing something a little dangerous and sketchy like updating the living class instance with a new designer tree that all new instances will begin biasing using. Also making the preview widget explictly non-transactional as there's no reason to track changes to the preview, all the changes that need to be tracked should be on the template widget. This should fix the crash in the widget designer when you Undo just after compiling the widget blueprint. #jira UE-31155 Change 3025194 on 2016/06/23 by Alex.Delesky #jira UE-31155 - Compilation error fix. Change 3025255 on 2016/06/23 by Alex.Delesky #jira UE-21900 - Redoing changes done in CL 2994431 since it got stomped. Reinstates the grabber handles and ensures consistent scaling on the scale widget in orthographic viewports. Change 3025460 on 2016/06/23 by Cody.Albert Fixed issue where widget components would misalign when aspect ratio was being constrained #jira UE-29637 Change 3025508 on 2016/06/23 by Cody.Albert Adding support for adjusting animation playback speed #jira UE-32222 Change 3026444 on 2016/06/24 by Jamie.Dale Fixed crash caused by bad access of shared this when closing an active IME context This was only needed to get the owner window, which we now cache when the IME context is created. #jira UE-32240 Change 3028358 on 2016/06/27 by Jamie.Dale Fixed IMEs not working due to no window being cached #jira UE-32240 Change 3028464 on 2016/06/27 by Alex.Delesky #jira UE-31873 - A single "Files need check-out" notification will now be shown instead of multiple notifications if multiple files need to be checked out, and updated as more files need to be checked out. Change 3028524 on 2016/06/27 by Chris.Wood Switched off uploads to legacy Crash Report Receiver. [UE-31252] - Switch off deprecated CRR upload in Crash Report Client Also added CRC version string, added to crash context from CRC config Change 3028840 on 2016/06/27 by Alexis.Matte #jira UE-32306 replace material bad name character by an underscore when doing a scen import. Change 3028924 on 2016/06/27 by Alexis.Matte #jira UE-32125 Make sure we can add a plan when a fbx file is drop in the fbx automation test folder Change 3029044 on 2016/06/27 by Alex.Delesky #jira UE-31944 - Updating SVN binaries for Mac to 1.9.4 Change 3029276 on 2016/06/27 by Alex.Delesky #jira UE-31531 - A user can now select the base class when creating a new physical material. PR #2462: added dialog, which enables picking base class for asset (Contributed by iniside) Change 3029459 on 2016/06/27 by Alexis.Matte #jira UE-32354 Make sure we set all blueprint component to the correct mobility set in the scene import options. Change 3030577 on 2016/06/28 by Nick.Darnell PR #2531: Git plugin: fix wrong status icons (Contributed by SRombauts) Change 3030587 on 2016/06/28 by Alexis.Matte #jira UE-32251 add missing body setup variables when restoring the body setup value after a re-import of a staticmesh Change 3030946 on 2016/06/28 by Alexis.Matte #jira UE-32515 prevent crash when re-import staticmesh userdata Change 3031115 on 2016/06/28 by Jamie.Dale The DDC builder now gives the shader compile worker a chance to catch up when it pauses to run a GC pass This prevents an issue where the shader backlog could cause massive amounts of memory to be consumed. Change 3031146 on 2016/06/28 by Jamie.Dale Fixed errors when building with USE_STABLE_LOCALIZATION_KEYS enabled caused by UEdGraphPin no longer being a UObject Change 3031357 on 2016/06/28 by Nick.Darnell PR #2431: Add plugin support to the editor class wizard. (Contributed by Koderz) Change 3031515 on 2016/06/28 by Jamie.Dale Fixed game targets not being able to depend on other game targets Change 3031520 on 2016/06/28 by Jamie.Dale Localization compilation now specifies an ArchiveName to use Change 3031671 on 2016/06/28 by Nick.Darnell Editor - Checking to see if a weak variable is valid before using it in the editor build window. Change 3032013 on 2016/06/28 by Matt.Kuhlenschmidt Added ability to invert the Y axis in editor viewports for mouse look and orbit Change 3032495 on 2016/06/29 by Jamie.Dale Fixed some measuring issues with bi-directional text within a right-flowed document There were three main issues: 1) Measuring blocks was measuring visual glyphs rather than logical glyphs (this caused bad measures/wrapping and overlapped rendering). 2) The text layout would consider blocks visually contiguous without making sure the block flow direction matched the line flow direction (this caused bad highlights). 3) The text layout would fail to compensate for a non-contiguous block that had a flow direction different to the line flow direction (it was hard-coded for RTL in LTR, so broke for LTR in RTL - this caused bad highlights). #jira UE-32526 Change 3032533 on 2016/06/29 by Nick.Darnell UMG - The widget component now extends from UMeshComponent, it can have a custom material applied to it, in order to achieve cooler effects - like ignoring the depth buffer. Users who use this option are encouraged to start with the widget components default material and work from there. The widget component now offers the ability to automatically size the render target to be the desired size of the widget - note that this can go real bad if your widget wants to be really big. Change 3032855 on 2016/06/29 by Alexis.Matte #jira UE-32508 Remove the cachewindow from the FTextInputMethodContext constructor since it will be cache only when the IME is activated #test please re-test also UE-32240 Change 3033145 on 2016/06/29 by Alex.Delesky #jira UE-32239 - The PropertyEditorModule will no longer cause a crash on editor shutdown if a SDetailsView widget tries to force refresh itself when the Slate application is no longer initialized. Change 3033147 on 2016/06/29 by Alex.Delesky #jira UE-32326 - Clicking on the "Install {compiler}" button when trying to create a new code class or code project will now not crash the engine if it fails to open the installation file for write, nor will it create multiple notifications if the button is pressed repeatedly. This also addresses a potential issue with static initialization order when it comes to adding TickableEditorObjects to its corresponding array, since it was wholly possible for a statically initialized TickableEditorObject to initialize itself and add itself to the tickable objects arra before the tickable objects array was initialized, causing that object to not get ticked at runtime and causing a crash when the editor was closed. Change 3033162 on 2016/06/29 by Alex.Delesky #jira UE-31827 - Undo/redo now works in the Material function editor. Change 3033391 on 2016/06/29 by Matt.Kuhlenschmidt Fix post process settings blendable picker not being readable in the details panel Change 3033498 on 2016/06/29 by Matt.Kuhlenschmidt Fixed huge number of redundant calls to CanEditChange and DiffersFromDefault that were causing massive performance loss when thousands of objects are selected. CanEditChange and DiffersFromDefault are now cached each time a property value changes. Fixed redundant calls for getting visualizers for each selected object. This is now cached on selection Change 3033504 on 2016/06/29 by Matt.Kuhlenschmidt Fix Mass customization on the body instance not working with undo/redo or reset to default Change 3034357 on 2016/06/30 by Alex.Delesky #jira UE-31184 - Renamed the multiple collision components in the cascade particle system to more accurately reflect what they represent. Change 3035915 on 2016/07/01 by Richard.TalbotWatkin Fix to SListPanel so that those with horizontal arrangement (i.e. from STileView) use the number of desired items instead of the number of actual items in order to calculate the desired size of the geometry. This fixes the case where an STileView is contained within an SScrollBox. #jira UE-32195 - STileView no longer works correctly when placed inside of a SScrollBox Change 3035951 on 2016/07/01 by Richard.TalbotWatkin Fixed issue when importing a brush, so that the brush is always validated (relinked), whether it be a static or dynamic brush. This is because the process of rebuilding a dynamic brush sets the link indices to signify FBspSurf indices from the UModel instead of FPoly indices (the FPoly::iLink member is overloaded in its meaning). Always forcing a relink correctly sets the linked list of coplanars. #jira UE-32087 - Crash occurs when creating Static Mesh from Trigger Volume Change 3036991 on 2016/07/04 by Alexis.Matte #jira UETOOL-901 Scene importer now support the rigid mesh animation Change 3037037 on 2016/07/04 by Jamie.Dale Fixed regression in editable text box alignment Text was no longer vertically aligned center since SEditableText was converted to use a text layout. This vertical alignment is now handled by the outer SEditableTextBox instead. Change 3037057 on 2016/07/04 by Richard.TalbotWatkin Fixed screenshots when running automation tests so that they are saved locally when a FAutomationWorkerScreenMessage is received. #jira UE-29815 - In-game screenshot isn't working under certain circumstances Change 3037082 on 2016/07/04 by Chris.Wood Added detection of asserts and passing assert flag and crash type string to crash reports. [UE-30592] - Crash Reporter should determine crash type on client and pass string to server Reviewe by Steve with reservations about the static variable for setting asserted state. While not thread-aware, this is probably accurate enough for the purpose of crash reporting, certainly for now. I'm submitting it like this because the work required to add fully thread-aware fix is not necessary at this point. Change 3037095 on 2016/07/04 by Alexis.Matte Fix the bone name when duplicating a socket. Change 3037453 on 2016/07/05 by Stephan.Jiang Adding ability to animate the root wigdet #2 FHierarchyRoot adds the preview widget instead of CDO to selectedobjects in widgetblueprint the properties are then migrated back to the CDO #UE 31810 Change 3037487 on 2016/07/05 by Jamie.Dale Fixed crash caused by stale BP pointer #jira UE-32325 Change 3037488 on 2016/07/05 by Jamie.Dale Fixed a crash that could occur when a class and a folder had the same name Change 3037526 on 2016/07/05 by Jamie.Dale Speculative fix for a potential race condition when shutting down the editor while a "launch" was in progress The launch-thread could potentially queue up a request after the game-thread had requested it cancel, and cleared out any queued tasks. This change has the game-thread wait for the launch-thread to acknowledge its cancellation before continuing with editor shutdown. #jira UE-17688 Change 3037557 on 2016/07/05 by Alex.Delesky #jira UE-32424 - Added a safeguard to ensure that renaming a world that was duplicated from another world would not crash the editor if both worlds' lightmaps and shadowmaps were still active in memory, due to the editor attempting to rename identical textures from different packages to the same location. The actual fix to this issue was performed in an earlier CL, but this should prevent the editor from crashing if the issue returns. Change 3037558 on 2016/07/05 by Alex.Delesky #jira UE-32285 - Importing assets to the Content Browser via drag and drop operations are no longer permitted while the UI file picker dialog is opened. Change 3037559 on 2016/07/05 by Alex.Delesky #jira UE-32075 - The user can no longer attempt to import non-FBX and non-OBJ files when importing into a level. Change 3037593 on 2016/07/05 by Stephan.Jiang GitHub #2549: Add function for setting the playback rate of UMG animations original code shelved in CL 3033449 #UE-32653 Change 3037605 on 2016/07/05 by Jamie.Dale Fixed infinite recursion that could happen when gather loc from an object with a custom callback #jira UE-32670 Change 3037649 on 2016/07/05 by Nick.Darnell PR #2538: [WidgetBlueprintLibrary] GetAllWidgetsOfClass, Added META ~ DeterminesOutputType, DynamicOutputParam, removes the need for extra cast,  Rama (Contributed by EverNewJoy) Change 3037652 on 2016/07/05 by Nick.Darnell Clean - Removing commented out code. Change 3037658 on 2016/07/05 by Matt.Kuhlenschmidt Fix initial hitch when dragging around in a color picker opened from a material expression node. Change 3037679 on 2016/07/05 by Nick.Darnell Engine - Texture2D no longer forces the MIP level to 0 for TextureGroup_UI textures. Change 3037757 on 2016/07/05 by Nick.Darnell PR #2447: WebBrowser widget: Added GetUrl method and OnUrlChanged property (Contributed by nelbok) Change 3037840 on 2016/07/05 by Nick.Darnell UMG - Now allowing for spirtes to be used just like textures and materials on UMG widgets anywhere that takes a brush, can now also take a Sprite. There is now a ISlateTextureAtlasInterface interface that any UObject may now implement if it wishes to integrate with UMG to provide its atlas data in a form Slate can understand. Change 3037924 on 2016/07/05 by Jamie.Dale Re-ordered variable initialization to appease a warning on Mac Change 3037981 on 2016/07/05 by Jamie.Dale Fixed crash where FColorStructCustomization could call SetPerObjectValues with an empty array #jira UE-32639 Change 3038075 on 2016/07/05 by Cody.Albert Removed misleading error message in HandleCECommand #jira 28007 Change 3038231 on 2016/07/05 by Alexis.Matte #jira UE-30694 We set the section collision only if there is an imported collision or a generated one. If there is no collision we do not set the collision flag. Change 3038275 on 2016/07/05 by Alex.Delesky #jira UE-32689 - "Game Gets Mouse Control" will now override the Capture Mouse on Launch setting when launching the game from within a Level Viewport (i.e., within the editor window itself). Change 3039310 on 2016/07/06 by Trung.Le #jira UE-25005 Change PIE Key Bindings - Removed Shift+F1 and Esc from BaseInput.ini - Created new customizable key binding for + Shift+F1: same functionality. + Esc: now will pause the play session and bring back the mouse cursor. Clicking the mouse on the viewport should resume play session. + Shift+Esc: now will stop the play session Change 3039458 on 2016/07/06 by Trung.Le Removed unused code in StaticMeshLight.cpp Change 3039827 on 2016/07/06 by Frank.Fella FString - Fix divide overload path concatenation for empty paths since there are several places in the engine that expect using that doing { path / "" } will append a / onto path. #jira UE-31959 Change 3041094 on 2016/07/07 by Nick.Darnell WebBrowser - Fixing an issue where the web browser widget plugin wasn't loading soon enough to be properly loaded in time if it was referenced by game nessesary content thatloads in the Default stage of the pipeline, so moving it to PreDefault. #jira UE-32694 Change 3041110 on 2016/07/07 by Matt.Kuhlenschmidt Fix visualizers on blueprint actors not working when the internal components are trashed and replaced Change 3041302 on 2016/07/07 by Chris.Wood Increased buffer size for crash uploads. [UE-32151] - High number of crashes read from S3 by Crash Report Process are failing to unpack Trivial change in dev branch - no code review Change 3041969 on 2016/07/07 by Nick.Darnell UMG - Input Key Selector now no longer adds a bogus Selected Key property to the details panel. Change 3041971 on 2016/07/07 by Nick.Darnell UMG - Not using separate settings for the Engine/Developer folders visible in the UMG palette, now just using the same setting that powers the content browser. Change 3042612 on 2016/07/08 by Trung.Le #jira UE-25005, set Shift+Esc defaults to toggle play/pause and Esc remains defaults to quit Change 3042732 on 2016/07/08 by mitchell.wilson Adding test content for UMG Paper 2d Atlas test Change 3042780 on 2016/07/08 by mitchell.wilson Updating UMG_Paper2d test content for UMG Paper 2d Atlas testing Change 3042870 on 2016/07/08 by mitchell.wilson Renaming UMG_Paper2d to UMG_Sprite Change 3044104 on 2016/07/10 by Nick.Darnell PR #2104: Improved widget input support (Contributed by projectgheist) Change 3044107 on 2016/07/10 by Nick.Darnell Slate - Fixing the slider handle rendering to no longer run off the edge and get cut off. #jira UE-25750 Change 3044377 on 2016/07/11 by Chris.Wood Add Slack messaging module - Epic Friday Change 3044536 on 2016/07/11 by Alex.Delesky #jira UE-7293 - Mouse locking to viewport is now determined off an enum instead of a boolean, to allow for more flexibility when upgrading with new features. Change 3044922 on 2016/07/11 by Nick.Darnell Slate/UMG - Working on better support for VR interactions with Slate widgets. This change fixes a lot of issues with the way interaction works with slate widgets rendered in the virtual world. Breakages, direct mouse interaction with widgets in the virtual world is no longer supported. Those kinds of interactions must all use the WidgetInteractionComponent now, which by default works similar to the lasers in VREditor for interaction. However - you can disable automatic hittesting, and instead provide a custom hitresult instead if you want to use screen tracing and act like you're just a mouse cursor that is supported. Menu anchors now properly function inside of widgets in the virtual world. Performance improvements - the viewport no longer arranges all 3d widgets every frame. Additionally, Widget Components now support a whole bunch of methods for reducing how often they redraw to help control performance, they also support manual refresh. This automatically works in tandem with the widget interaction component to request refresh whenever the widget interaction component is interacting with the widget, thus giving you a simple way to only redraw widgets that the user is hovering on top of. Unrelated - this change also fixes Stop navigation commands not working with Next/Prev navigation - Wrap is still unsupported. Change 3045157 on 2016/07/11 by Nick.Darnell Slate - Always consume the bottom face button of the analog cursor, even if it's a repeat. Change 3045355 on 2016/07/11 by Matt.Kuhlenschmidt Added logging for unreproducible top 10 crash in matinee when a track ends up not being able to add a keyframe Change 3045358 on 2016/07/11 by Alex.Delesky #jira UE-31179 - The editor should now log additional information and hit an assertion if the editor tries to construct FObjectOrAssetData using invalid data. This doesn't stop the crash, but should help get some extra info when it does break. Change 3045371 on 2016/07/11 by Matt.Kuhlenschmidt Enable the widget reflector from the editor console by typing "widgetreflector" Change 3045387 on 2016/07/11 by Stephan.Jiang Stripping off 'b' in the propertyname so that "Is Enabled" is animated properly. #UE-31874 Change 3046093 on 2016/07/12 by Nick.Darnell UMG - The Slider now exposes the IsFocusable option from Slate. #jira UE-32960 Change 3046094 on 2016/07/12 by Alexis.Matte #jira UE-32807 scene re-import blueprint hierarchy kept some part of old blueprint component value. Change 3046104 on 2016/07/12 by Stephan.Jiang typo "Syc" causing the "Sync" button doesn't show Slateicon #UE-31409 Change 3046142 on 2016/07/12 by Nick.Darnell Orion - Upgrading more code to use the new input mode functions and not the deprecated ones. Change 3046165 on 2016/07/12 by Nick.Darnell UMG - Fixing a crash on the widget component if the render target is null when reapplied through widget component data. #jira UE-32844 Change 3046255 on 2016/07/12 by Nick.Darnell UT - More build warning fixes for the new Input Mode methods. Change 3046604 on 2016/07/12 by Richard.Hinckley Adding a template file and code to support creating a UInterface directly from the New C++ Class wizard. Change 3047071 on 2016/07/12 by Matt.Kuhlenschmidt Better way of summoning the widget reflector from the console Change 3047842 on 2016/07/13 by Matt.Kuhlenschmidt Mark Subdivision surface setting as advanced since it is experimental and definitely for advanced users only Change 3048754 on 2016/07/13 by Trung.Le #jira UE-32159 Automatically regain focus after user gets mouse control during PIE session so we can continue process PIE keybinding commands Change 3048756 on 2016/07/13 by Trung.Le Removed default toggle pause/play keybinding from BaseInput.ini, instead we should use the action defined in DebuggerCommands that is customizable Change 3048865 on 2016/07/13 by Trung.Le #jira UE-32159 SGlobalPlayWorldActions widget shouldn't clear out active widget pointer when it's being handled properly Change 3048892 on 2016/07/13 by Nick.Darnell UMG - Fixing a problem with the interaction component, it now does some basic intelligent ignoring of anything it's attached to - excluding widget components. So it's easier to attach it to things that might be inside of a say a player collision capsule. Also removing the 'Max Interaction Distance' from the widget component as that is no longer the arbitor of interaction distance. #jira UE-33250 Change 3049096 on 2016/07/13 by Trung.Le Wrap SGlobalPlayActions around ViewportWidget instead of making it a child of ViewportWidget. This was causing PIE to stop working when there are other UMG in game. #jira UE-33259 Change 3049177 on 2016/07/13 by Stephan.Jiang Fixing the "No Animation Selected" tag shows up after switching back from Graph to Designer. #UE-33016 Change 3049726 on 2016/07/14 by Stephan.Jiang Adding icons for terrain mirror tool #UE-20588 Change 3049957 on 2016/07/14 by Nick.Darnell Slate - Fixing a small bug in the virtual user function - was preventing getting the same virtual user multiple times if it had already been created. Adding an option to the widget component to control the focusabilty of the underlying slate window that's created to host the widget content. Adding an option to the widget interaction component to control if it should be simulating mouse input at all - use this to effectively disable hit testing, and changing hover states and the like. Change 3049994 on 2016/07/14 by Stephan.Jiang Set viewed animtion to current animtion after switching from Graph to Designer (This is for "No Animation Selected" showing up when switching) #UE-33016 Change 3050194 on 2016/07/14 by Stephan.Jiang Added ability to replace the widget the track is currently bound to Also includes changes in WidgetBlueprintEditor to send delegate to AnimationtabSummoner when switching from Graph to Designer #UE-31809 [CL 3050870 by Matt Kuhlenschmidt in Main branch]
2016-07-14 19:07:16 -04:00
bSelectionHasSceneComponent = true;
break;
}
}
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3050373) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2973846 on 2016/05/11 by Jamie.Dale Exposed FConfigValue::ExpandValue and added FConfigValue::CollapseValue These are both static and can be used to expand or collapse the macros used in our config files (mostly when dealing with paths), in code that has to deal with the config system, but isn't internal to the config system (mostly things that deal with default configs outside of UObjects). The old non-static version of FConfigValue::ExpandValue is now FConfigValue::ExpandValueInternal, which just calls FConfigValue::ExpandValue on SavedValue and ExpandedValue. This also changes some code that was using FString.Replace to use FString.ReplaceInline. This reduces allocations, and also allows us to avoid another string comparison to see whether the strings are identical (as ReplaceInline returns the number of replacements that were made). Change 2973847 on 2016/05/11 by Jamie.Dale Changing the loading phase in the localization dashboard now writes to the default config #jira UE-30482 Change 2973866 on 2016/05/11 by Jamie.Dale Deprecated some functions that were taking an unused position. These unused parameters caused confusion and lead to UE-30276. The old versions have been deprecated, and new versions without those parameters have been added. Existing code has been updated to call the non-deprecated version. - FViewportFrame::ResizeFrame - FSceneViewport::ResizeFrame - FSceneViewport::ResizeViewport Change 2974505 on 2016/05/11 by Nick.Darnell PR #2309: Added Combobox styling (Contributed by Chris528) Change 2975241 on 2016/05/12 by Richard.TalbotWatkin Made sRGB Preview the default in the Color Picker. Change 2975390 on 2016/05/12 by Jamie.Dale Made sure that en-US-POSIX is in our list of available cultures Some people use machine tags as their native text, so they need an invariant machine like culture to use as their native culture. en-US-POSIX is perfect for this. Change 2975411 on 2016/05/12 by Jamie.Dale PR #2237: Fixed formatting of Error_TooManyMaterials message (Contributed by pfranz) Change 2975559 on 2016/05/12 by Jamie.Dale Dialogue Wave VO direction can now be localized This is gathered as editor-only data. #jira UE-28715 Change 2975710 on 2016/05/12 by Jamie.Dale Implemented UObject::IsLocalizedResource to test whether the object belongs to a localized package Change 2975728 on 2016/05/12 by Jamie.Dale Exported dialogue scripts now include a column that says whether they have a localized recording of that line of dialogue #jira UETOOL-794 Change 2975763 on 2016/05/12 by Jamie.Dale We no longer warn if asked to check out a UNC path when running the GatherText commandlets #jira UE-25833 Change 2975766 on 2016/05/12 by Jamie.Dale Resolved some loc key conflicts #jira UE-25833 Change 2975774 on 2016/05/12 by Jamie.Dale PO files now only contain a single entry in the case of a native translation being exported They used to contain the original entry, as well as an entry for the native translation, however the original entry would never be used. This change also cleans up some directory walking code that was looking for archive files, and replaces it with code to load the specific archive file. Change 2975776 on 2016/05/12 by Jamie.Dale Downgraded a PO file import warning that isn't really an issue #jira UE-25833 Change 2976675 on 2016/05/13 by Jamie.Dale Fixed some more fallout from changes to use the window position when changing the game viewport mode - FSceneViewport::ResizeFrame: - Fixed the HMD monitor info setting the wrong variables. - Fixed SetWindowMode and ResizeViewport potentially being passed two different modes. - We now only move the window if we need to (this avoids issues with WindowedFullscreen window positioning). - FWindowsWindow::MoveWindowTo: - Now treats the screen space position it's given as relative to the top-left of the window, rather than the top-left of the windows' client area. - FWindowsApplication: - WM_MOVE was passing a screen space position relative to the top-left of the windows' client area, rather than its window area like Slate expected. #jira UE-30276 #jira UE-30677 Change 2976804 on 2016/05/13 by Jamie.Dale Slight optimization to FICUInternationalization::FindOrMakeCulture to avoid hitting the filesystem until we know we need to Change 2976967 on 2016/05/13 by Alexis.Matte #jira UE-30687 Cannot import a skeletal mesh scale to zero Change 2977042 on 2016/05/13 by Alexis.Matte #jira UE-29952 log a warning if fbx exceed the maximum number of LOD. #2326 Github PR #code review matt.kuhlenschmidt Change 2977074 on 2016/05/13 by Jamie.Dale Follow up to CL# 2976804 to avoid a potential change in behavior Change 2977076 on 2016/05/13 by Jamie.Dale Some tidy up and optimization to SCulturePicker Change 2977327 on 2016/05/13 by Alex.Delesky Now deleting the Redirector package on Redirector Fix Up rather than simply removing it from the Content Browser. #jira UE-30423 Change 2977499 on 2016/05/13 by Alexis.Matte #jira UE-29475 Enable UStruct child property to be favorite Change 2978415 on 2016/05/16 by Jamie.Dale We now pre-load all the culture data when starting the editor to avoid a UI hitch later Change 2978517 on 2016/05/16 by Alex.Delesky #jira UE-29406 Creating a static mesh from a geometry brush and then attempting to reimport the mesh will no longer crash the editor. Change 2978518 on 2016/05/16 by Alex.Delesky #jira UE-28210 The FBX Importer no longer runs cleanup upon failing to import an FBX file and won't crash the engine the next time an FBX is imported within the same editor session. Change 2978556 on 2016/05/16 by Alexis.Matte Fbx tests automation #jira UE-29635 Change 2978797 on 2016/05/16 by Alexis.Matte #jira UE-30774 - prevent baking the pivot if we transform the vertex with the absolute transform. - Also make sure we set the identity for the Max puivot in case we dont bake the pivot and we dont transform the vertex with the absolute transform. #code review matt.kuhlenschmidt Change 2978965 on 2016/05/16 by Alexis.Matte FBX importer, fix the socket rotation. #jira UE-30094 Change 2980613 on 2016/05/17 by Jamie.Dale Moved the XLOC UAT localization provider to be publicly accessible Change 2980614 on 2016/05/17 by Jamie.Dale Reference update for project move Change 2980633 on 2016/05/17 by Jamie.Dale Made the culture mapping used between XLOC and UE4 configurable on a per-project basis You can now override GetEpicCultureToXLocLanguageId in your custom localization provider in order to change the default mappings. Change 2980836 on 2016/05/17 by Jamie.Dale Added -LocalizationSteps flag to allow you to only run a subset of the UAT "Localise" command You can pass any of the following steps: Download, Gather, Import, Export, Compile, GenerateReports, Upload Change 2982700 on 2016/05/18 by Jamie.Dale Fixed the loc package gather potentially adding the same source location multiple times Change 2983906 on 2016/05/19 by Jamie.Dale Slight cleanup of the way we register localization gatherer callbacks Change 2984356 on 2016/05/19 by Chris.Wood Removed temporary analytics API change needed for earlier hot fix [UE-31005] - Undo temp Hardware Survey API change from 4.10 - CL 2782817 Change 2986679 on 2016/05/23 by Alex.Delesky #jira UE-24747 - Importing FBX files that contain meshes that do not have non-degenerate triangles will no longer crash the editor on import, and will warn the user that the meshes are bad. Change 2986798 on 2016/05/23 by Alex.Delesky #jira UE-31136 - Chord Input fields will no longer display the blinking edit cursor if they do not have focus. Change 2987106 on 2016/05/23 by Alexis.Matte Fbx importer, fail import must not create a package in the content browser #jira UE-31154 Change 2987563 on 2016/05/23 by Alex.Delesky #jira UE-30988 - Changed the default window mode when launching a game from the .uproject file to Windowed Change 2987564 on 2016/05/23 by Alex.Delesky #jira UE-28856 - Fixed a crash that could potentially occur when starting up PIE while dragging objects like widgets in the editor. Change 2988321 on 2016/05/24 by Jamie.Dale Added a way to backup and restore the selection state of a level (its actors and components) in a way that can be reapplied even if the level is reloaded Change 2988708 on 2016/05/24 by Jamie.Dale Fix for crash when missing the fallback/last resort font Change 2988782 on 2016/05/24 by Jamie.Dale Added the ability to version each localized string individually when loaded into the localization manager The single 32-bit global history has now been replaced with two 16-bit histories. One is global, and is updated whenever the culture is changed (or a LocRes file is loaded), and the other is local to each string, and is updated if the display string is changed outside of a culture update (to handle cases where the display string is changed, but the key is preserved). Changing the global history will reset all local histories. Because of the change from an int32 to a uint16, 0, rather than INDEX_NONE, is now considered the "unset" value for a history. Change 2988856 on 2016/05/24 by Jamie.Dale Added a way to get the package(s) of the object(s) being edited by a property panel Typically the package is just the outermost of the object being edited, however there are some cases where this may not be the case: - UMG widgets edit a transient copy of the real data, so we use the SetObjectPackageOverrides to override the package these objects should use to be the real asset package. - Structs (UDS, Data Table, etc) don't have a way to get to their package, so you have to specify it on their FStructOnScope instance (see FStructOnScope::GetPackage and FStructOnScope::SetPackage). This has been hooked up for the UDS and Data Table editors. Change 2988955 on 2016/05/24 by Alex.Delesky #jira UE-30645 - Adding in support for splash images to support .png and .jpg files. In general, this adds multi-extension support for external image references and external image picker modules. Git Request #2376 Change 2989418 on 2016/05/25 by Jamie.Dale Added a way to count text references within a package that match the given search criteria This can be used to detect whether a localization ID is unique within its package. The following search modes are available: - MatchId: Detect a reference if it matches the given ID (ignoring the source text) - MatchSource: Detect a reference if it matches the given ID and source string - MismatchSource: Detect a reference if it matches the given ID but has a different source string Change 2989436 on 2016/05/25 by Jamie.Dale Added "root-level" meta-data (meta-data associated with the package rather than an object within it) Change 2989471 on 2016/05/25 by Alexis.Matte Fbx scene importer, fix naming clash when creating package we now also look in memory to find existing package not just on disk Change 2989639 on 2016/05/25 by Jamie.Dale Added static version of FName::IsValidXName This allows you to verify name-like strings without having to convert them to an FName (and thus add them to the name table) Change 2989716 on 2016/05/25 by Alex.Delesky #jira UE-30828 - The Standalone Session Frontend will now render the names of automation tests correctly instead of as solid white blocks. Change 2990100 on 2016/05/25 by Alexis.Matte Fix crash when reimporting a mesh that originaly exceed the maximum number of LOD #jira UE-30907 Change 2991442 on 2016/05/26 by Bob.Tellez #UE4 Fix components in world not rendering when saved without a physics scene. Change 2991736 on 2016/05/26 by Bob.Tellez #UE4 Fix duplicated worlds not being initialized when inactive. Re-enabled duplication of worlds in the content browser. Change 2991942 on 2016/05/26 by Alex.Delesky #jira UE-31012 - Setting a Decimal Grid Interval value to 0 and using it will no longer crash the editor or cause an editor crash on startup. Change 2991994 on 2016/05/26 by Alex.Delesky #jira UE-31177 - Attempting to export an entire level as an object file and choosing to export all materials as images will no longer crash the editor. Change 2994037 on 2016/05/30 by Alexis.Matte Add Fbx Automation Tests - static mesh import reimport (sections and materials) - skeletal mesh import and reimport (sections and materials also bone position) - static/skeletal mesh LODs (import, add, reimport) - rigid mesh (import, reimport) Change 2994253 on 2016/05/31 by Alexis.Matte Mikkt crash when computing the normals if there is more vertex then the number of wedge #jira UE-29143 Change 2994260 on 2016/05/31 by Alexis.Matte Make sure we cannot modify fbx test plan when json file is read only Change 2994431 on 2016/05/31 by Alex.Delesky #jira UE-21900 - The scale widget should now render all axes when using an orthographic camera. Change 2994432 on 2016/05/31 by Alex.Delesky #jira UE-31328 - New objects dragged into the scene will now comply with the Surface Snapping option in the viewport, and will not use the Surface Offset if snapping is disabled. Change 2994537 on 2016/05/31 by Richard.TalbotWatkin Fixed potential crash in the Mesh Paint tool when non-transactable actors are in the SelectedActors list following a Redo. #jira UE-31172 - Crash related to Vertex Painting - MeshPaint!CastChecked<AActor,UObject>() Change 2994983 on 2016/05/31 by Richard.TalbotWatkin Added some guard code to protect against a crash when editing geometry. Repro currently unknown, ensure was added in order to try to get more information. #jira UE-30820 - UT EDITOR: CRASH: Crash in Public Release CL#2973693 Change 2995022 on 2016/05/31 by Jamie.Dale PR #2428: Added missing END_OPTIMIZATION macro to SOutputLog (Contributed by MatzeOGH) Change 2995027 on 2016/05/31 by Jamie.Dale PR #2409: fixed a small typo in GraphEditor.h (Contributed by MatzeOGH) Change 2995963 on 2016/06/01 by Alex.Delesky #jira UE-31317 - The transform gizmo will no longer block the placement of a material onto a mesh. Change 2997002 on 2016/06/01 by Cody.Albert Fix to ensure ActiveTopLevelWindow is properly set after a window is destroyed #jira UE-31448 Change 2998013 on 2016/06/02 by Alexis.Matte Prevent static mesh materials array to grow when using the reset button in the staticmesh editor. #jira UE-12931 Change 2998370 on 2016/06/02 by Alexis.Matte Fbx Automation, add some import LOD test in case the options are not ok Change 2999709 on 2016/06/03 by Jamie.Dale Fixed some issues with gathering text from BP bytecode Bytecode in Blueprints is very volatile, and can only be safely gathered after it's been compiled (which is not guaranteed to have happened by the time we save the package). This change avoids caching any assets that contain scripts (non-data-only Blueprints), and instead will always load them to perform a gather (which will ensure the Blueprint bytecode is up-to-date due to compile-on-load). Change 2999755 on 2016/06/03 by Richard.TalbotWatkin Fixes to Spline Mesh collision generation. - Fixed a serious issue with DDC ID generation, in that the static mesh wasn't forming a part of the key, hence any two spline meshes with identical properties but different meshes would yield the same cache entry. - Fixed how different collision boxes are transformed when rebuilding physics meshes. Convex collision transforms are now correctly taken into account, and spherical and capsule collision now gets correctly translated when a scale is applied to the start or end of the spline mesh. - Optimized physics rebuilding. A new BodySetup object is now only created when needed, otherwise it is reused. #jira UE-31361 - Splines handle box collision and collision from other shapes differently Change 2999973 on 2016/06/03 by Jamie.Dale We now skip bulk data when detecting text references #jira UE-31596 Change 3000159 on 2016/06/03 by Alex.Delesky #jira UE-30244 - Added a safeguard against a potential crash when editing BSP brushes before placing another BSP brush into the level. Change 3001814 on 2016/06/06 by Alexis.Matte Make sure the staticmesh Materials list dont grow when we reimport or override a LOD other then the base mesh. Add a fbx test to make sure the problem is flag by automation test #jira UE-1394 Change 3001820 on 2016/06/06 by Alex.Delesky #jira UE-19079 - Widget Blueprints should no longer crash when dragging widgets from one blueprint to a second and then compiling the second blueprint. Change 3001915 on 2016/06/06 by Alexis.Matte Make sure we check attribute type before checking attribute unique ID in case of unique id clash. #jira UE-31214 Change 3002026 on 2016/06/06 by Alexis.Matte Importing morph target should not import textures like materials since the base mesh already import thoses. UDN Question: https://udn.unrealengine.com/questions/293973/does-importing-an-fbx-with-morph-targets-cause-a-m.html Change 3002623 on 2016/06/06 by Jamie.Dale Fixing more loc conflicts Change 3002883 on 2016/06/06 by Jamie.Dale Adding retry when dealing with OneSky This is attempting to compensate for some timeouts with OneSky, which were also noticed when testing UE-31413 Change 3003004 on 2016/06/06 by Trung.Le #jira UE-13101 - Make "Description" field for a BluePrint Function multiline Change 3003859 on 2016/06/07 by Alexis.Matte #jira UE-30436 Refresh the property editor when a array element is added, remove, insert, delete and the property is favorite Change 3004132 on 2016/06/07 by Jamie.Dale Fixed a hash conflict that could occur when both the case-sensitive and case-insensitive FName hashes were identical This resulted in the case-preserving FName being added to the head of the linked list for the bucket, which caused any subsequent name lookups to return that name index for the comparison index (since it matched an insensitive string comparison), rather than the name index of the first case-variant of that name that was added to the bucket. This change has new entries be inserted at the tail of the list, which ensures that enumeration for a case-insensitive name will always find the same entry in the bucket (the first one that was ever added) and will continue to compare correctly. Change 3004286 on 2016/06/07 by Jamie.Dale Ensured that assignments that publish new names to the bucket are atomic Change 3004310 on 2016/06/07 by Jamie.Dale Ensured FName internal hashes are returned as uint16 Change 3004381 on 2016/06/07 by Jamie.Dale FAsyncPackage now creates the meta-data before processing the remaining exports This matches the behavior of FLinkerLoad::LoadAllObjects, as other objects may depend on the meta-data being loaded before them. Change 3004765 on 2016/06/07 by Alex.Delesky #jira UE-31498 - Material thumbnails will now render the full sphere rather than an extreme close-up of the material. Change 3005754 on 2016/06/08 by Trung.Le Allow whitespace for meta class names #jira UE-31668 Change 3005755 on 2016/06/08 by Stephan.Jiang UMGSequencePlayer implements GetPlaybackContext() and return UserWidget->GetWorld() if it's valid #jira UE-31299 Change 3006512 on 2016/06/08 by Alex.Delesky #jira UE-31572 - The "All Classes" tab in the Modes panel will now refresh when a placeable asset is created, renamed, or deleted without needed to navigate away from the tab first. Change 3006760 on 2016/06/08 by Jamie.Dale Added support for stable localization keys This feature adds support for preserving the existing key of an FText property when editing the source string, providing that it is the only reference to that string within the package. A side effect of this is that you're now able to specify custom keys for FText properties since we can now verify that the custom key won't cause an identity conflict. In order to limit the search domain for uniqueness to a single package, we've added the concept of a "localization namespace" to packages (stored in the meta-data). Each package is given a unique namespace, which is appended to the user-defined namespace of the text when it is modified, saved, or duplicated. This package namespace ensures that the same user-defined namespace and key may be used in different packages without causing an identity conflict. In order to access the package namespace within the Core code that hosts FText (which doesn't know about UPackage), FArchive now provides a GetLocalizationNamespace function to access the package namespace within the Core code, and a SetLocalizationNamespace function for CoreUObject and Engine code to pass down the package namespace from their packages. If you have an archive that handles duplicating objects into a different package, or duplicating packages themselves, then you'll want to make sure it's setting the package namespace correctly. FObjectReader and FObjectWriter have been updated to do this, and serve as a good example. FDuplicateDataReader (used by StaticDuplicateObject), and FCopyPropertiesArchiveObjectWriter (used when compiling Blueprints) have also been updated to set the package namespace, as they both handle copying objects between packages. TextNamespaceUtil provides a suite of functions for getting at (or setting) the namespace for a package. Keys will start to stabilize naturally over time once this feature is enabled, however the StabilizeLocalizationKeys commandlet may also be used to stabilize all the keys for a game at once. Running it for a game under source control would look something like this: MyGame -run=StabilizeLocalizationKeys -IncludeGame -NativeCulture=en -EnableSCC This commandlet also updates your localization archives to use the new text identities, however you'll still need to run a localization gather and localization compile before the updated translations will be available for your game. Note: This feature is currently disabled via the USE_STABLE_LOCALIZATION_KEYS define. It will be enabled at a later date. #jira UETOOL-796 Change 3007501 on 2016/06/09 by Trung.Le #jira UE-31722 Fix MaterialFunctions crash when editing text in Libraries Category Text field. Solution: Removed PredEdit and PostEdit from IEditableTextProperty, its derived types and other code that was calling them. The new SetText method already calls NotifyPreChange and NotifyPostChange to properly create/destroy ScopedTransaction. Change 3007524 on 2016/06/09 by Jamie.Dale Added some additional checks to avoid re-keying text when duplicating for PIE Change 3007564 on 2016/06/09 by Jamie.Dale PR #2401: DataTable import/export improvements (Contributed by bozaro) Change 3007653 on 2016/06/09 by Jamie.Dale PR #2459: Generate JSON for nested structs in DataTable rows (Contributed by jorgenpt) Change 3008019 on 2016/06/09 by Jamie.Dale Updated structs to export as JSON when displaying them in the Data Table editor This produces much cleaner results than using the text export method (which will use the internal names for user defined structs). This also cleans up the FDataTableExporterCSV and FDataTableExporterJSON APIs so that you don't need to pass in a UDataTable if you're not going to use it. #jira UE-29958 Change 3008052 on 2016/06/09 by Jamie.Dale Fixed bug importing an array inside a JSON Data Table This was noticed when testing a GitHub PR, but the JSON importer for a Data Table was appending the new data to the array rather than replacing it. It now clears the array prior to importing. Change 3008875 on 2016/06/10 by Jamie.Dale PR #2406: Git plugin: Fix for Git diff not working in UE 4.12 (and master) (Contributed by SRombauts) Change 3008879 on 2016/06/10 by Jamie.Dale PR #2484: Git Plugin: fix the Submit To Source Control menu broken by new "migrate" support in 4.12 (and master) (Contributed by SRombauts) Change 3008990 on 2016/06/10 by Alex.Delesky #jira UE-15699 - Submitting to source control via the editor should now check for current asset status before prompting the user to submit their changes. This should prevent files that had been previously deleted from being readded to source. Change 3008991 on 2016/06/10 by Alex.Delesky #jira UE-31688 - The Output Log will now automatically anchor to the bottom of the scroll bar when the user scrolls all the way down using the mouse wheel or clicking and dragging the content window. Change 3010856 on 2016/06/13 by Alexis.Matte #jira UE-31713 Fix a serialize issue for skeletal mesh with apex cloth. Change 3011736 on 2016/06/13 by Jamie.Dale Adding missing plurals.res file This is needed to get plural form information from ICU. #jira UETOOL-875 Change 3012387 on 2016/06/14 by Richard.TalbotWatkin Disabled the Paste context menu action if the property is marked as EditConst. #jira UE-27469 - User is able to paste values into a read-only setting Change 3012971 on 2016/06/14 by Stephan.Jiang Editor Preferences->Widget Designer now have two options to toggle the visibilities of widgets created from Engine content folder and Developers folder. By default, visibility for engine content is off and developers is on #jira UE-31657 Change 3013111 on 2016/06/14 by Jamie.Dale Unified the number, percentage, and currency formatting between the ICU and Legacy text implementations Removed all the old legacy number formatting code, and removed the calls to the ICU specific number formatting. Everything is now using FastDecimalFormat as this will allow some optimizations later when formatting numbers in FText::Format. Change 3015438 on 2016/06/15 by Cody.Albert Fixing ScrollBy function to calculate new scroll offset based on the current scroll offset and not the current desired scroll offset (which may not be the same during an animation) #jira UE-32082 Change 3016782 on 2016/06/16 by Richard.TalbotWatkin Corrected ConvexHull2D so that it returns an empty set of indices when passed an empty points array. Change 3016949 on 2016/06/16 by Jamie.Dale Added FastDecimalFormat overloads to write into an existing string This helps avoid an extra allocation if you already have a pre-sized string that you're writing the number to (as is the case in FText::Format). Change 3016952 on 2016/06/16 by Jamie.Dale Changed an Add for an Emplace to avoid moving a temporary Change 3016954 on 2016/06/16 by Jamie.Dale Updated some FText code to avoid creating temporary objects just to move data through a hierarchy There was some code in FText and its internal types that were using pass-by-value as a marshaller to move data through a hierarchy. This resulted in temporary objects being created and destroyed to facilitate the movement of data. This change has all the internal FText code (private FText constructors, internal text data, and internal text history) take its movable types as an r-value reference. This avoids the temporary objects, but also makes it impossible to accidentally copy a construction argument when you meant to move it (you can still copy, but the copy must be explicit). In addition to this, FText::FromString and FText::AsCultureInvariant now have two overloads, const FString& and FString&&, to avoid them creating a temporary when you're invoking a move. FText::ChangeKey now takes its parameters by const& as their data wasn't being moved further down the chain, so the by-value copy was wasteful. Change 3019021 on 2016/06/19 by Richard.TalbotWatkin When deleting a brush, ensure geometry is rebuilt before updating the details panel according to the selection change, so that the old Surface Properties don't continue to appear. #jira UE-8966 - Surface Properties of a BSP remain in the details panel after the BSP is deleted Change 3019022 on 2016/06/19 by Richard.TalbotWatkin Fixed issue where the Surface Properties category in the Details panel doesn't appear after selecting a surface on a Brush which has just been placed. #jira UE-31916 - Selecting an edge of BSP geometry then a face does not show Surface Properties while in Place mode #jira UE-31915 - Selecting BSP face does not show Surface Properties in Details Change 3019025 on 2016/06/19 by Richard.TalbotWatkin Fixed issue which was stopping 'Cancel' from correctly returning a 'Cancelled' result during P4 asynchronous ops. #jira UE-28595 - Submit to Source Control: "Checking for assets to check in..." cancel button does not cancel operation, editor becomes unresponsive Change 3020050 on 2016/06/20 by Cody.Albert Changed window centering logic to correctly work when monitor 1 isn't set to primary monitor. #jira UE-32173 Change 3021145 on 2016/06/21 by Jamie.Dale Added support for text format argument modifiers These can be used to mutate a format argument before appending it to the resultant formatted string, and are applied to the preceding argument via a pipe, eg) "{Arg}|plural(one=is,other=are)". We provide a few of these by default: - |plural(key=val,...) - |ordinal(key=val,...) Provides support for cardinal and ordinal plural forms, where key may be any of "one", "two", "few", "many", or "other", and val may be any optionally quoted string. - |gender(masculine,feminine,[neuter]) Provides support for gender forms, where the 0th item is the masculine version, the 1st item is the feminine version, and the 2nd item is an optional neuter version. The values may be any optionally quoted string. - |hpp(consonant,vowel) Provides support for Hangul post-positions, where the 0th item is the consonant suffix, and the 1st item is the verb suffix. The values may be any optionally quoted string. Major changes: - Exposed the ICU plural form handling via FCulture::GetPluralForm. - Updated the FText formatting code to use an expression evaluator (to support the more complex expressions needed for the argument modifiers). - Added FTextFormat to store a pre-compiled format expression. Re-using one of these if you're performing a lot of formats with the same FText will increase your performance (as around half of the FText::Format cost can be compilation, via an implicit construction of FTextFormat). - Updated the FText::Format(...) family of functions to take their format string as FTextFormat, and take their arguments as FFormatArgumentValue. This allows us access to the real numeric types within the format code, but doesn't break the existing API as these types are implicitly constructible from the old parameters (FText). - Converted text history to store their format string as an FTextFormat in-case they need to perform a re-format (this is still saved as an FText). Breaking changes: - The rules for the escape token have been simplified, and there is an incredibly unlikely chance that this may affect some text: - The ` character will now only escape a valid character (producing only the escaped character in the final string), or it will be ignored and inserted as a literal character, eg) "`{F" -> "{F", and "`F" -> "`F". - Previously it would also remove the escape character when it followed { or }, eg) "{`" -> "{" and "}`" -> "}", rather than "{`" and "}`" like you might expect. It would also have previously removed a ` at the end of a string due to a parser bug. Change 3021156 on 2016/06/21 by Jamie.Dale Updated LinuxToolChain to use the same output delegate for all of its actions when cross-compiling This avoids the compile and link actions being split into different batches. Change 3021280 on 2016/06/21 by Richard.TalbotWatkin Fixed bug in parsing LOD in UStaticMeshComponent::ImportCustomProperties (thanks to Aurelien Cordonnier). #jira UE-31937 - UDN code submission for UStaticMeshComponent::ImportCustomProperties parsing bug Change 3022949 on 2016/06/22 by Alex.Delesky #jira UE-31944 - Upgrading Subversion binaries to version 1.9.4. Change 3023092 on 2016/06/22 by Jamie.Dale Downgraded some checks to ensures and added an early out #jira UE-32009 Change 3023154 on 2016/06/22 by Jamie.Dale Ported over CL# 3018771 to the UE automation This fixes an issue where a downloaded PO file smaller than the one already on disk leaving a mix of both files on disk (rather than the existing file on disk being truncated). Change 3023579 on 2016/06/22 by Jamie.Dale Expanded the Blueprint FormatText node to support numeric and gender types These are needed to correctly support the new plural and gender forms that can be used in format strings, as these require actual numeric/enum data to be passed into the format arguments, rather than pre-formatted text. Major changes: - The FormatText node for Blueprints now uses PC_Wildcard as its pin type for format arguments instead of PC_Text. - Any existing literal text argument data in the pin is hoisted out into a "Make Literal Text" node which is then connected to the pin. - FFormatArgumentData has been updated to be variant on the data needed by Blueprints. It's now a less comprehensive and non-unioned version of FFormatArgumentValue. - The version of FText::Format taking FFormatArgumentData has been deprecated as its usage was internal to Blueprints and we have much better ways to format text in C++. Any existing C++ using that (of which we have none internally) should be updated to use FFormatArgumentValue instead. Change 3023915 on 2016/06/22 by Jamie.Dale Cleaned up some of the UK2Node_FormatText expansion code to avoid unchecked literals Change 3024813 on 2016/06/23 by Jamie.Dale Renamed FContext to FManifestContext to better reflect its purpose and avoid naming conflicts with other code Change 3024852 on 2016/06/23 by Nick.Darnell FBX - Updating automation tests with the changes to chunk and chunk index removal and them being merged with sections. Change 3024994 on 2016/06/23 by Nick.Darnell UMG - Removing the DesignerWidgetTree, instead going to directly inject the widget tree into the partially constructed UUserWidget during design time, when refreshing the preview. This avoids doing something a little dangerous and sketchy like updating the living class instance with a new designer tree that all new instances will begin biasing using. Also making the preview widget explictly non-transactional as there's no reason to track changes to the preview, all the changes that need to be tracked should be on the template widget. This should fix the crash in the widget designer when you Undo just after compiling the widget blueprint. #jira UE-31155 Change 3025194 on 2016/06/23 by Alex.Delesky #jira UE-31155 - Compilation error fix. Change 3025255 on 2016/06/23 by Alex.Delesky #jira UE-21900 - Redoing changes done in CL 2994431 since it got stomped. Reinstates the grabber handles and ensures consistent scaling on the scale widget in orthographic viewports. Change 3025460 on 2016/06/23 by Cody.Albert Fixed issue where widget components would misalign when aspect ratio was being constrained #jira UE-29637 Change 3025508 on 2016/06/23 by Cody.Albert Adding support for adjusting animation playback speed #jira UE-32222 Change 3026444 on 2016/06/24 by Jamie.Dale Fixed crash caused by bad access of shared this when closing an active IME context This was only needed to get the owner window, which we now cache when the IME context is created. #jira UE-32240 Change 3028358 on 2016/06/27 by Jamie.Dale Fixed IMEs not working due to no window being cached #jira UE-32240 Change 3028464 on 2016/06/27 by Alex.Delesky #jira UE-31873 - A single "Files need check-out" notification will now be shown instead of multiple notifications if multiple files need to be checked out, and updated as more files need to be checked out. Change 3028524 on 2016/06/27 by Chris.Wood Switched off uploads to legacy Crash Report Receiver. [UE-31252] - Switch off deprecated CRR upload in Crash Report Client Also added CRC version string, added to crash context from CRC config Change 3028840 on 2016/06/27 by Alexis.Matte #jira UE-32306 replace material bad name character by an underscore when doing a scen import. Change 3028924 on 2016/06/27 by Alexis.Matte #jira UE-32125 Make sure we can add a plan when a fbx file is drop in the fbx automation test folder Change 3029044 on 2016/06/27 by Alex.Delesky #jira UE-31944 - Updating SVN binaries for Mac to 1.9.4 Change 3029276 on 2016/06/27 by Alex.Delesky #jira UE-31531 - A user can now select the base class when creating a new physical material. PR #2462: added dialog, which enables picking base class for asset (Contributed by iniside) Change 3029459 on 2016/06/27 by Alexis.Matte #jira UE-32354 Make sure we set all blueprint component to the correct mobility set in the scene import options. Change 3030577 on 2016/06/28 by Nick.Darnell PR #2531: Git plugin: fix wrong status icons (Contributed by SRombauts) Change 3030587 on 2016/06/28 by Alexis.Matte #jira UE-32251 add missing body setup variables when restoring the body setup value after a re-import of a staticmesh Change 3030946 on 2016/06/28 by Alexis.Matte #jira UE-32515 prevent crash when re-import staticmesh userdata Change 3031115 on 2016/06/28 by Jamie.Dale The DDC builder now gives the shader compile worker a chance to catch up when it pauses to run a GC pass This prevents an issue where the shader backlog could cause massive amounts of memory to be consumed. Change 3031146 on 2016/06/28 by Jamie.Dale Fixed errors when building with USE_STABLE_LOCALIZATION_KEYS enabled caused by UEdGraphPin no longer being a UObject Change 3031357 on 2016/06/28 by Nick.Darnell PR #2431: Add plugin support to the editor class wizard. (Contributed by Koderz) Change 3031515 on 2016/06/28 by Jamie.Dale Fixed game targets not being able to depend on other game targets Change 3031520 on 2016/06/28 by Jamie.Dale Localization compilation now specifies an ArchiveName to use Change 3031671 on 2016/06/28 by Nick.Darnell Editor - Checking to see if a weak variable is valid before using it in the editor build window. Change 3032013 on 2016/06/28 by Matt.Kuhlenschmidt Added ability to invert the Y axis in editor viewports for mouse look and orbit Change 3032495 on 2016/06/29 by Jamie.Dale Fixed some measuring issues with bi-directional text within a right-flowed document There were three main issues: 1) Measuring blocks was measuring visual glyphs rather than logical glyphs (this caused bad measures/wrapping and overlapped rendering). 2) The text layout would consider blocks visually contiguous without making sure the block flow direction matched the line flow direction (this caused bad highlights). 3) The text layout would fail to compensate for a non-contiguous block that had a flow direction different to the line flow direction (it was hard-coded for RTL in LTR, so broke for LTR in RTL - this caused bad highlights). #jira UE-32526 Change 3032533 on 2016/06/29 by Nick.Darnell UMG - The widget component now extends from UMeshComponent, it can have a custom material applied to it, in order to achieve cooler effects - like ignoring the depth buffer. Users who use this option are encouraged to start with the widget components default material and work from there. The widget component now offers the ability to automatically size the render target to be the desired size of the widget - note that this can go real bad if your widget wants to be really big. Change 3032855 on 2016/06/29 by Alexis.Matte #jira UE-32508 Remove the cachewindow from the FTextInputMethodContext constructor since it will be cache only when the IME is activated #test please re-test also UE-32240 Change 3033145 on 2016/06/29 by Alex.Delesky #jira UE-32239 - The PropertyEditorModule will no longer cause a crash on editor shutdown if a SDetailsView widget tries to force refresh itself when the Slate application is no longer initialized. Change 3033147 on 2016/06/29 by Alex.Delesky #jira UE-32326 - Clicking on the "Install {compiler}" button when trying to create a new code class or code project will now not crash the engine if it fails to open the installation file for write, nor will it create multiple notifications if the button is pressed repeatedly. This also addresses a potential issue with static initialization order when it comes to adding TickableEditorObjects to its corresponding array, since it was wholly possible for a statically initialized TickableEditorObject to initialize itself and add itself to the tickable objects arra before the tickable objects array was initialized, causing that object to not get ticked at runtime and causing a crash when the editor was closed. Change 3033162 on 2016/06/29 by Alex.Delesky #jira UE-31827 - Undo/redo now works in the Material function editor. Change 3033391 on 2016/06/29 by Matt.Kuhlenschmidt Fix post process settings blendable picker not being readable in the details panel Change 3033498 on 2016/06/29 by Matt.Kuhlenschmidt Fixed huge number of redundant calls to CanEditChange and DiffersFromDefault that were causing massive performance loss when thousands of objects are selected. CanEditChange and DiffersFromDefault are now cached each time a property value changes. Fixed redundant calls for getting visualizers for each selected object. This is now cached on selection Change 3033504 on 2016/06/29 by Matt.Kuhlenschmidt Fix Mass customization on the body instance not working with undo/redo or reset to default Change 3034357 on 2016/06/30 by Alex.Delesky #jira UE-31184 - Renamed the multiple collision components in the cascade particle system to more accurately reflect what they represent. Change 3035915 on 2016/07/01 by Richard.TalbotWatkin Fix to SListPanel so that those with horizontal arrangement (i.e. from STileView) use the number of desired items instead of the number of actual items in order to calculate the desired size of the geometry. This fixes the case where an STileView is contained within an SScrollBox. #jira UE-32195 - STileView no longer works correctly when placed inside of a SScrollBox Change 3035951 on 2016/07/01 by Richard.TalbotWatkin Fixed issue when importing a brush, so that the brush is always validated (relinked), whether it be a static or dynamic brush. This is because the process of rebuilding a dynamic brush sets the link indices to signify FBspSurf indices from the UModel instead of FPoly indices (the FPoly::iLink member is overloaded in its meaning). Always forcing a relink correctly sets the linked list of coplanars. #jira UE-32087 - Crash occurs when creating Static Mesh from Trigger Volume Change 3036991 on 2016/07/04 by Alexis.Matte #jira UETOOL-901 Scene importer now support the rigid mesh animation Change 3037037 on 2016/07/04 by Jamie.Dale Fixed regression in editable text box alignment Text was no longer vertically aligned center since SEditableText was converted to use a text layout. This vertical alignment is now handled by the outer SEditableTextBox instead. Change 3037057 on 2016/07/04 by Richard.TalbotWatkin Fixed screenshots when running automation tests so that they are saved locally when a FAutomationWorkerScreenMessage is received. #jira UE-29815 - In-game screenshot isn't working under certain circumstances Change 3037082 on 2016/07/04 by Chris.Wood Added detection of asserts and passing assert flag and crash type string to crash reports. [UE-30592] - Crash Reporter should determine crash type on client and pass string to server Reviewe by Steve with reservations about the static variable for setting asserted state. While not thread-aware, this is probably accurate enough for the purpose of crash reporting, certainly for now. I'm submitting it like this because the work required to add fully thread-aware fix is not necessary at this point. Change 3037095 on 2016/07/04 by Alexis.Matte Fix the bone name when duplicating a socket. Change 3037453 on 2016/07/05 by Stephan.Jiang Adding ability to animate the root wigdet #2 FHierarchyRoot adds the preview widget instead of CDO to selectedobjects in widgetblueprint the properties are then migrated back to the CDO #UE 31810 Change 3037487 on 2016/07/05 by Jamie.Dale Fixed crash caused by stale BP pointer #jira UE-32325 Change 3037488 on 2016/07/05 by Jamie.Dale Fixed a crash that could occur when a class and a folder had the same name Change 3037526 on 2016/07/05 by Jamie.Dale Speculative fix for a potential race condition when shutting down the editor while a "launch" was in progress The launch-thread could potentially queue up a request after the game-thread had requested it cancel, and cleared out any queued tasks. This change has the game-thread wait for the launch-thread to acknowledge its cancellation before continuing with editor shutdown. #jira UE-17688 Change 3037557 on 2016/07/05 by Alex.Delesky #jira UE-32424 - Added a safeguard to ensure that renaming a world that was duplicated from another world would not crash the editor if both worlds' lightmaps and shadowmaps were still active in memory, due to the editor attempting to rename identical textures from different packages to the same location. The actual fix to this issue was performed in an earlier CL, but this should prevent the editor from crashing if the issue returns. Change 3037558 on 2016/07/05 by Alex.Delesky #jira UE-32285 - Importing assets to the Content Browser via drag and drop operations are no longer permitted while the UI file picker dialog is opened. Change 3037559 on 2016/07/05 by Alex.Delesky #jira UE-32075 - The user can no longer attempt to import non-FBX and non-OBJ files when importing into a level. Change 3037593 on 2016/07/05 by Stephan.Jiang GitHub #2549: Add function for setting the playback rate of UMG animations original code shelved in CL 3033449 #UE-32653 Change 3037605 on 2016/07/05 by Jamie.Dale Fixed infinite recursion that could happen when gather loc from an object with a custom callback #jira UE-32670 Change 3037649 on 2016/07/05 by Nick.Darnell PR #2538: [WidgetBlueprintLibrary] GetAllWidgetsOfClass, Added META ~ DeterminesOutputType, DynamicOutputParam, removes the need for extra cast,  Rama (Contributed by EverNewJoy) Change 3037652 on 2016/07/05 by Nick.Darnell Clean - Removing commented out code. Change 3037658 on 2016/07/05 by Matt.Kuhlenschmidt Fix initial hitch when dragging around in a color picker opened from a material expression node. Change 3037679 on 2016/07/05 by Nick.Darnell Engine - Texture2D no longer forces the MIP level to 0 for TextureGroup_UI textures. Change 3037757 on 2016/07/05 by Nick.Darnell PR #2447: WebBrowser widget: Added GetUrl method and OnUrlChanged property (Contributed by nelbok) Change 3037840 on 2016/07/05 by Nick.Darnell UMG - Now allowing for spirtes to be used just like textures and materials on UMG widgets anywhere that takes a brush, can now also take a Sprite. There is now a ISlateTextureAtlasInterface interface that any UObject may now implement if it wishes to integrate with UMG to provide its atlas data in a form Slate can understand. Change 3037924 on 2016/07/05 by Jamie.Dale Re-ordered variable initialization to appease a warning on Mac Change 3037981 on 2016/07/05 by Jamie.Dale Fixed crash where FColorStructCustomization could call SetPerObjectValues with an empty array #jira UE-32639 Change 3038075 on 2016/07/05 by Cody.Albert Removed misleading error message in HandleCECommand #jira 28007 Change 3038231 on 2016/07/05 by Alexis.Matte #jira UE-30694 We set the section collision only if there is an imported collision or a generated one. If there is no collision we do not set the collision flag. Change 3038275 on 2016/07/05 by Alex.Delesky #jira UE-32689 - "Game Gets Mouse Control" will now override the Capture Mouse on Launch setting when launching the game from within a Level Viewport (i.e., within the editor window itself). Change 3039310 on 2016/07/06 by Trung.Le #jira UE-25005 Change PIE Key Bindings - Removed Shift+F1 and Esc from BaseInput.ini - Created new customizable key binding for + Shift+F1: same functionality. + Esc: now will pause the play session and bring back the mouse cursor. Clicking the mouse on the viewport should resume play session. + Shift+Esc: now will stop the play session Change 3039458 on 2016/07/06 by Trung.Le Removed unused code in StaticMeshLight.cpp Change 3039827 on 2016/07/06 by Frank.Fella FString - Fix divide overload path concatenation for empty paths since there are several places in the engine that expect using that doing { path / "" } will append a / onto path. #jira UE-31959 Change 3041094 on 2016/07/07 by Nick.Darnell WebBrowser - Fixing an issue where the web browser widget plugin wasn't loading soon enough to be properly loaded in time if it was referenced by game nessesary content thatloads in the Default stage of the pipeline, so moving it to PreDefault. #jira UE-32694 Change 3041110 on 2016/07/07 by Matt.Kuhlenschmidt Fix visualizers on blueprint actors not working when the internal components are trashed and replaced Change 3041302 on 2016/07/07 by Chris.Wood Increased buffer size for crash uploads. [UE-32151] - High number of crashes read from S3 by Crash Report Process are failing to unpack Trivial change in dev branch - no code review Change 3041969 on 2016/07/07 by Nick.Darnell UMG - Input Key Selector now no longer adds a bogus Selected Key property to the details panel. Change 3041971 on 2016/07/07 by Nick.Darnell UMG - Not using separate settings for the Engine/Developer folders visible in the UMG palette, now just using the same setting that powers the content browser. Change 3042612 on 2016/07/08 by Trung.Le #jira UE-25005, set Shift+Esc defaults to toggle play/pause and Esc remains defaults to quit Change 3042732 on 2016/07/08 by mitchell.wilson Adding test content for UMG Paper 2d Atlas test Change 3042780 on 2016/07/08 by mitchell.wilson Updating UMG_Paper2d test content for UMG Paper 2d Atlas testing Change 3042870 on 2016/07/08 by mitchell.wilson Renaming UMG_Paper2d to UMG_Sprite Change 3044104 on 2016/07/10 by Nick.Darnell PR #2104: Improved widget input support (Contributed by projectgheist) Change 3044107 on 2016/07/10 by Nick.Darnell Slate - Fixing the slider handle rendering to no longer run off the edge and get cut off. #jira UE-25750 Change 3044377 on 2016/07/11 by Chris.Wood Add Slack messaging module - Epic Friday Change 3044536 on 2016/07/11 by Alex.Delesky #jira UE-7293 - Mouse locking to viewport is now determined off an enum instead of a boolean, to allow for more flexibility when upgrading with new features. Change 3044922 on 2016/07/11 by Nick.Darnell Slate/UMG - Working on better support for VR interactions with Slate widgets. This change fixes a lot of issues with the way interaction works with slate widgets rendered in the virtual world. Breakages, direct mouse interaction with widgets in the virtual world is no longer supported. Those kinds of interactions must all use the WidgetInteractionComponent now, which by default works similar to the lasers in VREditor for interaction. However - you can disable automatic hittesting, and instead provide a custom hitresult instead if you want to use screen tracing and act like you're just a mouse cursor that is supported. Menu anchors now properly function inside of widgets in the virtual world. Performance improvements - the viewport no longer arranges all 3d widgets every frame. Additionally, Widget Components now support a whole bunch of methods for reducing how often they redraw to help control performance, they also support manual refresh. This automatically works in tandem with the widget interaction component to request refresh whenever the widget interaction component is interacting with the widget, thus giving you a simple way to only redraw widgets that the user is hovering on top of. Unrelated - this change also fixes Stop navigation commands not working with Next/Prev navigation - Wrap is still unsupported. Change 3045157 on 2016/07/11 by Nick.Darnell Slate - Always consume the bottom face button of the analog cursor, even if it's a repeat. Change 3045355 on 2016/07/11 by Matt.Kuhlenschmidt Added logging for unreproducible top 10 crash in matinee when a track ends up not being able to add a keyframe Change 3045358 on 2016/07/11 by Alex.Delesky #jira UE-31179 - The editor should now log additional information and hit an assertion if the editor tries to construct FObjectOrAssetData using invalid data. This doesn't stop the crash, but should help get some extra info when it does break. Change 3045371 on 2016/07/11 by Matt.Kuhlenschmidt Enable the widget reflector from the editor console by typing "widgetreflector" Change 3045387 on 2016/07/11 by Stephan.Jiang Stripping off 'b' in the propertyname so that "Is Enabled" is animated properly. #UE-31874 Change 3046093 on 2016/07/12 by Nick.Darnell UMG - The Slider now exposes the IsFocusable option from Slate. #jira UE-32960 Change 3046094 on 2016/07/12 by Alexis.Matte #jira UE-32807 scene re-import blueprint hierarchy kept some part of old blueprint component value. Change 3046104 on 2016/07/12 by Stephan.Jiang typo "Syc" causing the "Sync" button doesn't show Slateicon #UE-31409 Change 3046142 on 2016/07/12 by Nick.Darnell Orion - Upgrading more code to use the new input mode functions and not the deprecated ones. Change 3046165 on 2016/07/12 by Nick.Darnell UMG - Fixing a crash on the widget component if the render target is null when reapplied through widget component data. #jira UE-32844 Change 3046255 on 2016/07/12 by Nick.Darnell UT - More build warning fixes for the new Input Mode methods. Change 3046604 on 2016/07/12 by Richard.Hinckley Adding a template file and code to support creating a UInterface directly from the New C++ Class wizard. Change 3047071 on 2016/07/12 by Matt.Kuhlenschmidt Better way of summoning the widget reflector from the console Change 3047842 on 2016/07/13 by Matt.Kuhlenschmidt Mark Subdivision surface setting as advanced since it is experimental and definitely for advanced users only Change 3048754 on 2016/07/13 by Trung.Le #jira UE-32159 Automatically regain focus after user gets mouse control during PIE session so we can continue process PIE keybinding commands Change 3048756 on 2016/07/13 by Trung.Le Removed default toggle pause/play keybinding from BaseInput.ini, instead we should use the action defined in DebuggerCommands that is customizable Change 3048865 on 2016/07/13 by Trung.Le #jira UE-32159 SGlobalPlayWorldActions widget shouldn't clear out active widget pointer when it's being handled properly Change 3048892 on 2016/07/13 by Nick.Darnell UMG - Fixing a problem with the interaction component, it now does some basic intelligent ignoring of anything it's attached to - excluding widget components. So it's easier to attach it to things that might be inside of a say a player collision capsule. Also removing the 'Max Interaction Distance' from the widget component as that is no longer the arbitor of interaction distance. #jira UE-33250 Change 3049096 on 2016/07/13 by Trung.Le Wrap SGlobalPlayActions around ViewportWidget instead of making it a child of ViewportWidget. This was causing PIE to stop working when there are other UMG in game. #jira UE-33259 Change 3049177 on 2016/07/13 by Stephan.Jiang Fixing the "No Animation Selected" tag shows up after switching back from Graph to Designer. #UE-33016 Change 3049726 on 2016/07/14 by Stephan.Jiang Adding icons for terrain mirror tool #UE-20588 Change 3049957 on 2016/07/14 by Nick.Darnell Slate - Fixing a small bug in the virtual user function - was preventing getting the same virtual user multiple times if it had already been created. Adding an option to the widget component to control the focusabilty of the underlying slate window that's created to host the widget content. Adding an option to the widget interaction component to control if it should be simulating mouse input at all - use this to effectively disable hit testing, and changing hover states and the like. Change 3049994 on 2016/07/14 by Stephan.Jiang Set viewed animtion to current animtion after switching from Graph to Designer (This is for "No Animation Selected" showing up when switching) #UE-33016 Change 3050194 on 2016/07/14 by Stephan.Jiang Added ability to replace the widget the track is currently bound to Also includes changes in WidgetBlueprintEditor to send delegate to AnimationtabSummoner when switching from Graph to Designer #UE-31809 [CL 3050870 by Matt Kuhlenschmidt in Main branch]
2016-07-14 19:07:16 -04:00
}
else
{
// If selecting an actor, move the pivot location.
AActor* Actor = Cast<AActor>(NewSelection);
if(Actor != nullptr)
{
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3050373) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2973846 on 2016/05/11 by Jamie.Dale Exposed FConfigValue::ExpandValue and added FConfigValue::CollapseValue These are both static and can be used to expand or collapse the macros used in our config files (mostly when dealing with paths), in code that has to deal with the config system, but isn't internal to the config system (mostly things that deal with default configs outside of UObjects). The old non-static version of FConfigValue::ExpandValue is now FConfigValue::ExpandValueInternal, which just calls FConfigValue::ExpandValue on SavedValue and ExpandedValue. This also changes some code that was using FString.Replace to use FString.ReplaceInline. This reduces allocations, and also allows us to avoid another string comparison to see whether the strings are identical (as ReplaceInline returns the number of replacements that were made). Change 2973847 on 2016/05/11 by Jamie.Dale Changing the loading phase in the localization dashboard now writes to the default config #jira UE-30482 Change 2973866 on 2016/05/11 by Jamie.Dale Deprecated some functions that were taking an unused position. These unused parameters caused confusion and lead to UE-30276. The old versions have been deprecated, and new versions without those parameters have been added. Existing code has been updated to call the non-deprecated version. - FViewportFrame::ResizeFrame - FSceneViewport::ResizeFrame - FSceneViewport::ResizeViewport Change 2974505 on 2016/05/11 by Nick.Darnell PR #2309: Added Combobox styling (Contributed by Chris528) Change 2975241 on 2016/05/12 by Richard.TalbotWatkin Made sRGB Preview the default in the Color Picker. Change 2975390 on 2016/05/12 by Jamie.Dale Made sure that en-US-POSIX is in our list of available cultures Some people use machine tags as their native text, so they need an invariant machine like culture to use as their native culture. en-US-POSIX is perfect for this. Change 2975411 on 2016/05/12 by Jamie.Dale PR #2237: Fixed formatting of Error_TooManyMaterials message (Contributed by pfranz) Change 2975559 on 2016/05/12 by Jamie.Dale Dialogue Wave VO direction can now be localized This is gathered as editor-only data. #jira UE-28715 Change 2975710 on 2016/05/12 by Jamie.Dale Implemented UObject::IsLocalizedResource to test whether the object belongs to a localized package Change 2975728 on 2016/05/12 by Jamie.Dale Exported dialogue scripts now include a column that says whether they have a localized recording of that line of dialogue #jira UETOOL-794 Change 2975763 on 2016/05/12 by Jamie.Dale We no longer warn if asked to check out a UNC path when running the GatherText commandlets #jira UE-25833 Change 2975766 on 2016/05/12 by Jamie.Dale Resolved some loc key conflicts #jira UE-25833 Change 2975774 on 2016/05/12 by Jamie.Dale PO files now only contain a single entry in the case of a native translation being exported They used to contain the original entry, as well as an entry for the native translation, however the original entry would never be used. This change also cleans up some directory walking code that was looking for archive files, and replaces it with code to load the specific archive file. Change 2975776 on 2016/05/12 by Jamie.Dale Downgraded a PO file import warning that isn't really an issue #jira UE-25833 Change 2976675 on 2016/05/13 by Jamie.Dale Fixed some more fallout from changes to use the window position when changing the game viewport mode - FSceneViewport::ResizeFrame: - Fixed the HMD monitor info setting the wrong variables. - Fixed SetWindowMode and ResizeViewport potentially being passed two different modes. - We now only move the window if we need to (this avoids issues with WindowedFullscreen window positioning). - FWindowsWindow::MoveWindowTo: - Now treats the screen space position it's given as relative to the top-left of the window, rather than the top-left of the windows' client area. - FWindowsApplication: - WM_MOVE was passing a screen space position relative to the top-left of the windows' client area, rather than its window area like Slate expected. #jira UE-30276 #jira UE-30677 Change 2976804 on 2016/05/13 by Jamie.Dale Slight optimization to FICUInternationalization::FindOrMakeCulture to avoid hitting the filesystem until we know we need to Change 2976967 on 2016/05/13 by Alexis.Matte #jira UE-30687 Cannot import a skeletal mesh scale to zero Change 2977042 on 2016/05/13 by Alexis.Matte #jira UE-29952 log a warning if fbx exceed the maximum number of LOD. #2326 Github PR #code review matt.kuhlenschmidt Change 2977074 on 2016/05/13 by Jamie.Dale Follow up to CL# 2976804 to avoid a potential change in behavior Change 2977076 on 2016/05/13 by Jamie.Dale Some tidy up and optimization to SCulturePicker Change 2977327 on 2016/05/13 by Alex.Delesky Now deleting the Redirector package on Redirector Fix Up rather than simply removing it from the Content Browser. #jira UE-30423 Change 2977499 on 2016/05/13 by Alexis.Matte #jira UE-29475 Enable UStruct child property to be favorite Change 2978415 on 2016/05/16 by Jamie.Dale We now pre-load all the culture data when starting the editor to avoid a UI hitch later Change 2978517 on 2016/05/16 by Alex.Delesky #jira UE-29406 Creating a static mesh from a geometry brush and then attempting to reimport the mesh will no longer crash the editor. Change 2978518 on 2016/05/16 by Alex.Delesky #jira UE-28210 The FBX Importer no longer runs cleanup upon failing to import an FBX file and won't crash the engine the next time an FBX is imported within the same editor session. Change 2978556 on 2016/05/16 by Alexis.Matte Fbx tests automation #jira UE-29635 Change 2978797 on 2016/05/16 by Alexis.Matte #jira UE-30774 - prevent baking the pivot if we transform the vertex with the absolute transform. - Also make sure we set the identity for the Max puivot in case we dont bake the pivot and we dont transform the vertex with the absolute transform. #code review matt.kuhlenschmidt Change 2978965 on 2016/05/16 by Alexis.Matte FBX importer, fix the socket rotation. #jira UE-30094 Change 2980613 on 2016/05/17 by Jamie.Dale Moved the XLOC UAT localization provider to be publicly accessible Change 2980614 on 2016/05/17 by Jamie.Dale Reference update for project move Change 2980633 on 2016/05/17 by Jamie.Dale Made the culture mapping used between XLOC and UE4 configurable on a per-project basis You can now override GetEpicCultureToXLocLanguageId in your custom localization provider in order to change the default mappings. Change 2980836 on 2016/05/17 by Jamie.Dale Added -LocalizationSteps flag to allow you to only run a subset of the UAT "Localise" command You can pass any of the following steps: Download, Gather, Import, Export, Compile, GenerateReports, Upload Change 2982700 on 2016/05/18 by Jamie.Dale Fixed the loc package gather potentially adding the same source location multiple times Change 2983906 on 2016/05/19 by Jamie.Dale Slight cleanup of the way we register localization gatherer callbacks Change 2984356 on 2016/05/19 by Chris.Wood Removed temporary analytics API change needed for earlier hot fix [UE-31005] - Undo temp Hardware Survey API change from 4.10 - CL 2782817 Change 2986679 on 2016/05/23 by Alex.Delesky #jira UE-24747 - Importing FBX files that contain meshes that do not have non-degenerate triangles will no longer crash the editor on import, and will warn the user that the meshes are bad. Change 2986798 on 2016/05/23 by Alex.Delesky #jira UE-31136 - Chord Input fields will no longer display the blinking edit cursor if they do not have focus. Change 2987106 on 2016/05/23 by Alexis.Matte Fbx importer, fail import must not create a package in the content browser #jira UE-31154 Change 2987563 on 2016/05/23 by Alex.Delesky #jira UE-30988 - Changed the default window mode when launching a game from the .uproject file to Windowed Change 2987564 on 2016/05/23 by Alex.Delesky #jira UE-28856 - Fixed a crash that could potentially occur when starting up PIE while dragging objects like widgets in the editor. Change 2988321 on 2016/05/24 by Jamie.Dale Added a way to backup and restore the selection state of a level (its actors and components) in a way that can be reapplied even if the level is reloaded Change 2988708 on 2016/05/24 by Jamie.Dale Fix for crash when missing the fallback/last resort font Change 2988782 on 2016/05/24 by Jamie.Dale Added the ability to version each localized string individually when loaded into the localization manager The single 32-bit global history has now been replaced with two 16-bit histories. One is global, and is updated whenever the culture is changed (or a LocRes file is loaded), and the other is local to each string, and is updated if the display string is changed outside of a culture update (to handle cases where the display string is changed, but the key is preserved). Changing the global history will reset all local histories. Because of the change from an int32 to a uint16, 0, rather than INDEX_NONE, is now considered the "unset" value for a history. Change 2988856 on 2016/05/24 by Jamie.Dale Added a way to get the package(s) of the object(s) being edited by a property panel Typically the package is just the outermost of the object being edited, however there are some cases where this may not be the case: - UMG widgets edit a transient copy of the real data, so we use the SetObjectPackageOverrides to override the package these objects should use to be the real asset package. - Structs (UDS, Data Table, etc) don't have a way to get to their package, so you have to specify it on their FStructOnScope instance (see FStructOnScope::GetPackage and FStructOnScope::SetPackage). This has been hooked up for the UDS and Data Table editors. Change 2988955 on 2016/05/24 by Alex.Delesky #jira UE-30645 - Adding in support for splash images to support .png and .jpg files. In general, this adds multi-extension support for external image references and external image picker modules. Git Request #2376 Change 2989418 on 2016/05/25 by Jamie.Dale Added a way to count text references within a package that match the given search criteria This can be used to detect whether a localization ID is unique within its package. The following search modes are available: - MatchId: Detect a reference if it matches the given ID (ignoring the source text) - MatchSource: Detect a reference if it matches the given ID and source string - MismatchSource: Detect a reference if it matches the given ID but has a different source string Change 2989436 on 2016/05/25 by Jamie.Dale Added "root-level" meta-data (meta-data associated with the package rather than an object within it) Change 2989471 on 2016/05/25 by Alexis.Matte Fbx scene importer, fix naming clash when creating package we now also look in memory to find existing package not just on disk Change 2989639 on 2016/05/25 by Jamie.Dale Added static version of FName::IsValidXName This allows you to verify name-like strings without having to convert them to an FName (and thus add them to the name table) Change 2989716 on 2016/05/25 by Alex.Delesky #jira UE-30828 - The Standalone Session Frontend will now render the names of automation tests correctly instead of as solid white blocks. Change 2990100 on 2016/05/25 by Alexis.Matte Fix crash when reimporting a mesh that originaly exceed the maximum number of LOD #jira UE-30907 Change 2991442 on 2016/05/26 by Bob.Tellez #UE4 Fix components in world not rendering when saved without a physics scene. Change 2991736 on 2016/05/26 by Bob.Tellez #UE4 Fix duplicated worlds not being initialized when inactive. Re-enabled duplication of worlds in the content browser. Change 2991942 on 2016/05/26 by Alex.Delesky #jira UE-31012 - Setting a Decimal Grid Interval value to 0 and using it will no longer crash the editor or cause an editor crash on startup. Change 2991994 on 2016/05/26 by Alex.Delesky #jira UE-31177 - Attempting to export an entire level as an object file and choosing to export all materials as images will no longer crash the editor. Change 2994037 on 2016/05/30 by Alexis.Matte Add Fbx Automation Tests - static mesh import reimport (sections and materials) - skeletal mesh import and reimport (sections and materials also bone position) - static/skeletal mesh LODs (import, add, reimport) - rigid mesh (import, reimport) Change 2994253 on 2016/05/31 by Alexis.Matte Mikkt crash when computing the normals if there is more vertex then the number of wedge #jira UE-29143 Change 2994260 on 2016/05/31 by Alexis.Matte Make sure we cannot modify fbx test plan when json file is read only Change 2994431 on 2016/05/31 by Alex.Delesky #jira UE-21900 - The scale widget should now render all axes when using an orthographic camera. Change 2994432 on 2016/05/31 by Alex.Delesky #jira UE-31328 - New objects dragged into the scene will now comply with the Surface Snapping option in the viewport, and will not use the Surface Offset if snapping is disabled. Change 2994537 on 2016/05/31 by Richard.TalbotWatkin Fixed potential crash in the Mesh Paint tool when non-transactable actors are in the SelectedActors list following a Redo. #jira UE-31172 - Crash related to Vertex Painting - MeshPaint!CastChecked<AActor,UObject>() Change 2994983 on 2016/05/31 by Richard.TalbotWatkin Added some guard code to protect against a crash when editing geometry. Repro currently unknown, ensure was added in order to try to get more information. #jira UE-30820 - UT EDITOR: CRASH: Crash in Public Release CL#2973693 Change 2995022 on 2016/05/31 by Jamie.Dale PR #2428: Added missing END_OPTIMIZATION macro to SOutputLog (Contributed by MatzeOGH) Change 2995027 on 2016/05/31 by Jamie.Dale PR #2409: fixed a small typo in GraphEditor.h (Contributed by MatzeOGH) Change 2995963 on 2016/06/01 by Alex.Delesky #jira UE-31317 - The transform gizmo will no longer block the placement of a material onto a mesh. Change 2997002 on 2016/06/01 by Cody.Albert Fix to ensure ActiveTopLevelWindow is properly set after a window is destroyed #jira UE-31448 Change 2998013 on 2016/06/02 by Alexis.Matte Prevent static mesh materials array to grow when using the reset button in the staticmesh editor. #jira UE-12931 Change 2998370 on 2016/06/02 by Alexis.Matte Fbx Automation, add some import LOD test in case the options are not ok Change 2999709 on 2016/06/03 by Jamie.Dale Fixed some issues with gathering text from BP bytecode Bytecode in Blueprints is very volatile, and can only be safely gathered after it's been compiled (which is not guaranteed to have happened by the time we save the package). This change avoids caching any assets that contain scripts (non-data-only Blueprints), and instead will always load them to perform a gather (which will ensure the Blueprint bytecode is up-to-date due to compile-on-load). Change 2999755 on 2016/06/03 by Richard.TalbotWatkin Fixes to Spline Mesh collision generation. - Fixed a serious issue with DDC ID generation, in that the static mesh wasn't forming a part of the key, hence any two spline meshes with identical properties but different meshes would yield the same cache entry. - Fixed how different collision boxes are transformed when rebuilding physics meshes. Convex collision transforms are now correctly taken into account, and spherical and capsule collision now gets correctly translated when a scale is applied to the start or end of the spline mesh. - Optimized physics rebuilding. A new BodySetup object is now only created when needed, otherwise it is reused. #jira UE-31361 - Splines handle box collision and collision from other shapes differently Change 2999973 on 2016/06/03 by Jamie.Dale We now skip bulk data when detecting text references #jira UE-31596 Change 3000159 on 2016/06/03 by Alex.Delesky #jira UE-30244 - Added a safeguard against a potential crash when editing BSP brushes before placing another BSP brush into the level. Change 3001814 on 2016/06/06 by Alexis.Matte Make sure the staticmesh Materials list dont grow when we reimport or override a LOD other then the base mesh. Add a fbx test to make sure the problem is flag by automation test #jira UE-1394 Change 3001820 on 2016/06/06 by Alex.Delesky #jira UE-19079 - Widget Blueprints should no longer crash when dragging widgets from one blueprint to a second and then compiling the second blueprint. Change 3001915 on 2016/06/06 by Alexis.Matte Make sure we check attribute type before checking attribute unique ID in case of unique id clash. #jira UE-31214 Change 3002026 on 2016/06/06 by Alexis.Matte Importing morph target should not import textures like materials since the base mesh already import thoses. UDN Question: https://udn.unrealengine.com/questions/293973/does-importing-an-fbx-with-morph-targets-cause-a-m.html Change 3002623 on 2016/06/06 by Jamie.Dale Fixing more loc conflicts Change 3002883 on 2016/06/06 by Jamie.Dale Adding retry when dealing with OneSky This is attempting to compensate for some timeouts with OneSky, which were also noticed when testing UE-31413 Change 3003004 on 2016/06/06 by Trung.Le #jira UE-13101 - Make "Description" field for a BluePrint Function multiline Change 3003859 on 2016/06/07 by Alexis.Matte #jira UE-30436 Refresh the property editor when a array element is added, remove, insert, delete and the property is favorite Change 3004132 on 2016/06/07 by Jamie.Dale Fixed a hash conflict that could occur when both the case-sensitive and case-insensitive FName hashes were identical This resulted in the case-preserving FName being added to the head of the linked list for the bucket, which caused any subsequent name lookups to return that name index for the comparison index (since it matched an insensitive string comparison), rather than the name index of the first case-variant of that name that was added to the bucket. This change has new entries be inserted at the tail of the list, which ensures that enumeration for a case-insensitive name will always find the same entry in the bucket (the first one that was ever added) and will continue to compare correctly. Change 3004286 on 2016/06/07 by Jamie.Dale Ensured that assignments that publish new names to the bucket are atomic Change 3004310 on 2016/06/07 by Jamie.Dale Ensured FName internal hashes are returned as uint16 Change 3004381 on 2016/06/07 by Jamie.Dale FAsyncPackage now creates the meta-data before processing the remaining exports This matches the behavior of FLinkerLoad::LoadAllObjects, as other objects may depend on the meta-data being loaded before them. Change 3004765 on 2016/06/07 by Alex.Delesky #jira UE-31498 - Material thumbnails will now render the full sphere rather than an extreme close-up of the material. Change 3005754 on 2016/06/08 by Trung.Le Allow whitespace for meta class names #jira UE-31668 Change 3005755 on 2016/06/08 by Stephan.Jiang UMGSequencePlayer implements GetPlaybackContext() and return UserWidget->GetWorld() if it's valid #jira UE-31299 Change 3006512 on 2016/06/08 by Alex.Delesky #jira UE-31572 - The "All Classes" tab in the Modes panel will now refresh when a placeable asset is created, renamed, or deleted without needed to navigate away from the tab first. Change 3006760 on 2016/06/08 by Jamie.Dale Added support for stable localization keys This feature adds support for preserving the existing key of an FText property when editing the source string, providing that it is the only reference to that string within the package. A side effect of this is that you're now able to specify custom keys for FText properties since we can now verify that the custom key won't cause an identity conflict. In order to limit the search domain for uniqueness to a single package, we've added the concept of a "localization namespace" to packages (stored in the meta-data). Each package is given a unique namespace, which is appended to the user-defined namespace of the text when it is modified, saved, or duplicated. This package namespace ensures that the same user-defined namespace and key may be used in different packages without causing an identity conflict. In order to access the package namespace within the Core code that hosts FText (which doesn't know about UPackage), FArchive now provides a GetLocalizationNamespace function to access the package namespace within the Core code, and a SetLocalizationNamespace function for CoreUObject and Engine code to pass down the package namespace from their packages. If you have an archive that handles duplicating objects into a different package, or duplicating packages themselves, then you'll want to make sure it's setting the package namespace correctly. FObjectReader and FObjectWriter have been updated to do this, and serve as a good example. FDuplicateDataReader (used by StaticDuplicateObject), and FCopyPropertiesArchiveObjectWriter (used when compiling Blueprints) have also been updated to set the package namespace, as they both handle copying objects between packages. TextNamespaceUtil provides a suite of functions for getting at (or setting) the namespace for a package. Keys will start to stabilize naturally over time once this feature is enabled, however the StabilizeLocalizationKeys commandlet may also be used to stabilize all the keys for a game at once. Running it for a game under source control would look something like this: MyGame -run=StabilizeLocalizationKeys -IncludeGame -NativeCulture=en -EnableSCC This commandlet also updates your localization archives to use the new text identities, however you'll still need to run a localization gather and localization compile before the updated translations will be available for your game. Note: This feature is currently disabled via the USE_STABLE_LOCALIZATION_KEYS define. It will be enabled at a later date. #jira UETOOL-796 Change 3007501 on 2016/06/09 by Trung.Le #jira UE-31722 Fix MaterialFunctions crash when editing text in Libraries Category Text field. Solution: Removed PredEdit and PostEdit from IEditableTextProperty, its derived types and other code that was calling them. The new SetText method already calls NotifyPreChange and NotifyPostChange to properly create/destroy ScopedTransaction. Change 3007524 on 2016/06/09 by Jamie.Dale Added some additional checks to avoid re-keying text when duplicating for PIE Change 3007564 on 2016/06/09 by Jamie.Dale PR #2401: DataTable import/export improvements (Contributed by bozaro) Change 3007653 on 2016/06/09 by Jamie.Dale PR #2459: Generate JSON for nested structs in DataTable rows (Contributed by jorgenpt) Change 3008019 on 2016/06/09 by Jamie.Dale Updated structs to export as JSON when displaying them in the Data Table editor This produces much cleaner results than using the text export method (which will use the internal names for user defined structs). This also cleans up the FDataTableExporterCSV and FDataTableExporterJSON APIs so that you don't need to pass in a UDataTable if you're not going to use it. #jira UE-29958 Change 3008052 on 2016/06/09 by Jamie.Dale Fixed bug importing an array inside a JSON Data Table This was noticed when testing a GitHub PR, but the JSON importer for a Data Table was appending the new data to the array rather than replacing it. It now clears the array prior to importing. Change 3008875 on 2016/06/10 by Jamie.Dale PR #2406: Git plugin: Fix for Git diff not working in UE 4.12 (and master) (Contributed by SRombauts) Change 3008879 on 2016/06/10 by Jamie.Dale PR #2484: Git Plugin: fix the Submit To Source Control menu broken by new "migrate" support in 4.12 (and master) (Contributed by SRombauts) Change 3008990 on 2016/06/10 by Alex.Delesky #jira UE-15699 - Submitting to source control via the editor should now check for current asset status before prompting the user to submit their changes. This should prevent files that had been previously deleted from being readded to source. Change 3008991 on 2016/06/10 by Alex.Delesky #jira UE-31688 - The Output Log will now automatically anchor to the bottom of the scroll bar when the user scrolls all the way down using the mouse wheel or clicking and dragging the content window. Change 3010856 on 2016/06/13 by Alexis.Matte #jira UE-31713 Fix a serialize issue for skeletal mesh with apex cloth. Change 3011736 on 2016/06/13 by Jamie.Dale Adding missing plurals.res file This is needed to get plural form information from ICU. #jira UETOOL-875 Change 3012387 on 2016/06/14 by Richard.TalbotWatkin Disabled the Paste context menu action if the property is marked as EditConst. #jira UE-27469 - User is able to paste values into a read-only setting Change 3012971 on 2016/06/14 by Stephan.Jiang Editor Preferences->Widget Designer now have two options to toggle the visibilities of widgets created from Engine content folder and Developers folder. By default, visibility for engine content is off and developers is on #jira UE-31657 Change 3013111 on 2016/06/14 by Jamie.Dale Unified the number, percentage, and currency formatting between the ICU and Legacy text implementations Removed all the old legacy number formatting code, and removed the calls to the ICU specific number formatting. Everything is now using FastDecimalFormat as this will allow some optimizations later when formatting numbers in FText::Format. Change 3015438 on 2016/06/15 by Cody.Albert Fixing ScrollBy function to calculate new scroll offset based on the current scroll offset and not the current desired scroll offset (which may not be the same during an animation) #jira UE-32082 Change 3016782 on 2016/06/16 by Richard.TalbotWatkin Corrected ConvexHull2D so that it returns an empty set of indices when passed an empty points array. Change 3016949 on 2016/06/16 by Jamie.Dale Added FastDecimalFormat overloads to write into an existing string This helps avoid an extra allocation if you already have a pre-sized string that you're writing the number to (as is the case in FText::Format). Change 3016952 on 2016/06/16 by Jamie.Dale Changed an Add for an Emplace to avoid moving a temporary Change 3016954 on 2016/06/16 by Jamie.Dale Updated some FText code to avoid creating temporary objects just to move data through a hierarchy There was some code in FText and its internal types that were using pass-by-value as a marshaller to move data through a hierarchy. This resulted in temporary objects being created and destroyed to facilitate the movement of data. This change has all the internal FText code (private FText constructors, internal text data, and internal text history) take its movable types as an r-value reference. This avoids the temporary objects, but also makes it impossible to accidentally copy a construction argument when you meant to move it (you can still copy, but the copy must be explicit). In addition to this, FText::FromString and FText::AsCultureInvariant now have two overloads, const FString& and FString&&, to avoid them creating a temporary when you're invoking a move. FText::ChangeKey now takes its parameters by const& as their data wasn't being moved further down the chain, so the by-value copy was wasteful. Change 3019021 on 2016/06/19 by Richard.TalbotWatkin When deleting a brush, ensure geometry is rebuilt before updating the details panel according to the selection change, so that the old Surface Properties don't continue to appear. #jira UE-8966 - Surface Properties of a BSP remain in the details panel after the BSP is deleted Change 3019022 on 2016/06/19 by Richard.TalbotWatkin Fixed issue where the Surface Properties category in the Details panel doesn't appear after selecting a surface on a Brush which has just been placed. #jira UE-31916 - Selecting an edge of BSP geometry then a face does not show Surface Properties while in Place mode #jira UE-31915 - Selecting BSP face does not show Surface Properties in Details Change 3019025 on 2016/06/19 by Richard.TalbotWatkin Fixed issue which was stopping 'Cancel' from correctly returning a 'Cancelled' result during P4 asynchronous ops. #jira UE-28595 - Submit to Source Control: "Checking for assets to check in..." cancel button does not cancel operation, editor becomes unresponsive Change 3020050 on 2016/06/20 by Cody.Albert Changed window centering logic to correctly work when monitor 1 isn't set to primary monitor. #jira UE-32173 Change 3021145 on 2016/06/21 by Jamie.Dale Added support for text format argument modifiers These can be used to mutate a format argument before appending it to the resultant formatted string, and are applied to the preceding argument via a pipe, eg) "{Arg}|plural(one=is,other=are)". We provide a few of these by default: - |plural(key=val,...) - |ordinal(key=val,...) Provides support for cardinal and ordinal plural forms, where key may be any of "one", "two", "few", "many", or "other", and val may be any optionally quoted string. - |gender(masculine,feminine,[neuter]) Provides support for gender forms, where the 0th item is the masculine version, the 1st item is the feminine version, and the 2nd item is an optional neuter version. The values may be any optionally quoted string. - |hpp(consonant,vowel) Provides support for Hangul post-positions, where the 0th item is the consonant suffix, and the 1st item is the verb suffix. The values may be any optionally quoted string. Major changes: - Exposed the ICU plural form handling via FCulture::GetPluralForm. - Updated the FText formatting code to use an expression evaluator (to support the more complex expressions needed for the argument modifiers). - Added FTextFormat to store a pre-compiled format expression. Re-using one of these if you're performing a lot of formats with the same FText will increase your performance (as around half of the FText::Format cost can be compilation, via an implicit construction of FTextFormat). - Updated the FText::Format(...) family of functions to take their format string as FTextFormat, and take their arguments as FFormatArgumentValue. This allows us access to the real numeric types within the format code, but doesn't break the existing API as these types are implicitly constructible from the old parameters (FText). - Converted text history to store their format string as an FTextFormat in-case they need to perform a re-format (this is still saved as an FText). Breaking changes: - The rules for the escape token have been simplified, and there is an incredibly unlikely chance that this may affect some text: - The ` character will now only escape a valid character (producing only the escaped character in the final string), or it will be ignored and inserted as a literal character, eg) "`{F" -> "{F", and "`F" -> "`F". - Previously it would also remove the escape character when it followed { or }, eg) "{`" -> "{" and "}`" -> "}", rather than "{`" and "}`" like you might expect. It would also have previously removed a ` at the end of a string due to a parser bug. Change 3021156 on 2016/06/21 by Jamie.Dale Updated LinuxToolChain to use the same output delegate for all of its actions when cross-compiling This avoids the compile and link actions being split into different batches. Change 3021280 on 2016/06/21 by Richard.TalbotWatkin Fixed bug in parsing LOD in UStaticMeshComponent::ImportCustomProperties (thanks to Aurelien Cordonnier). #jira UE-31937 - UDN code submission for UStaticMeshComponent::ImportCustomProperties parsing bug Change 3022949 on 2016/06/22 by Alex.Delesky #jira UE-31944 - Upgrading Subversion binaries to version 1.9.4. Change 3023092 on 2016/06/22 by Jamie.Dale Downgraded some checks to ensures and added an early out #jira UE-32009 Change 3023154 on 2016/06/22 by Jamie.Dale Ported over CL# 3018771 to the UE automation This fixes an issue where a downloaded PO file smaller than the one already on disk leaving a mix of both files on disk (rather than the existing file on disk being truncated). Change 3023579 on 2016/06/22 by Jamie.Dale Expanded the Blueprint FormatText node to support numeric and gender types These are needed to correctly support the new plural and gender forms that can be used in format strings, as these require actual numeric/enum data to be passed into the format arguments, rather than pre-formatted text. Major changes: - The FormatText node for Blueprints now uses PC_Wildcard as its pin type for format arguments instead of PC_Text. - Any existing literal text argument data in the pin is hoisted out into a "Make Literal Text" node which is then connected to the pin. - FFormatArgumentData has been updated to be variant on the data needed by Blueprints. It's now a less comprehensive and non-unioned version of FFormatArgumentValue. - The version of FText::Format taking FFormatArgumentData has been deprecated as its usage was internal to Blueprints and we have much better ways to format text in C++. Any existing C++ using that (of which we have none internally) should be updated to use FFormatArgumentValue instead. Change 3023915 on 2016/06/22 by Jamie.Dale Cleaned up some of the UK2Node_FormatText expansion code to avoid unchecked literals Change 3024813 on 2016/06/23 by Jamie.Dale Renamed FContext to FManifestContext to better reflect its purpose and avoid naming conflicts with other code Change 3024852 on 2016/06/23 by Nick.Darnell FBX - Updating automation tests with the changes to chunk and chunk index removal and them being merged with sections. Change 3024994 on 2016/06/23 by Nick.Darnell UMG - Removing the DesignerWidgetTree, instead going to directly inject the widget tree into the partially constructed UUserWidget during design time, when refreshing the preview. This avoids doing something a little dangerous and sketchy like updating the living class instance with a new designer tree that all new instances will begin biasing using. Also making the preview widget explictly non-transactional as there's no reason to track changes to the preview, all the changes that need to be tracked should be on the template widget. This should fix the crash in the widget designer when you Undo just after compiling the widget blueprint. #jira UE-31155 Change 3025194 on 2016/06/23 by Alex.Delesky #jira UE-31155 - Compilation error fix. Change 3025255 on 2016/06/23 by Alex.Delesky #jira UE-21900 - Redoing changes done in CL 2994431 since it got stomped. Reinstates the grabber handles and ensures consistent scaling on the scale widget in orthographic viewports. Change 3025460 on 2016/06/23 by Cody.Albert Fixed issue where widget components would misalign when aspect ratio was being constrained #jira UE-29637 Change 3025508 on 2016/06/23 by Cody.Albert Adding support for adjusting animation playback speed #jira UE-32222 Change 3026444 on 2016/06/24 by Jamie.Dale Fixed crash caused by bad access of shared this when closing an active IME context This was only needed to get the owner window, which we now cache when the IME context is created. #jira UE-32240 Change 3028358 on 2016/06/27 by Jamie.Dale Fixed IMEs not working due to no window being cached #jira UE-32240 Change 3028464 on 2016/06/27 by Alex.Delesky #jira UE-31873 - A single "Files need check-out" notification will now be shown instead of multiple notifications if multiple files need to be checked out, and updated as more files need to be checked out. Change 3028524 on 2016/06/27 by Chris.Wood Switched off uploads to legacy Crash Report Receiver. [UE-31252] - Switch off deprecated CRR upload in Crash Report Client Also added CRC version string, added to crash context from CRC config Change 3028840 on 2016/06/27 by Alexis.Matte #jira UE-32306 replace material bad name character by an underscore when doing a scen import. Change 3028924 on 2016/06/27 by Alexis.Matte #jira UE-32125 Make sure we can add a plan when a fbx file is drop in the fbx automation test folder Change 3029044 on 2016/06/27 by Alex.Delesky #jira UE-31944 - Updating SVN binaries for Mac to 1.9.4 Change 3029276 on 2016/06/27 by Alex.Delesky #jira UE-31531 - A user can now select the base class when creating a new physical material. PR #2462: added dialog, which enables picking base class for asset (Contributed by iniside) Change 3029459 on 2016/06/27 by Alexis.Matte #jira UE-32354 Make sure we set all blueprint component to the correct mobility set in the scene import options. Change 3030577 on 2016/06/28 by Nick.Darnell PR #2531: Git plugin: fix wrong status icons (Contributed by SRombauts) Change 3030587 on 2016/06/28 by Alexis.Matte #jira UE-32251 add missing body setup variables when restoring the body setup value after a re-import of a staticmesh Change 3030946 on 2016/06/28 by Alexis.Matte #jira UE-32515 prevent crash when re-import staticmesh userdata Change 3031115 on 2016/06/28 by Jamie.Dale The DDC builder now gives the shader compile worker a chance to catch up when it pauses to run a GC pass This prevents an issue where the shader backlog could cause massive amounts of memory to be consumed. Change 3031146 on 2016/06/28 by Jamie.Dale Fixed errors when building with USE_STABLE_LOCALIZATION_KEYS enabled caused by UEdGraphPin no longer being a UObject Change 3031357 on 2016/06/28 by Nick.Darnell PR #2431: Add plugin support to the editor class wizard. (Contributed by Koderz) Change 3031515 on 2016/06/28 by Jamie.Dale Fixed game targets not being able to depend on other game targets Change 3031520 on 2016/06/28 by Jamie.Dale Localization compilation now specifies an ArchiveName to use Change 3031671 on 2016/06/28 by Nick.Darnell Editor - Checking to see if a weak variable is valid before using it in the editor build window. Change 3032013 on 2016/06/28 by Matt.Kuhlenschmidt Added ability to invert the Y axis in editor viewports for mouse look and orbit Change 3032495 on 2016/06/29 by Jamie.Dale Fixed some measuring issues with bi-directional text within a right-flowed document There were three main issues: 1) Measuring blocks was measuring visual glyphs rather than logical glyphs (this caused bad measures/wrapping and overlapped rendering). 2) The text layout would consider blocks visually contiguous without making sure the block flow direction matched the line flow direction (this caused bad highlights). 3) The text layout would fail to compensate for a non-contiguous block that had a flow direction different to the line flow direction (it was hard-coded for RTL in LTR, so broke for LTR in RTL - this caused bad highlights). #jira UE-32526 Change 3032533 on 2016/06/29 by Nick.Darnell UMG - The widget component now extends from UMeshComponent, it can have a custom material applied to it, in order to achieve cooler effects - like ignoring the depth buffer. Users who use this option are encouraged to start with the widget components default material and work from there. The widget component now offers the ability to automatically size the render target to be the desired size of the widget - note that this can go real bad if your widget wants to be really big. Change 3032855 on 2016/06/29 by Alexis.Matte #jira UE-32508 Remove the cachewindow from the FTextInputMethodContext constructor since it will be cache only when the IME is activated #test please re-test also UE-32240 Change 3033145 on 2016/06/29 by Alex.Delesky #jira UE-32239 - The PropertyEditorModule will no longer cause a crash on editor shutdown if a SDetailsView widget tries to force refresh itself when the Slate application is no longer initialized. Change 3033147 on 2016/06/29 by Alex.Delesky #jira UE-32326 - Clicking on the "Install {compiler}" button when trying to create a new code class or code project will now not crash the engine if it fails to open the installation file for write, nor will it create multiple notifications if the button is pressed repeatedly. This also addresses a potential issue with static initialization order when it comes to adding TickableEditorObjects to its corresponding array, since it was wholly possible for a statically initialized TickableEditorObject to initialize itself and add itself to the tickable objects arra before the tickable objects array was initialized, causing that object to not get ticked at runtime and causing a crash when the editor was closed. Change 3033162 on 2016/06/29 by Alex.Delesky #jira UE-31827 - Undo/redo now works in the Material function editor. Change 3033391 on 2016/06/29 by Matt.Kuhlenschmidt Fix post process settings blendable picker not being readable in the details panel Change 3033498 on 2016/06/29 by Matt.Kuhlenschmidt Fixed huge number of redundant calls to CanEditChange and DiffersFromDefault that were causing massive performance loss when thousands of objects are selected. CanEditChange and DiffersFromDefault are now cached each time a property value changes. Fixed redundant calls for getting visualizers for each selected object. This is now cached on selection Change 3033504 on 2016/06/29 by Matt.Kuhlenschmidt Fix Mass customization on the body instance not working with undo/redo or reset to default Change 3034357 on 2016/06/30 by Alex.Delesky #jira UE-31184 - Renamed the multiple collision components in the cascade particle system to more accurately reflect what they represent. Change 3035915 on 2016/07/01 by Richard.TalbotWatkin Fix to SListPanel so that those with horizontal arrangement (i.e. from STileView) use the number of desired items instead of the number of actual items in order to calculate the desired size of the geometry. This fixes the case where an STileView is contained within an SScrollBox. #jira UE-32195 - STileView no longer works correctly when placed inside of a SScrollBox Change 3035951 on 2016/07/01 by Richard.TalbotWatkin Fixed issue when importing a brush, so that the brush is always validated (relinked), whether it be a static or dynamic brush. This is because the process of rebuilding a dynamic brush sets the link indices to signify FBspSurf indices from the UModel instead of FPoly indices (the FPoly::iLink member is overloaded in its meaning). Always forcing a relink correctly sets the linked list of coplanars. #jira UE-32087 - Crash occurs when creating Static Mesh from Trigger Volume Change 3036991 on 2016/07/04 by Alexis.Matte #jira UETOOL-901 Scene importer now support the rigid mesh animation Change 3037037 on 2016/07/04 by Jamie.Dale Fixed regression in editable text box alignment Text was no longer vertically aligned center since SEditableText was converted to use a text layout. This vertical alignment is now handled by the outer SEditableTextBox instead. Change 3037057 on 2016/07/04 by Richard.TalbotWatkin Fixed screenshots when running automation tests so that they are saved locally when a FAutomationWorkerScreenMessage is received. #jira UE-29815 - In-game screenshot isn't working under certain circumstances Change 3037082 on 2016/07/04 by Chris.Wood Added detection of asserts and passing assert flag and crash type string to crash reports. [UE-30592] - Crash Reporter should determine crash type on client and pass string to server Reviewe by Steve with reservations about the static variable for setting asserted state. While not thread-aware, this is probably accurate enough for the purpose of crash reporting, certainly for now. I'm submitting it like this because the work required to add fully thread-aware fix is not necessary at this point. Change 3037095 on 2016/07/04 by Alexis.Matte Fix the bone name when duplicating a socket. Change 3037453 on 2016/07/05 by Stephan.Jiang Adding ability to animate the root wigdet #2 FHierarchyRoot adds the preview widget instead of CDO to selectedobjects in widgetblueprint the properties are then migrated back to the CDO #UE 31810 Change 3037487 on 2016/07/05 by Jamie.Dale Fixed crash caused by stale BP pointer #jira UE-32325 Change 3037488 on 2016/07/05 by Jamie.Dale Fixed a crash that could occur when a class and a folder had the same name Change 3037526 on 2016/07/05 by Jamie.Dale Speculative fix for a potential race condition when shutting down the editor while a "launch" was in progress The launch-thread could potentially queue up a request after the game-thread had requested it cancel, and cleared out any queued tasks. This change has the game-thread wait for the launch-thread to acknowledge its cancellation before continuing with editor shutdown. #jira UE-17688 Change 3037557 on 2016/07/05 by Alex.Delesky #jira UE-32424 - Added a safeguard to ensure that renaming a world that was duplicated from another world would not crash the editor if both worlds' lightmaps and shadowmaps were still active in memory, due to the editor attempting to rename identical textures from different packages to the same location. The actual fix to this issue was performed in an earlier CL, but this should prevent the editor from crashing if the issue returns. Change 3037558 on 2016/07/05 by Alex.Delesky #jira UE-32285 - Importing assets to the Content Browser via drag and drop operations are no longer permitted while the UI file picker dialog is opened. Change 3037559 on 2016/07/05 by Alex.Delesky #jira UE-32075 - The user can no longer attempt to import non-FBX and non-OBJ files when importing into a level. Change 3037593 on 2016/07/05 by Stephan.Jiang GitHub #2549: Add function for setting the playback rate of UMG animations original code shelved in CL 3033449 #UE-32653 Change 3037605 on 2016/07/05 by Jamie.Dale Fixed infinite recursion that could happen when gather loc from an object with a custom callback #jira UE-32670 Change 3037649 on 2016/07/05 by Nick.Darnell PR #2538: [WidgetBlueprintLibrary] GetAllWidgetsOfClass, Added META ~ DeterminesOutputType, DynamicOutputParam, removes the need for extra cast,  Rama (Contributed by EverNewJoy) Change 3037652 on 2016/07/05 by Nick.Darnell Clean - Removing commented out code. Change 3037658 on 2016/07/05 by Matt.Kuhlenschmidt Fix initial hitch when dragging around in a color picker opened from a material expression node. Change 3037679 on 2016/07/05 by Nick.Darnell Engine - Texture2D no longer forces the MIP level to 0 for TextureGroup_UI textures. Change 3037757 on 2016/07/05 by Nick.Darnell PR #2447: WebBrowser widget: Added GetUrl method and OnUrlChanged property (Contributed by nelbok) Change 3037840 on 2016/07/05 by Nick.Darnell UMG - Now allowing for spirtes to be used just like textures and materials on UMG widgets anywhere that takes a brush, can now also take a Sprite. There is now a ISlateTextureAtlasInterface interface that any UObject may now implement if it wishes to integrate with UMG to provide its atlas data in a form Slate can understand. Change 3037924 on 2016/07/05 by Jamie.Dale Re-ordered variable initialization to appease a warning on Mac Change 3037981 on 2016/07/05 by Jamie.Dale Fixed crash where FColorStructCustomization could call SetPerObjectValues with an empty array #jira UE-32639 Change 3038075 on 2016/07/05 by Cody.Albert Removed misleading error message in HandleCECommand #jira 28007 Change 3038231 on 2016/07/05 by Alexis.Matte #jira UE-30694 We set the section collision only if there is an imported collision or a generated one. If there is no collision we do not set the collision flag. Change 3038275 on 2016/07/05 by Alex.Delesky #jira UE-32689 - "Game Gets Mouse Control" will now override the Capture Mouse on Launch setting when launching the game from within a Level Viewport (i.e., within the editor window itself). Change 3039310 on 2016/07/06 by Trung.Le #jira UE-25005 Change PIE Key Bindings - Removed Shift+F1 and Esc from BaseInput.ini - Created new customizable key binding for + Shift+F1: same functionality. + Esc: now will pause the play session and bring back the mouse cursor. Clicking the mouse on the viewport should resume play session. + Shift+Esc: now will stop the play session Change 3039458 on 2016/07/06 by Trung.Le Removed unused code in StaticMeshLight.cpp Change 3039827 on 2016/07/06 by Frank.Fella FString - Fix divide overload path concatenation for empty paths since there are several places in the engine that expect using that doing { path / "" } will append a / onto path. #jira UE-31959 Change 3041094 on 2016/07/07 by Nick.Darnell WebBrowser - Fixing an issue where the web browser widget plugin wasn't loading soon enough to be properly loaded in time if it was referenced by game nessesary content thatloads in the Default stage of the pipeline, so moving it to PreDefault. #jira UE-32694 Change 3041110 on 2016/07/07 by Matt.Kuhlenschmidt Fix visualizers on blueprint actors not working when the internal components are trashed and replaced Change 3041302 on 2016/07/07 by Chris.Wood Increased buffer size for crash uploads. [UE-32151] - High number of crashes read from S3 by Crash Report Process are failing to unpack Trivial change in dev branch - no code review Change 3041969 on 2016/07/07 by Nick.Darnell UMG - Input Key Selector now no longer adds a bogus Selected Key property to the details panel. Change 3041971 on 2016/07/07 by Nick.Darnell UMG - Not using separate settings for the Engine/Developer folders visible in the UMG palette, now just using the same setting that powers the content browser. Change 3042612 on 2016/07/08 by Trung.Le #jira UE-25005, set Shift+Esc defaults to toggle play/pause and Esc remains defaults to quit Change 3042732 on 2016/07/08 by mitchell.wilson Adding test content for UMG Paper 2d Atlas test Change 3042780 on 2016/07/08 by mitchell.wilson Updating UMG_Paper2d test content for UMG Paper 2d Atlas testing Change 3042870 on 2016/07/08 by mitchell.wilson Renaming UMG_Paper2d to UMG_Sprite Change 3044104 on 2016/07/10 by Nick.Darnell PR #2104: Improved widget input support (Contributed by projectgheist) Change 3044107 on 2016/07/10 by Nick.Darnell Slate - Fixing the slider handle rendering to no longer run off the edge and get cut off. #jira UE-25750 Change 3044377 on 2016/07/11 by Chris.Wood Add Slack messaging module - Epic Friday Change 3044536 on 2016/07/11 by Alex.Delesky #jira UE-7293 - Mouse locking to viewport is now determined off an enum instead of a boolean, to allow for more flexibility when upgrading with new features. Change 3044922 on 2016/07/11 by Nick.Darnell Slate/UMG - Working on better support for VR interactions with Slate widgets. This change fixes a lot of issues with the way interaction works with slate widgets rendered in the virtual world. Breakages, direct mouse interaction with widgets in the virtual world is no longer supported. Those kinds of interactions must all use the WidgetInteractionComponent now, which by default works similar to the lasers in VREditor for interaction. However - you can disable automatic hittesting, and instead provide a custom hitresult instead if you want to use screen tracing and act like you're just a mouse cursor that is supported. Menu anchors now properly function inside of widgets in the virtual world. Performance improvements - the viewport no longer arranges all 3d widgets every frame. Additionally, Widget Components now support a whole bunch of methods for reducing how often they redraw to help control performance, they also support manual refresh. This automatically works in tandem with the widget interaction component to request refresh whenever the widget interaction component is interacting with the widget, thus giving you a simple way to only redraw widgets that the user is hovering on top of. Unrelated - this change also fixes Stop navigation commands not working with Next/Prev navigation - Wrap is still unsupported. Change 3045157 on 2016/07/11 by Nick.Darnell Slate - Always consume the bottom face button of the analog cursor, even if it's a repeat. Change 3045355 on 2016/07/11 by Matt.Kuhlenschmidt Added logging for unreproducible top 10 crash in matinee when a track ends up not being able to add a keyframe Change 3045358 on 2016/07/11 by Alex.Delesky #jira UE-31179 - The editor should now log additional information and hit an assertion if the editor tries to construct FObjectOrAssetData using invalid data. This doesn't stop the crash, but should help get some extra info when it does break. Change 3045371 on 2016/07/11 by Matt.Kuhlenschmidt Enable the widget reflector from the editor console by typing "widgetreflector" Change 3045387 on 2016/07/11 by Stephan.Jiang Stripping off 'b' in the propertyname so that "Is Enabled" is animated properly. #UE-31874 Change 3046093 on 2016/07/12 by Nick.Darnell UMG - The Slider now exposes the IsFocusable option from Slate. #jira UE-32960 Change 3046094 on 2016/07/12 by Alexis.Matte #jira UE-32807 scene re-import blueprint hierarchy kept some part of old blueprint component value. Change 3046104 on 2016/07/12 by Stephan.Jiang typo "Syc" causing the "Sync" button doesn't show Slateicon #UE-31409 Change 3046142 on 2016/07/12 by Nick.Darnell Orion - Upgrading more code to use the new input mode functions and not the deprecated ones. Change 3046165 on 2016/07/12 by Nick.Darnell UMG - Fixing a crash on the widget component if the render target is null when reapplied through widget component data. #jira UE-32844 Change 3046255 on 2016/07/12 by Nick.Darnell UT - More build warning fixes for the new Input Mode methods. Change 3046604 on 2016/07/12 by Richard.Hinckley Adding a template file and code to support creating a UInterface directly from the New C++ Class wizard. Change 3047071 on 2016/07/12 by Matt.Kuhlenschmidt Better way of summoning the widget reflector from the console Change 3047842 on 2016/07/13 by Matt.Kuhlenschmidt Mark Subdivision surface setting as advanced since it is experimental and definitely for advanced users only Change 3048754 on 2016/07/13 by Trung.Le #jira UE-32159 Automatically regain focus after user gets mouse control during PIE session so we can continue process PIE keybinding commands Change 3048756 on 2016/07/13 by Trung.Le Removed default toggle pause/play keybinding from BaseInput.ini, instead we should use the action defined in DebuggerCommands that is customizable Change 3048865 on 2016/07/13 by Trung.Le #jira UE-32159 SGlobalPlayWorldActions widget shouldn't clear out active widget pointer when it's being handled properly Change 3048892 on 2016/07/13 by Nick.Darnell UMG - Fixing a problem with the interaction component, it now does some basic intelligent ignoring of anything it's attached to - excluding widget components. So it's easier to attach it to things that might be inside of a say a player collision capsule. Also removing the 'Max Interaction Distance' from the widget component as that is no longer the arbitor of interaction distance. #jira UE-33250 Change 3049096 on 2016/07/13 by Trung.Le Wrap SGlobalPlayActions around ViewportWidget instead of making it a child of ViewportWidget. This was causing PIE to stop working when there are other UMG in game. #jira UE-33259 Change 3049177 on 2016/07/13 by Stephan.Jiang Fixing the "No Animation Selected" tag shows up after switching back from Graph to Designer. #UE-33016 Change 3049726 on 2016/07/14 by Stephan.Jiang Adding icons for terrain mirror tool #UE-20588 Change 3049957 on 2016/07/14 by Nick.Darnell Slate - Fixing a small bug in the virtual user function - was preventing getting the same virtual user multiple times if it had already been created. Adding an option to the widget component to control the focusabilty of the underlying slate window that's created to host the widget content. Adding an option to the widget interaction component to control if it should be simulating mouse input at all - use this to effectively disable hit testing, and changing hover states and the like. Change 3049994 on 2016/07/14 by Stephan.Jiang Set viewed animtion to current animtion after switching from Graph to Designer (This is for "No Animation Selected" showing up when switching) #UE-33016 Change 3050194 on 2016/07/14 by Stephan.Jiang Added ability to replace the widget the track is currently bound to Also includes changes in WidgetBlueprintEditor to send delegate to AnimationtabSummoner when switching from Graph to Designer #UE-31809 [CL 3050870 by Matt Kuhlenschmidt in Main branch]
2016-07-14 19:07:16 -04:00
if(Actor->IsSelected())
{
SetPivotLocation(Actor->GetActorLocation(), false);
// If this actor wasn't part of the original selection set during pie/sie, clear it now
if(GEditor->ActorsThatWereSelected.Num() > 0)
{
AActor* EditorActor = EditorUtilities::GetEditorWorldCounterpartActor(Actor);
if(!EditorActor || !GEditor->ActorsThatWereSelected.Contains(EditorActor))
{
GEditor->ActorsThatWereSelected.Empty();
}
}
}
else if(GEditor->ActorsThatWereSelected.Num() > 0)
{
// Clear the selection set
GEditor->ActorsThatWereSelected.Empty();
}
}
}
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3050373) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2973846 on 2016/05/11 by Jamie.Dale Exposed FConfigValue::ExpandValue and added FConfigValue::CollapseValue These are both static and can be used to expand or collapse the macros used in our config files (mostly when dealing with paths), in code that has to deal with the config system, but isn't internal to the config system (mostly things that deal with default configs outside of UObjects). The old non-static version of FConfigValue::ExpandValue is now FConfigValue::ExpandValueInternal, which just calls FConfigValue::ExpandValue on SavedValue and ExpandedValue. This also changes some code that was using FString.Replace to use FString.ReplaceInline. This reduces allocations, and also allows us to avoid another string comparison to see whether the strings are identical (as ReplaceInline returns the number of replacements that were made). Change 2973847 on 2016/05/11 by Jamie.Dale Changing the loading phase in the localization dashboard now writes to the default config #jira UE-30482 Change 2973866 on 2016/05/11 by Jamie.Dale Deprecated some functions that were taking an unused position. These unused parameters caused confusion and lead to UE-30276. The old versions have been deprecated, and new versions without those parameters have been added. Existing code has been updated to call the non-deprecated version. - FViewportFrame::ResizeFrame - FSceneViewport::ResizeFrame - FSceneViewport::ResizeViewport Change 2974505 on 2016/05/11 by Nick.Darnell PR #2309: Added Combobox styling (Contributed by Chris528) Change 2975241 on 2016/05/12 by Richard.TalbotWatkin Made sRGB Preview the default in the Color Picker. Change 2975390 on 2016/05/12 by Jamie.Dale Made sure that en-US-POSIX is in our list of available cultures Some people use machine tags as their native text, so they need an invariant machine like culture to use as their native culture. en-US-POSIX is perfect for this. Change 2975411 on 2016/05/12 by Jamie.Dale PR #2237: Fixed formatting of Error_TooManyMaterials message (Contributed by pfranz) Change 2975559 on 2016/05/12 by Jamie.Dale Dialogue Wave VO direction can now be localized This is gathered as editor-only data. #jira UE-28715 Change 2975710 on 2016/05/12 by Jamie.Dale Implemented UObject::IsLocalizedResource to test whether the object belongs to a localized package Change 2975728 on 2016/05/12 by Jamie.Dale Exported dialogue scripts now include a column that says whether they have a localized recording of that line of dialogue #jira UETOOL-794 Change 2975763 on 2016/05/12 by Jamie.Dale We no longer warn if asked to check out a UNC path when running the GatherText commandlets #jira UE-25833 Change 2975766 on 2016/05/12 by Jamie.Dale Resolved some loc key conflicts #jira UE-25833 Change 2975774 on 2016/05/12 by Jamie.Dale PO files now only contain a single entry in the case of a native translation being exported They used to contain the original entry, as well as an entry for the native translation, however the original entry would never be used. This change also cleans up some directory walking code that was looking for archive files, and replaces it with code to load the specific archive file. Change 2975776 on 2016/05/12 by Jamie.Dale Downgraded a PO file import warning that isn't really an issue #jira UE-25833 Change 2976675 on 2016/05/13 by Jamie.Dale Fixed some more fallout from changes to use the window position when changing the game viewport mode - FSceneViewport::ResizeFrame: - Fixed the HMD monitor info setting the wrong variables. - Fixed SetWindowMode and ResizeViewport potentially being passed two different modes. - We now only move the window if we need to (this avoids issues with WindowedFullscreen window positioning). - FWindowsWindow::MoveWindowTo: - Now treats the screen space position it's given as relative to the top-left of the window, rather than the top-left of the windows' client area. - FWindowsApplication: - WM_MOVE was passing a screen space position relative to the top-left of the windows' client area, rather than its window area like Slate expected. #jira UE-30276 #jira UE-30677 Change 2976804 on 2016/05/13 by Jamie.Dale Slight optimization to FICUInternationalization::FindOrMakeCulture to avoid hitting the filesystem until we know we need to Change 2976967 on 2016/05/13 by Alexis.Matte #jira UE-30687 Cannot import a skeletal mesh scale to zero Change 2977042 on 2016/05/13 by Alexis.Matte #jira UE-29952 log a warning if fbx exceed the maximum number of LOD. #2326 Github PR #code review matt.kuhlenschmidt Change 2977074 on 2016/05/13 by Jamie.Dale Follow up to CL# 2976804 to avoid a potential change in behavior Change 2977076 on 2016/05/13 by Jamie.Dale Some tidy up and optimization to SCulturePicker Change 2977327 on 2016/05/13 by Alex.Delesky Now deleting the Redirector package on Redirector Fix Up rather than simply removing it from the Content Browser. #jira UE-30423 Change 2977499 on 2016/05/13 by Alexis.Matte #jira UE-29475 Enable UStruct child property to be favorite Change 2978415 on 2016/05/16 by Jamie.Dale We now pre-load all the culture data when starting the editor to avoid a UI hitch later Change 2978517 on 2016/05/16 by Alex.Delesky #jira UE-29406 Creating a static mesh from a geometry brush and then attempting to reimport the mesh will no longer crash the editor. Change 2978518 on 2016/05/16 by Alex.Delesky #jira UE-28210 The FBX Importer no longer runs cleanup upon failing to import an FBX file and won't crash the engine the next time an FBX is imported within the same editor session. Change 2978556 on 2016/05/16 by Alexis.Matte Fbx tests automation #jira UE-29635 Change 2978797 on 2016/05/16 by Alexis.Matte #jira UE-30774 - prevent baking the pivot if we transform the vertex with the absolute transform. - Also make sure we set the identity for the Max puivot in case we dont bake the pivot and we dont transform the vertex with the absolute transform. #code review matt.kuhlenschmidt Change 2978965 on 2016/05/16 by Alexis.Matte FBX importer, fix the socket rotation. #jira UE-30094 Change 2980613 on 2016/05/17 by Jamie.Dale Moved the XLOC UAT localization provider to be publicly accessible Change 2980614 on 2016/05/17 by Jamie.Dale Reference update for project move Change 2980633 on 2016/05/17 by Jamie.Dale Made the culture mapping used between XLOC and UE4 configurable on a per-project basis You can now override GetEpicCultureToXLocLanguageId in your custom localization provider in order to change the default mappings. Change 2980836 on 2016/05/17 by Jamie.Dale Added -LocalizationSteps flag to allow you to only run a subset of the UAT "Localise" command You can pass any of the following steps: Download, Gather, Import, Export, Compile, GenerateReports, Upload Change 2982700 on 2016/05/18 by Jamie.Dale Fixed the loc package gather potentially adding the same source location multiple times Change 2983906 on 2016/05/19 by Jamie.Dale Slight cleanup of the way we register localization gatherer callbacks Change 2984356 on 2016/05/19 by Chris.Wood Removed temporary analytics API change needed for earlier hot fix [UE-31005] - Undo temp Hardware Survey API change from 4.10 - CL 2782817 Change 2986679 on 2016/05/23 by Alex.Delesky #jira UE-24747 - Importing FBX files that contain meshes that do not have non-degenerate triangles will no longer crash the editor on import, and will warn the user that the meshes are bad. Change 2986798 on 2016/05/23 by Alex.Delesky #jira UE-31136 - Chord Input fields will no longer display the blinking edit cursor if they do not have focus. Change 2987106 on 2016/05/23 by Alexis.Matte Fbx importer, fail import must not create a package in the content browser #jira UE-31154 Change 2987563 on 2016/05/23 by Alex.Delesky #jira UE-30988 - Changed the default window mode when launching a game from the .uproject file to Windowed Change 2987564 on 2016/05/23 by Alex.Delesky #jira UE-28856 - Fixed a crash that could potentially occur when starting up PIE while dragging objects like widgets in the editor. Change 2988321 on 2016/05/24 by Jamie.Dale Added a way to backup and restore the selection state of a level (its actors and components) in a way that can be reapplied even if the level is reloaded Change 2988708 on 2016/05/24 by Jamie.Dale Fix for crash when missing the fallback/last resort font Change 2988782 on 2016/05/24 by Jamie.Dale Added the ability to version each localized string individually when loaded into the localization manager The single 32-bit global history has now been replaced with two 16-bit histories. One is global, and is updated whenever the culture is changed (or a LocRes file is loaded), and the other is local to each string, and is updated if the display string is changed outside of a culture update (to handle cases where the display string is changed, but the key is preserved). Changing the global history will reset all local histories. Because of the change from an int32 to a uint16, 0, rather than INDEX_NONE, is now considered the "unset" value for a history. Change 2988856 on 2016/05/24 by Jamie.Dale Added a way to get the package(s) of the object(s) being edited by a property panel Typically the package is just the outermost of the object being edited, however there are some cases where this may not be the case: - UMG widgets edit a transient copy of the real data, so we use the SetObjectPackageOverrides to override the package these objects should use to be the real asset package. - Structs (UDS, Data Table, etc) don't have a way to get to their package, so you have to specify it on their FStructOnScope instance (see FStructOnScope::GetPackage and FStructOnScope::SetPackage). This has been hooked up for the UDS and Data Table editors. Change 2988955 on 2016/05/24 by Alex.Delesky #jira UE-30645 - Adding in support for splash images to support .png and .jpg files. In general, this adds multi-extension support for external image references and external image picker modules. Git Request #2376 Change 2989418 on 2016/05/25 by Jamie.Dale Added a way to count text references within a package that match the given search criteria This can be used to detect whether a localization ID is unique within its package. The following search modes are available: - MatchId: Detect a reference if it matches the given ID (ignoring the source text) - MatchSource: Detect a reference if it matches the given ID and source string - MismatchSource: Detect a reference if it matches the given ID but has a different source string Change 2989436 on 2016/05/25 by Jamie.Dale Added "root-level" meta-data (meta-data associated with the package rather than an object within it) Change 2989471 on 2016/05/25 by Alexis.Matte Fbx scene importer, fix naming clash when creating package we now also look in memory to find existing package not just on disk Change 2989639 on 2016/05/25 by Jamie.Dale Added static version of FName::IsValidXName This allows you to verify name-like strings without having to convert them to an FName (and thus add them to the name table) Change 2989716 on 2016/05/25 by Alex.Delesky #jira UE-30828 - The Standalone Session Frontend will now render the names of automation tests correctly instead of as solid white blocks. Change 2990100 on 2016/05/25 by Alexis.Matte Fix crash when reimporting a mesh that originaly exceed the maximum number of LOD #jira UE-30907 Change 2991442 on 2016/05/26 by Bob.Tellez #UE4 Fix components in world not rendering when saved without a physics scene. Change 2991736 on 2016/05/26 by Bob.Tellez #UE4 Fix duplicated worlds not being initialized when inactive. Re-enabled duplication of worlds in the content browser. Change 2991942 on 2016/05/26 by Alex.Delesky #jira UE-31012 - Setting a Decimal Grid Interval value to 0 and using it will no longer crash the editor or cause an editor crash on startup. Change 2991994 on 2016/05/26 by Alex.Delesky #jira UE-31177 - Attempting to export an entire level as an object file and choosing to export all materials as images will no longer crash the editor. Change 2994037 on 2016/05/30 by Alexis.Matte Add Fbx Automation Tests - static mesh import reimport (sections and materials) - skeletal mesh import and reimport (sections and materials also bone position) - static/skeletal mesh LODs (import, add, reimport) - rigid mesh (import, reimport) Change 2994253 on 2016/05/31 by Alexis.Matte Mikkt crash when computing the normals if there is more vertex then the number of wedge #jira UE-29143 Change 2994260 on 2016/05/31 by Alexis.Matte Make sure we cannot modify fbx test plan when json file is read only Change 2994431 on 2016/05/31 by Alex.Delesky #jira UE-21900 - The scale widget should now render all axes when using an orthographic camera. Change 2994432 on 2016/05/31 by Alex.Delesky #jira UE-31328 - New objects dragged into the scene will now comply with the Surface Snapping option in the viewport, and will not use the Surface Offset if snapping is disabled. Change 2994537 on 2016/05/31 by Richard.TalbotWatkin Fixed potential crash in the Mesh Paint tool when non-transactable actors are in the SelectedActors list following a Redo. #jira UE-31172 - Crash related to Vertex Painting - MeshPaint!CastChecked<AActor,UObject>() Change 2994983 on 2016/05/31 by Richard.TalbotWatkin Added some guard code to protect against a crash when editing geometry. Repro currently unknown, ensure was added in order to try to get more information. #jira UE-30820 - UT EDITOR: CRASH: Crash in Public Release CL#2973693 Change 2995022 on 2016/05/31 by Jamie.Dale PR #2428: Added missing END_OPTIMIZATION macro to SOutputLog (Contributed by MatzeOGH) Change 2995027 on 2016/05/31 by Jamie.Dale PR #2409: fixed a small typo in GraphEditor.h (Contributed by MatzeOGH) Change 2995963 on 2016/06/01 by Alex.Delesky #jira UE-31317 - The transform gizmo will no longer block the placement of a material onto a mesh. Change 2997002 on 2016/06/01 by Cody.Albert Fix to ensure ActiveTopLevelWindow is properly set after a window is destroyed #jira UE-31448 Change 2998013 on 2016/06/02 by Alexis.Matte Prevent static mesh materials array to grow when using the reset button in the staticmesh editor. #jira UE-12931 Change 2998370 on 2016/06/02 by Alexis.Matte Fbx Automation, add some import LOD test in case the options are not ok Change 2999709 on 2016/06/03 by Jamie.Dale Fixed some issues with gathering text from BP bytecode Bytecode in Blueprints is very volatile, and can only be safely gathered after it's been compiled (which is not guaranteed to have happened by the time we save the package). This change avoids caching any assets that contain scripts (non-data-only Blueprints), and instead will always load them to perform a gather (which will ensure the Blueprint bytecode is up-to-date due to compile-on-load). Change 2999755 on 2016/06/03 by Richard.TalbotWatkin Fixes to Spline Mesh collision generation. - Fixed a serious issue with DDC ID generation, in that the static mesh wasn't forming a part of the key, hence any two spline meshes with identical properties but different meshes would yield the same cache entry. - Fixed how different collision boxes are transformed when rebuilding physics meshes. Convex collision transforms are now correctly taken into account, and spherical and capsule collision now gets correctly translated when a scale is applied to the start or end of the spline mesh. - Optimized physics rebuilding. A new BodySetup object is now only created when needed, otherwise it is reused. #jira UE-31361 - Splines handle box collision and collision from other shapes differently Change 2999973 on 2016/06/03 by Jamie.Dale We now skip bulk data when detecting text references #jira UE-31596 Change 3000159 on 2016/06/03 by Alex.Delesky #jira UE-30244 - Added a safeguard against a potential crash when editing BSP brushes before placing another BSP brush into the level. Change 3001814 on 2016/06/06 by Alexis.Matte Make sure the staticmesh Materials list dont grow when we reimport or override a LOD other then the base mesh. Add a fbx test to make sure the problem is flag by automation test #jira UE-1394 Change 3001820 on 2016/06/06 by Alex.Delesky #jira UE-19079 - Widget Blueprints should no longer crash when dragging widgets from one blueprint to a second and then compiling the second blueprint. Change 3001915 on 2016/06/06 by Alexis.Matte Make sure we check attribute type before checking attribute unique ID in case of unique id clash. #jira UE-31214 Change 3002026 on 2016/06/06 by Alexis.Matte Importing morph target should not import textures like materials since the base mesh already import thoses. UDN Question: https://udn.unrealengine.com/questions/293973/does-importing-an-fbx-with-morph-targets-cause-a-m.html Change 3002623 on 2016/06/06 by Jamie.Dale Fixing more loc conflicts Change 3002883 on 2016/06/06 by Jamie.Dale Adding retry when dealing with OneSky This is attempting to compensate for some timeouts with OneSky, which were also noticed when testing UE-31413 Change 3003004 on 2016/06/06 by Trung.Le #jira UE-13101 - Make "Description" field for a BluePrint Function multiline Change 3003859 on 2016/06/07 by Alexis.Matte #jira UE-30436 Refresh the property editor when a array element is added, remove, insert, delete and the property is favorite Change 3004132 on 2016/06/07 by Jamie.Dale Fixed a hash conflict that could occur when both the case-sensitive and case-insensitive FName hashes were identical This resulted in the case-preserving FName being added to the head of the linked list for the bucket, which caused any subsequent name lookups to return that name index for the comparison index (since it matched an insensitive string comparison), rather than the name index of the first case-variant of that name that was added to the bucket. This change has new entries be inserted at the tail of the list, which ensures that enumeration for a case-insensitive name will always find the same entry in the bucket (the first one that was ever added) and will continue to compare correctly. Change 3004286 on 2016/06/07 by Jamie.Dale Ensured that assignments that publish new names to the bucket are atomic Change 3004310 on 2016/06/07 by Jamie.Dale Ensured FName internal hashes are returned as uint16 Change 3004381 on 2016/06/07 by Jamie.Dale FAsyncPackage now creates the meta-data before processing the remaining exports This matches the behavior of FLinkerLoad::LoadAllObjects, as other objects may depend on the meta-data being loaded before them. Change 3004765 on 2016/06/07 by Alex.Delesky #jira UE-31498 - Material thumbnails will now render the full sphere rather than an extreme close-up of the material. Change 3005754 on 2016/06/08 by Trung.Le Allow whitespace for meta class names #jira UE-31668 Change 3005755 on 2016/06/08 by Stephan.Jiang UMGSequencePlayer implements GetPlaybackContext() and return UserWidget->GetWorld() if it's valid #jira UE-31299 Change 3006512 on 2016/06/08 by Alex.Delesky #jira UE-31572 - The "All Classes" tab in the Modes panel will now refresh when a placeable asset is created, renamed, or deleted without needed to navigate away from the tab first. Change 3006760 on 2016/06/08 by Jamie.Dale Added support for stable localization keys This feature adds support for preserving the existing key of an FText property when editing the source string, providing that it is the only reference to that string within the package. A side effect of this is that you're now able to specify custom keys for FText properties since we can now verify that the custom key won't cause an identity conflict. In order to limit the search domain for uniqueness to a single package, we've added the concept of a "localization namespace" to packages (stored in the meta-data). Each package is given a unique namespace, which is appended to the user-defined namespace of the text when it is modified, saved, or duplicated. This package namespace ensures that the same user-defined namespace and key may be used in different packages without causing an identity conflict. In order to access the package namespace within the Core code that hosts FText (which doesn't know about UPackage), FArchive now provides a GetLocalizationNamespace function to access the package namespace within the Core code, and a SetLocalizationNamespace function for CoreUObject and Engine code to pass down the package namespace from their packages. If you have an archive that handles duplicating objects into a different package, or duplicating packages themselves, then you'll want to make sure it's setting the package namespace correctly. FObjectReader and FObjectWriter have been updated to do this, and serve as a good example. FDuplicateDataReader (used by StaticDuplicateObject), and FCopyPropertiesArchiveObjectWriter (used when compiling Blueprints) have also been updated to set the package namespace, as they both handle copying objects between packages. TextNamespaceUtil provides a suite of functions for getting at (or setting) the namespace for a package. Keys will start to stabilize naturally over time once this feature is enabled, however the StabilizeLocalizationKeys commandlet may also be used to stabilize all the keys for a game at once. Running it for a game under source control would look something like this: MyGame -run=StabilizeLocalizationKeys -IncludeGame -NativeCulture=en -EnableSCC This commandlet also updates your localization archives to use the new text identities, however you'll still need to run a localization gather and localization compile before the updated translations will be available for your game. Note: This feature is currently disabled via the USE_STABLE_LOCALIZATION_KEYS define. It will be enabled at a later date. #jira UETOOL-796 Change 3007501 on 2016/06/09 by Trung.Le #jira UE-31722 Fix MaterialFunctions crash when editing text in Libraries Category Text field. Solution: Removed PredEdit and PostEdit from IEditableTextProperty, its derived types and other code that was calling them. The new SetText method already calls NotifyPreChange and NotifyPostChange to properly create/destroy ScopedTransaction. Change 3007524 on 2016/06/09 by Jamie.Dale Added some additional checks to avoid re-keying text when duplicating for PIE Change 3007564 on 2016/06/09 by Jamie.Dale PR #2401: DataTable import/export improvements (Contributed by bozaro) Change 3007653 on 2016/06/09 by Jamie.Dale PR #2459: Generate JSON for nested structs in DataTable rows (Contributed by jorgenpt) Change 3008019 on 2016/06/09 by Jamie.Dale Updated structs to export as JSON when displaying them in the Data Table editor This produces much cleaner results than using the text export method (which will use the internal names for user defined structs). This also cleans up the FDataTableExporterCSV and FDataTableExporterJSON APIs so that you don't need to pass in a UDataTable if you're not going to use it. #jira UE-29958 Change 3008052 on 2016/06/09 by Jamie.Dale Fixed bug importing an array inside a JSON Data Table This was noticed when testing a GitHub PR, but the JSON importer for a Data Table was appending the new data to the array rather than replacing it. It now clears the array prior to importing. Change 3008875 on 2016/06/10 by Jamie.Dale PR #2406: Git plugin: Fix for Git diff not working in UE 4.12 (and master) (Contributed by SRombauts) Change 3008879 on 2016/06/10 by Jamie.Dale PR #2484: Git Plugin: fix the Submit To Source Control menu broken by new "migrate" support in 4.12 (and master) (Contributed by SRombauts) Change 3008990 on 2016/06/10 by Alex.Delesky #jira UE-15699 - Submitting to source control via the editor should now check for current asset status before prompting the user to submit their changes. This should prevent files that had been previously deleted from being readded to source. Change 3008991 on 2016/06/10 by Alex.Delesky #jira UE-31688 - The Output Log will now automatically anchor to the bottom of the scroll bar when the user scrolls all the way down using the mouse wheel or clicking and dragging the content window. Change 3010856 on 2016/06/13 by Alexis.Matte #jira UE-31713 Fix a serialize issue for skeletal mesh with apex cloth. Change 3011736 on 2016/06/13 by Jamie.Dale Adding missing plurals.res file This is needed to get plural form information from ICU. #jira UETOOL-875 Change 3012387 on 2016/06/14 by Richard.TalbotWatkin Disabled the Paste context menu action if the property is marked as EditConst. #jira UE-27469 - User is able to paste values into a read-only setting Change 3012971 on 2016/06/14 by Stephan.Jiang Editor Preferences->Widget Designer now have two options to toggle the visibilities of widgets created from Engine content folder and Developers folder. By default, visibility for engine content is off and developers is on #jira UE-31657 Change 3013111 on 2016/06/14 by Jamie.Dale Unified the number, percentage, and currency formatting between the ICU and Legacy text implementations Removed all the old legacy number formatting code, and removed the calls to the ICU specific number formatting. Everything is now using FastDecimalFormat as this will allow some optimizations later when formatting numbers in FText::Format. Change 3015438 on 2016/06/15 by Cody.Albert Fixing ScrollBy function to calculate new scroll offset based on the current scroll offset and not the current desired scroll offset (which may not be the same during an animation) #jira UE-32082 Change 3016782 on 2016/06/16 by Richard.TalbotWatkin Corrected ConvexHull2D so that it returns an empty set of indices when passed an empty points array. Change 3016949 on 2016/06/16 by Jamie.Dale Added FastDecimalFormat overloads to write into an existing string This helps avoid an extra allocation if you already have a pre-sized string that you're writing the number to (as is the case in FText::Format). Change 3016952 on 2016/06/16 by Jamie.Dale Changed an Add for an Emplace to avoid moving a temporary Change 3016954 on 2016/06/16 by Jamie.Dale Updated some FText code to avoid creating temporary objects just to move data through a hierarchy There was some code in FText and its internal types that were using pass-by-value as a marshaller to move data through a hierarchy. This resulted in temporary objects being created and destroyed to facilitate the movement of data. This change has all the internal FText code (private FText constructors, internal text data, and internal text history) take its movable types as an r-value reference. This avoids the temporary objects, but also makes it impossible to accidentally copy a construction argument when you meant to move it (you can still copy, but the copy must be explicit). In addition to this, FText::FromString and FText::AsCultureInvariant now have two overloads, const FString& and FString&&, to avoid them creating a temporary when you're invoking a move. FText::ChangeKey now takes its parameters by const& as their data wasn't being moved further down the chain, so the by-value copy was wasteful. Change 3019021 on 2016/06/19 by Richard.TalbotWatkin When deleting a brush, ensure geometry is rebuilt before updating the details panel according to the selection change, so that the old Surface Properties don't continue to appear. #jira UE-8966 - Surface Properties of a BSP remain in the details panel after the BSP is deleted Change 3019022 on 2016/06/19 by Richard.TalbotWatkin Fixed issue where the Surface Properties category in the Details panel doesn't appear after selecting a surface on a Brush which has just been placed. #jira UE-31916 - Selecting an edge of BSP geometry then a face does not show Surface Properties while in Place mode #jira UE-31915 - Selecting BSP face does not show Surface Properties in Details Change 3019025 on 2016/06/19 by Richard.TalbotWatkin Fixed issue which was stopping 'Cancel' from correctly returning a 'Cancelled' result during P4 asynchronous ops. #jira UE-28595 - Submit to Source Control: "Checking for assets to check in..." cancel button does not cancel operation, editor becomes unresponsive Change 3020050 on 2016/06/20 by Cody.Albert Changed window centering logic to correctly work when monitor 1 isn't set to primary monitor. #jira UE-32173 Change 3021145 on 2016/06/21 by Jamie.Dale Added support for text format argument modifiers These can be used to mutate a format argument before appending it to the resultant formatted string, and are applied to the preceding argument via a pipe, eg) "{Arg}|plural(one=is,other=are)". We provide a few of these by default: - |plural(key=val,...) - |ordinal(key=val,...) Provides support for cardinal and ordinal plural forms, where key may be any of "one", "two", "few", "many", or "other", and val may be any optionally quoted string. - |gender(masculine,feminine,[neuter]) Provides support for gender forms, where the 0th item is the masculine version, the 1st item is the feminine version, and the 2nd item is an optional neuter version. The values may be any optionally quoted string. - |hpp(consonant,vowel) Provides support for Hangul post-positions, where the 0th item is the consonant suffix, and the 1st item is the verb suffix. The values may be any optionally quoted string. Major changes: - Exposed the ICU plural form handling via FCulture::GetPluralForm. - Updated the FText formatting code to use an expression evaluator (to support the more complex expressions needed for the argument modifiers). - Added FTextFormat to store a pre-compiled format expression. Re-using one of these if you're performing a lot of formats with the same FText will increase your performance (as around half of the FText::Format cost can be compilation, via an implicit construction of FTextFormat). - Updated the FText::Format(...) family of functions to take their format string as FTextFormat, and take their arguments as FFormatArgumentValue. This allows us access to the real numeric types within the format code, but doesn't break the existing API as these types are implicitly constructible from the old parameters (FText). - Converted text history to store their format string as an FTextFormat in-case they need to perform a re-format (this is still saved as an FText). Breaking changes: - The rules for the escape token have been simplified, and there is an incredibly unlikely chance that this may affect some text: - The ` character will now only escape a valid character (producing only the escaped character in the final string), or it will be ignored and inserted as a literal character, eg) "`{F" -> "{F", and "`F" -> "`F". - Previously it would also remove the escape character when it followed { or }, eg) "{`" -> "{" and "}`" -> "}", rather than "{`" and "}`" like you might expect. It would also have previously removed a ` at the end of a string due to a parser bug. Change 3021156 on 2016/06/21 by Jamie.Dale Updated LinuxToolChain to use the same output delegate for all of its actions when cross-compiling This avoids the compile and link actions being split into different batches. Change 3021280 on 2016/06/21 by Richard.TalbotWatkin Fixed bug in parsing LOD in UStaticMeshComponent::ImportCustomProperties (thanks to Aurelien Cordonnier). #jira UE-31937 - UDN code submission for UStaticMeshComponent::ImportCustomProperties parsing bug Change 3022949 on 2016/06/22 by Alex.Delesky #jira UE-31944 - Upgrading Subversion binaries to version 1.9.4. Change 3023092 on 2016/06/22 by Jamie.Dale Downgraded some checks to ensures and added an early out #jira UE-32009 Change 3023154 on 2016/06/22 by Jamie.Dale Ported over CL# 3018771 to the UE automation This fixes an issue where a downloaded PO file smaller than the one already on disk leaving a mix of both files on disk (rather than the existing file on disk being truncated). Change 3023579 on 2016/06/22 by Jamie.Dale Expanded the Blueprint FormatText node to support numeric and gender types These are needed to correctly support the new plural and gender forms that can be used in format strings, as these require actual numeric/enum data to be passed into the format arguments, rather than pre-formatted text. Major changes: - The FormatText node for Blueprints now uses PC_Wildcard as its pin type for format arguments instead of PC_Text. - Any existing literal text argument data in the pin is hoisted out into a "Make Literal Text" node which is then connected to the pin. - FFormatArgumentData has been updated to be variant on the data needed by Blueprints. It's now a less comprehensive and non-unioned version of FFormatArgumentValue. - The version of FText::Format taking FFormatArgumentData has been deprecated as its usage was internal to Blueprints and we have much better ways to format text in C++. Any existing C++ using that (of which we have none internally) should be updated to use FFormatArgumentValue instead. Change 3023915 on 2016/06/22 by Jamie.Dale Cleaned up some of the UK2Node_FormatText expansion code to avoid unchecked literals Change 3024813 on 2016/06/23 by Jamie.Dale Renamed FContext to FManifestContext to better reflect its purpose and avoid naming conflicts with other code Change 3024852 on 2016/06/23 by Nick.Darnell FBX - Updating automation tests with the changes to chunk and chunk index removal and them being merged with sections. Change 3024994 on 2016/06/23 by Nick.Darnell UMG - Removing the DesignerWidgetTree, instead going to directly inject the widget tree into the partially constructed UUserWidget during design time, when refreshing the preview. This avoids doing something a little dangerous and sketchy like updating the living class instance with a new designer tree that all new instances will begin biasing using. Also making the preview widget explictly non-transactional as there's no reason to track changes to the preview, all the changes that need to be tracked should be on the template widget. This should fix the crash in the widget designer when you Undo just after compiling the widget blueprint. #jira UE-31155 Change 3025194 on 2016/06/23 by Alex.Delesky #jira UE-31155 - Compilation error fix. Change 3025255 on 2016/06/23 by Alex.Delesky #jira UE-21900 - Redoing changes done in CL 2994431 since it got stomped. Reinstates the grabber handles and ensures consistent scaling on the scale widget in orthographic viewports. Change 3025460 on 2016/06/23 by Cody.Albert Fixed issue where widget components would misalign when aspect ratio was being constrained #jira UE-29637 Change 3025508 on 2016/06/23 by Cody.Albert Adding support for adjusting animation playback speed #jira UE-32222 Change 3026444 on 2016/06/24 by Jamie.Dale Fixed crash caused by bad access of shared this when closing an active IME context This was only needed to get the owner window, which we now cache when the IME context is created. #jira UE-32240 Change 3028358 on 2016/06/27 by Jamie.Dale Fixed IMEs not working due to no window being cached #jira UE-32240 Change 3028464 on 2016/06/27 by Alex.Delesky #jira UE-31873 - A single "Files need check-out" notification will now be shown instead of multiple notifications if multiple files need to be checked out, and updated as more files need to be checked out. Change 3028524 on 2016/06/27 by Chris.Wood Switched off uploads to legacy Crash Report Receiver. [UE-31252] - Switch off deprecated CRR upload in Crash Report Client Also added CRC version string, added to crash context from CRC config Change 3028840 on 2016/06/27 by Alexis.Matte #jira UE-32306 replace material bad name character by an underscore when doing a scen import. Change 3028924 on 2016/06/27 by Alexis.Matte #jira UE-32125 Make sure we can add a plan when a fbx file is drop in the fbx automation test folder Change 3029044 on 2016/06/27 by Alex.Delesky #jira UE-31944 - Updating SVN binaries for Mac to 1.9.4 Change 3029276 on 2016/06/27 by Alex.Delesky #jira UE-31531 - A user can now select the base class when creating a new physical material. PR #2462: added dialog, which enables picking base class for asset (Contributed by iniside) Change 3029459 on 2016/06/27 by Alexis.Matte #jira UE-32354 Make sure we set all blueprint component to the correct mobility set in the scene import options. Change 3030577 on 2016/06/28 by Nick.Darnell PR #2531: Git plugin: fix wrong status icons (Contributed by SRombauts) Change 3030587 on 2016/06/28 by Alexis.Matte #jira UE-32251 add missing body setup variables when restoring the body setup value after a re-import of a staticmesh Change 3030946 on 2016/06/28 by Alexis.Matte #jira UE-32515 prevent crash when re-import staticmesh userdata Change 3031115 on 2016/06/28 by Jamie.Dale The DDC builder now gives the shader compile worker a chance to catch up when it pauses to run a GC pass This prevents an issue where the shader backlog could cause massive amounts of memory to be consumed. Change 3031146 on 2016/06/28 by Jamie.Dale Fixed errors when building with USE_STABLE_LOCALIZATION_KEYS enabled caused by UEdGraphPin no longer being a UObject Change 3031357 on 2016/06/28 by Nick.Darnell PR #2431: Add plugin support to the editor class wizard. (Contributed by Koderz) Change 3031515 on 2016/06/28 by Jamie.Dale Fixed game targets not being able to depend on other game targets Change 3031520 on 2016/06/28 by Jamie.Dale Localization compilation now specifies an ArchiveName to use Change 3031671 on 2016/06/28 by Nick.Darnell Editor - Checking to see if a weak variable is valid before using it in the editor build window. Change 3032013 on 2016/06/28 by Matt.Kuhlenschmidt Added ability to invert the Y axis in editor viewports for mouse look and orbit Change 3032495 on 2016/06/29 by Jamie.Dale Fixed some measuring issues with bi-directional text within a right-flowed document There were three main issues: 1) Measuring blocks was measuring visual glyphs rather than logical glyphs (this caused bad measures/wrapping and overlapped rendering). 2) The text layout would consider blocks visually contiguous without making sure the block flow direction matched the line flow direction (this caused bad highlights). 3) The text layout would fail to compensate for a non-contiguous block that had a flow direction different to the line flow direction (it was hard-coded for RTL in LTR, so broke for LTR in RTL - this caused bad highlights). #jira UE-32526 Change 3032533 on 2016/06/29 by Nick.Darnell UMG - The widget component now extends from UMeshComponent, it can have a custom material applied to it, in order to achieve cooler effects - like ignoring the depth buffer. Users who use this option are encouraged to start with the widget components default material and work from there. The widget component now offers the ability to automatically size the render target to be the desired size of the widget - note that this can go real bad if your widget wants to be really big. Change 3032855 on 2016/06/29 by Alexis.Matte #jira UE-32508 Remove the cachewindow from the FTextInputMethodContext constructor since it will be cache only when the IME is activated #test please re-test also UE-32240 Change 3033145 on 2016/06/29 by Alex.Delesky #jira UE-32239 - The PropertyEditorModule will no longer cause a crash on editor shutdown if a SDetailsView widget tries to force refresh itself when the Slate application is no longer initialized. Change 3033147 on 2016/06/29 by Alex.Delesky #jira UE-32326 - Clicking on the "Install {compiler}" button when trying to create a new code class or code project will now not crash the engine if it fails to open the installation file for write, nor will it create multiple notifications if the button is pressed repeatedly. This also addresses a potential issue with static initialization order when it comes to adding TickableEditorObjects to its corresponding array, since it was wholly possible for a statically initialized TickableEditorObject to initialize itself and add itself to the tickable objects arra before the tickable objects array was initialized, causing that object to not get ticked at runtime and causing a crash when the editor was closed. Change 3033162 on 2016/06/29 by Alex.Delesky #jira UE-31827 - Undo/redo now works in the Material function editor. Change 3033391 on 2016/06/29 by Matt.Kuhlenschmidt Fix post process settings blendable picker not being readable in the details panel Change 3033498 on 2016/06/29 by Matt.Kuhlenschmidt Fixed huge number of redundant calls to CanEditChange and DiffersFromDefault that were causing massive performance loss when thousands of objects are selected. CanEditChange and DiffersFromDefault are now cached each time a property value changes. Fixed redundant calls for getting visualizers for each selected object. This is now cached on selection Change 3033504 on 2016/06/29 by Matt.Kuhlenschmidt Fix Mass customization on the body instance not working with undo/redo or reset to default Change 3034357 on 2016/06/30 by Alex.Delesky #jira UE-31184 - Renamed the multiple collision components in the cascade particle system to more accurately reflect what they represent. Change 3035915 on 2016/07/01 by Richard.TalbotWatkin Fix to SListPanel so that those with horizontal arrangement (i.e. from STileView) use the number of desired items instead of the number of actual items in order to calculate the desired size of the geometry. This fixes the case where an STileView is contained within an SScrollBox. #jira UE-32195 - STileView no longer works correctly when placed inside of a SScrollBox Change 3035951 on 2016/07/01 by Richard.TalbotWatkin Fixed issue when importing a brush, so that the brush is always validated (relinked), whether it be a static or dynamic brush. This is because the process of rebuilding a dynamic brush sets the link indices to signify FBspSurf indices from the UModel instead of FPoly indices (the FPoly::iLink member is overloaded in its meaning). Always forcing a relink correctly sets the linked list of coplanars. #jira UE-32087 - Crash occurs when creating Static Mesh from Trigger Volume Change 3036991 on 2016/07/04 by Alexis.Matte #jira UETOOL-901 Scene importer now support the rigid mesh animation Change 3037037 on 2016/07/04 by Jamie.Dale Fixed regression in editable text box alignment Text was no longer vertically aligned center since SEditableText was converted to use a text layout. This vertical alignment is now handled by the outer SEditableTextBox instead. Change 3037057 on 2016/07/04 by Richard.TalbotWatkin Fixed screenshots when running automation tests so that they are saved locally when a FAutomationWorkerScreenMessage is received. #jira UE-29815 - In-game screenshot isn't working under certain circumstances Change 3037082 on 2016/07/04 by Chris.Wood Added detection of asserts and passing assert flag and crash type string to crash reports. [UE-30592] - Crash Reporter should determine crash type on client and pass string to server Reviewe by Steve with reservations about the static variable for setting asserted state. While not thread-aware, this is probably accurate enough for the purpose of crash reporting, certainly for now. I'm submitting it like this because the work required to add fully thread-aware fix is not necessary at this point. Change 3037095 on 2016/07/04 by Alexis.Matte Fix the bone name when duplicating a socket. Change 3037453 on 2016/07/05 by Stephan.Jiang Adding ability to animate the root wigdet #2 FHierarchyRoot adds the preview widget instead of CDO to selectedobjects in widgetblueprint the properties are then migrated back to the CDO #UE 31810 Change 3037487 on 2016/07/05 by Jamie.Dale Fixed crash caused by stale BP pointer #jira UE-32325 Change 3037488 on 2016/07/05 by Jamie.Dale Fixed a crash that could occur when a class and a folder had the same name Change 3037526 on 2016/07/05 by Jamie.Dale Speculative fix for a potential race condition when shutting down the editor while a "launch" was in progress The launch-thread could potentially queue up a request after the game-thread had requested it cancel, and cleared out any queued tasks. This change has the game-thread wait for the launch-thread to acknowledge its cancellation before continuing with editor shutdown. #jira UE-17688 Change 3037557 on 2016/07/05 by Alex.Delesky #jira UE-32424 - Added a safeguard to ensure that renaming a world that was duplicated from another world would not crash the editor if both worlds' lightmaps and shadowmaps were still active in memory, due to the editor attempting to rename identical textures from different packages to the same location. The actual fix to this issue was performed in an earlier CL, but this should prevent the editor from crashing if the issue returns. Change 3037558 on 2016/07/05 by Alex.Delesky #jira UE-32285 - Importing assets to the Content Browser via drag and drop operations are no longer permitted while the UI file picker dialog is opened. Change 3037559 on 2016/07/05 by Alex.Delesky #jira UE-32075 - The user can no longer attempt to import non-FBX and non-OBJ files when importing into a level. Change 3037593 on 2016/07/05 by Stephan.Jiang GitHub #2549: Add function for setting the playback rate of UMG animations original code shelved in CL 3033449 #UE-32653 Change 3037605 on 2016/07/05 by Jamie.Dale Fixed infinite recursion that could happen when gather loc from an object with a custom callback #jira UE-32670 Change 3037649 on 2016/07/05 by Nick.Darnell PR #2538: [WidgetBlueprintLibrary] GetAllWidgetsOfClass, Added META ~ DeterminesOutputType, DynamicOutputParam, removes the need for extra cast,  Rama (Contributed by EverNewJoy) Change 3037652 on 2016/07/05 by Nick.Darnell Clean - Removing commented out code. Change 3037658 on 2016/07/05 by Matt.Kuhlenschmidt Fix initial hitch when dragging around in a color picker opened from a material expression node. Change 3037679 on 2016/07/05 by Nick.Darnell Engine - Texture2D no longer forces the MIP level to 0 for TextureGroup_UI textures. Change 3037757 on 2016/07/05 by Nick.Darnell PR #2447: WebBrowser widget: Added GetUrl method and OnUrlChanged property (Contributed by nelbok) Change 3037840 on 2016/07/05 by Nick.Darnell UMG - Now allowing for spirtes to be used just like textures and materials on UMG widgets anywhere that takes a brush, can now also take a Sprite. There is now a ISlateTextureAtlasInterface interface that any UObject may now implement if it wishes to integrate with UMG to provide its atlas data in a form Slate can understand. Change 3037924 on 2016/07/05 by Jamie.Dale Re-ordered variable initialization to appease a warning on Mac Change 3037981 on 2016/07/05 by Jamie.Dale Fixed crash where FColorStructCustomization could call SetPerObjectValues with an empty array #jira UE-32639 Change 3038075 on 2016/07/05 by Cody.Albert Removed misleading error message in HandleCECommand #jira 28007 Change 3038231 on 2016/07/05 by Alexis.Matte #jira UE-30694 We set the section collision only if there is an imported collision or a generated one. If there is no collision we do not set the collision flag. Change 3038275 on 2016/07/05 by Alex.Delesky #jira UE-32689 - "Game Gets Mouse Control" will now override the Capture Mouse on Launch setting when launching the game from within a Level Viewport (i.e., within the editor window itself). Change 3039310 on 2016/07/06 by Trung.Le #jira UE-25005 Change PIE Key Bindings - Removed Shift+F1 and Esc from BaseInput.ini - Created new customizable key binding for + Shift+F1: same functionality. + Esc: now will pause the play session and bring back the mouse cursor. Clicking the mouse on the viewport should resume play session. + Shift+Esc: now will stop the play session Change 3039458 on 2016/07/06 by Trung.Le Removed unused code in StaticMeshLight.cpp Change 3039827 on 2016/07/06 by Frank.Fella FString - Fix divide overload path concatenation for empty paths since there are several places in the engine that expect using that doing { path / "" } will append a / onto path. #jira UE-31959 Change 3041094 on 2016/07/07 by Nick.Darnell WebBrowser - Fixing an issue where the web browser widget plugin wasn't loading soon enough to be properly loaded in time if it was referenced by game nessesary content thatloads in the Default stage of the pipeline, so moving it to PreDefault. #jira UE-32694 Change 3041110 on 2016/07/07 by Matt.Kuhlenschmidt Fix visualizers on blueprint actors not working when the internal components are trashed and replaced Change 3041302 on 2016/07/07 by Chris.Wood Increased buffer size for crash uploads. [UE-32151] - High number of crashes read from S3 by Crash Report Process are failing to unpack Trivial change in dev branch - no code review Change 3041969 on 2016/07/07 by Nick.Darnell UMG - Input Key Selector now no longer adds a bogus Selected Key property to the details panel. Change 3041971 on 2016/07/07 by Nick.Darnell UMG - Not using separate settings for the Engine/Developer folders visible in the UMG palette, now just using the same setting that powers the content browser. Change 3042612 on 2016/07/08 by Trung.Le #jira UE-25005, set Shift+Esc defaults to toggle play/pause and Esc remains defaults to quit Change 3042732 on 2016/07/08 by mitchell.wilson Adding test content for UMG Paper 2d Atlas test Change 3042780 on 2016/07/08 by mitchell.wilson Updating UMG_Paper2d test content for UMG Paper 2d Atlas testing Change 3042870 on 2016/07/08 by mitchell.wilson Renaming UMG_Paper2d to UMG_Sprite Change 3044104 on 2016/07/10 by Nick.Darnell PR #2104: Improved widget input support (Contributed by projectgheist) Change 3044107 on 2016/07/10 by Nick.Darnell Slate - Fixing the slider handle rendering to no longer run off the edge and get cut off. #jira UE-25750 Change 3044377 on 2016/07/11 by Chris.Wood Add Slack messaging module - Epic Friday Change 3044536 on 2016/07/11 by Alex.Delesky #jira UE-7293 - Mouse locking to viewport is now determined off an enum instead of a boolean, to allow for more flexibility when upgrading with new features. Change 3044922 on 2016/07/11 by Nick.Darnell Slate/UMG - Working on better support for VR interactions with Slate widgets. This change fixes a lot of issues with the way interaction works with slate widgets rendered in the virtual world. Breakages, direct mouse interaction with widgets in the virtual world is no longer supported. Those kinds of interactions must all use the WidgetInteractionComponent now, which by default works similar to the lasers in VREditor for interaction. However - you can disable automatic hittesting, and instead provide a custom hitresult instead if you want to use screen tracing and act like you're just a mouse cursor that is supported. Menu anchors now properly function inside of widgets in the virtual world. Performance improvements - the viewport no longer arranges all 3d widgets every frame. Additionally, Widget Components now support a whole bunch of methods for reducing how often they redraw to help control performance, they also support manual refresh. This automatically works in tandem with the widget interaction component to request refresh whenever the widget interaction component is interacting with the widget, thus giving you a simple way to only redraw widgets that the user is hovering on top of. Unrelated - this change also fixes Stop navigation commands not working with Next/Prev navigation - Wrap is still unsupported. Change 3045157 on 2016/07/11 by Nick.Darnell Slate - Always consume the bottom face button of the analog cursor, even if it's a repeat. Change 3045355 on 2016/07/11 by Matt.Kuhlenschmidt Added logging for unreproducible top 10 crash in matinee when a track ends up not being able to add a keyframe Change 3045358 on 2016/07/11 by Alex.Delesky #jira UE-31179 - The editor should now log additional information and hit an assertion if the editor tries to construct FObjectOrAssetData using invalid data. This doesn't stop the crash, but should help get some extra info when it does break. Change 3045371 on 2016/07/11 by Matt.Kuhlenschmidt Enable the widget reflector from the editor console by typing "widgetreflector" Change 3045387 on 2016/07/11 by Stephan.Jiang Stripping off 'b' in the propertyname so that "Is Enabled" is animated properly. #UE-31874 Change 3046093 on 2016/07/12 by Nick.Darnell UMG - The Slider now exposes the IsFocusable option from Slate. #jira UE-32960 Change 3046094 on 2016/07/12 by Alexis.Matte #jira UE-32807 scene re-import blueprint hierarchy kept some part of old blueprint component value. Change 3046104 on 2016/07/12 by Stephan.Jiang typo "Syc" causing the "Sync" button doesn't show Slateicon #UE-31409 Change 3046142 on 2016/07/12 by Nick.Darnell Orion - Upgrading more code to use the new input mode functions and not the deprecated ones. Change 3046165 on 2016/07/12 by Nick.Darnell UMG - Fixing a crash on the widget component if the render target is null when reapplied through widget component data. #jira UE-32844 Change 3046255 on 2016/07/12 by Nick.Darnell UT - More build warning fixes for the new Input Mode methods. Change 3046604 on 2016/07/12 by Richard.Hinckley Adding a template file and code to support creating a UInterface directly from the New C++ Class wizard. Change 3047071 on 2016/07/12 by Matt.Kuhlenschmidt Better way of summoning the widget reflector from the console Change 3047842 on 2016/07/13 by Matt.Kuhlenschmidt Mark Subdivision surface setting as advanced since it is experimental and definitely for advanced users only Change 3048754 on 2016/07/13 by Trung.Le #jira UE-32159 Automatically regain focus after user gets mouse control during PIE session so we can continue process PIE keybinding commands Change 3048756 on 2016/07/13 by Trung.Le Removed default toggle pause/play keybinding from BaseInput.ini, instead we should use the action defined in DebuggerCommands that is customizable Change 3048865 on 2016/07/13 by Trung.Le #jira UE-32159 SGlobalPlayWorldActions widget shouldn't clear out active widget pointer when it's being handled properly Change 3048892 on 2016/07/13 by Nick.Darnell UMG - Fixing a problem with the interaction component, it now does some basic intelligent ignoring of anything it's attached to - excluding widget components. So it's easier to attach it to things that might be inside of a say a player collision capsule. Also removing the 'Max Interaction Distance' from the widget component as that is no longer the arbitor of interaction distance. #jira UE-33250 Change 3049096 on 2016/07/13 by Trung.Le Wrap SGlobalPlayActions around ViewportWidget instead of making it a child of ViewportWidget. This was causing PIE to stop working when there are other UMG in game. #jira UE-33259 Change 3049177 on 2016/07/13 by Stephan.Jiang Fixing the "No Animation Selected" tag shows up after switching back from Graph to Designer. #UE-33016 Change 3049726 on 2016/07/14 by Stephan.Jiang Adding icons for terrain mirror tool #UE-20588 Change 3049957 on 2016/07/14 by Nick.Darnell Slate - Fixing a small bug in the virtual user function - was preventing getting the same virtual user multiple times if it had already been created. Adding an option to the widget component to control the focusabilty of the underlying slate window that's created to host the widget content. Adding an option to the widget interaction component to control if it should be simulating mouse input at all - use this to effectively disable hit testing, and changing hover states and the like. Change 3049994 on 2016/07/14 by Stephan.Jiang Set viewed animtion to current animtion after switching from Graph to Designer (This is for "No Animation Selected" showing up when switching) #UE-33016 Change 3050194 on 2016/07/14 by Stephan.Jiang Added ability to replace the widget the track is currently bound to Also includes changes in WidgetBlueprintEditor to send delegate to AnimationtabSummoner when switching from Graph to Designer #UE-31809 [CL 3050870 by Matt Kuhlenschmidt in Main branch]
2016-07-14 19:07:16 -04:00
for(const auto& Pair : FEditorModeRegistry::Get().GetFactoryMap())
{
Pair.Value->OnSelectionChanged(*this, NewSelection);
}
}
void FEditorModeTools::OnEditorSelectNone()
{
GEditor->SelectNone( false, true );
GEditor->ActorsThatWereSelected.Empty();
}
void FEditorModeTools::DrawBrackets(FEditorViewportClient* ViewportClient, FViewport* Viewport, const FSceneView* View, FCanvas* Canvas)
{
if (!ViewportClient->IsPerspective() || !GetDefault<ULevelEditorViewportSettings>()->bHighlightWithBrackets)
{
return;
}
if (UTypedElementSelectionSet* CurrentSelection = GetEditorSelectionSet())
{
CurrentSelection->ForEachSelectedObject<AActor>([Canvas, View, Viewport, ViewportClient](AActor* Actor)
{
const FLinearColor SelectedActorBoxColor(0.6f, 0.6f, 1.0f);
const bool bDrawBracket = Actor->IsA<AStaticMeshActor>();
ViewportClient->DrawActorScreenSpaceBoundingBox(Canvas, View, Viewport, Actor, SelectedActorBoxColor, bDrawBracket);
return true;
});
}
}
void FEditorModeTools::ForEachEdMode(TFunctionRef<bool(UEdMode*)> InCalllback) const
{
// Copy Array in case callback deactivates a mode
TArray<UEdMode*> ActiveModes(ActiveScriptableModes);
for (UEdMode* Mode : ActiveModes)
{
if (Mode)
{
if (!InCalllback(Mode))
{
break;
}
}
}
}
bool FEditorModeTools::TestAllModes(TFunctionRef<bool(UEdMode*)> InCalllback, bool bExpected) const
{
for (UEdMode* Mode : ActiveScriptableModes)
{
if (Mode)
{
if (InCalllback(Mode) != bExpected)
{
return false;
}
}
}
return true;
}
void FEditorModeTools::ExitAllModesPendingDeactivate()
{
bIsExitingModesDuringTick = true;
// Make a copy so we can modify the pending deactivate modes map during ExitMode
TMap<FEditorModeID, UEdMode*> PendingDeactivateModesCopy(PendingDeactivateModes);
for (auto& Pair : PendingDeactivateModesCopy)
{
ExitMode(Pair.Value);
}
bIsExitingModesDuringTick = false;
check(PendingDeactivateModes.Num() == 0);
}
void FEditorModeTools::SetPivotLocation( const FVector& Location, const bool bIncGridBase )
{
CachedLocation = PivotLocation = SnappedLocation = Location;
if ( bIncGridBase )
{
GridBase = Location;
}
}
ECoordSystem FEditorModeTools::GetCoordSystem(bool bGetRawValue)
{
if (!bGetRawValue && (GetWidgetMode() == UE::Widget::WM_Scale))
{
return COORD_Local;
}
else
{
return CoordSystem;
}
}
void FEditorModeTools::SetCoordSystem(ECoordSystem NewCoordSystem)
{
CoordSystem = NewCoordSystem;
BroadcastCoordSystemChanged(NewCoordSystem);
}
void FEditorModeTools::SetDefaultMode( const FEditorModeID DefaultModeID )
{
DefaultModeIDs.Reset();
DefaultModeIDs.Add( DefaultModeID );
}
void FEditorModeTools::AddDefaultMode( const FEditorModeID DefaultModeID )
{
DefaultModeIDs.AddUnique( DefaultModeID );
}
void FEditorModeTools::RemoveDefaultMode( const FEditorModeID DefaultModeID )
{
DefaultModeIDs.RemoveSingle( DefaultModeID );
}
void FEditorModeTools::ActivateDefaultMode()
{
// NOTE: Activating EM_Default will cause ALL default editor modes to be activated (handled specially in ActivateMode())
ActivateMode( FBuiltinEditorModes::EM_Default );
}
void FEditorModeTools::ExitMode(UEdMode* InMode)
{
if (InMode)
{
InMode->Exit();
const FEditorModeID EditorModeID = InMode->GetID();
PendingDeactivateModes.Remove(EditorModeID);
RecycledScriptableModes.Add(EditorModeID, InMode);
}
}
void FEditorModeTools::OnModeUnregistered(FEditorModeID ModeID)
{
DestroyMode(ModeID);
}
void FEditorModeTools::OnWorldCleanup(UWorld* InWorld, bool bSessionEnded, bool bCleanupResources)
{
UWorld* World = GetWorld();
if (InWorld == World)
{
ExitAllModesPendingDeactivate();
}
}
void FEditorModeTools::RemoveAllDelegateHandlers()
{
if (GEditor)
{
GEditor->UnregisterForUndo(this);
GEditor->GetEditorSubsystem<UAssetEditorSubsystem>()->OnEditorModeUnregistered().RemoveAll(this);
}
FWorldDelegates::OnWorldCleanup.RemoveAll(this);
// For now, check that UObjects are even valid, because the level editor has a global static mode tools
if (UObjectInitialized())
{
USelection::SelectionChangedEvent.RemoveAll(this);
USelection::SelectNoneEvent.RemoveAll(this);
USelection::SelectObjectEvent.RemoveAll(this);
}
OnEditorModeIDChanged().Clear();
OnWidgetModeChanged().Clear();
OnCoordSystemChanged().Clear();
}
void FEditorModeTools::DeactivateMode( FEditorModeID InID )
{
// Find the mode from the ID and exit it.
for (int32 Index = ActiveScriptableModes.Num() - 1; Index >= 0; --Index)
{
UEdMode* Mode = ActiveScriptableModes[Index];
if (Mode->GetID() == InID)
{
PendingDeactivateModes.Emplace(InID, Mode);
ActiveScriptableModes.RemoveAt(Index);
constexpr bool bIsEnteringMode = false;
BroadcastEditorModeIDChanged(InID, bIsEnteringMode);
break;
}
};
}
void FEditorModeTools::DeactivateAllModes()
{
for (int32 Index = ActiveScriptableModes.Num() - 1; Index >= 0; --Index)
{
FEditorModeID ModeID = ActiveScriptableModes[Index]->GetID();
PendingDeactivateModes.Emplace(ModeID, ActiveScriptableModes[Index]);
ActiveScriptableModes.RemoveAt(Index);
constexpr bool bIsEnteringMode = false;
BroadcastEditorModeIDChanged(ModeID, bIsEnteringMode);
};
}
void FEditorModeTools::DestroyMode( FEditorModeID InID )
{
// Since deactivating the last active mode will cause the default modes to be activated, make sure this mode is removed from defaults.
RemoveDefaultMode( InID );
// Add back the default default mode if we just removed the last valid default.
if ( DefaultModeIDs.Num() == 0 )
{
AddDefaultMode( FBuiltinEditorModes::EM_Default );
}
// Find the mode from the ID and exit it.
DeactivateMode(InID);
if (UEdMode* DeactivatedMode = PendingDeactivateModes.FindRef(InID))
{
ExitMode(DeactivatedMode);
}
RecycledScriptableModes.Remove(InID);
}
bool FEditorModeTools::ShouldShowModeToolbox() const
{
for (const UEdMode* Mode : ActiveScriptableModes)
{
if (Mode->GetModeInfo().IsVisible() && Mode->UsesToolkits())
{
return true;
}
}
return false;
}
void FEditorModeTools::ActivateMode(FEditorModeID InID, bool bToggle)
{
static bool bReentrant = false;
if( !bReentrant )
{
if (InID == FBuiltinEditorModes::EM_Default)
{
bReentrant = true;
for( const FEditorModeID& ModeID : DefaultModeIDs )
{
ActivateMode( ModeID );
}
for( const FEditorModeID& ModeID : DefaultModeIDs )
{
check( IsModeActive( ModeID ) );
}
bReentrant = false;
return;
}
}
// Check to see if the mode is already active
if (IsModeActive(InID))
{
// The mode is already active toggle it off if we should toggle off already active modes.
if (bToggle)
{
DeactivateMode(InID);
}
// Nothing more to do
return;
}
// Recycle a mode or factory a new one
UEdMode* ScriptableMode = RecycledScriptableModes.FindRef(InID);
bool bNeedsEnter = true;
if (!ScriptableMode)
{
ScriptableMode = PendingDeactivateModes.FindRef(InID);
if (ScriptableMode)
{
// If we are actively exiting modes, don't re-activate the mode
if (bIsExitingModesDuringTick)
{
return;
}
bNeedsEnter = false;
}
}
if (!ScriptableMode)
{
ScriptableMode = GEditor->GetEditorSubsystem<UAssetEditorSubsystem>()->CreateEditorModeWithToolsOwner(InID, *this);
}
if (!ScriptableMode)
{
UE_LOG(LogEditorModes, Log, TEXT("FEditorModeTools::ActivateMode : Couldn't find mode '%s'."), *InID.ToString());
// Just return and leave the mode list unmodified
return;
}
{
// Make sure ScriptableMode doesn't get GCed while Deactivating modes
FGCObjectScopeGuard ScriptModeGuard(ScriptableMode);
// Remove anything that isn't compatible with this mode
const bool bIsVisibleMode = ScriptableMode->GetModeInfo().IsVisible();
for (int32 ModeIndex = ActiveScriptableModes.Num() - 1; ModeIndex >= 0; ModeIndex--)
{
UEdMode* Mode = ActiveScriptableModes[ModeIndex];
const bool bModesAreCompatible = ScriptableMode->IsCompatibleWith(Mode->GetID()) || Mode->IsCompatibleWith(ScriptableMode->GetID());
if (!bModesAreCompatible || (bIsVisibleMode && Mode->GetModeInfo().IsVisible()))
{
DeactivateMode(Mode->GetID());
}
}
}
ActiveScriptableModes.Add(ScriptableMode);
// Enter the new mode
if (bNeedsEnter)
{
ScriptableMode->Enter();
}
const bool bIsEnteringMode = true;
BroadcastEditorModeIDChanged(InID, bIsEnteringMode);
PendingDeactivateModes.Remove(InID);
RecycledScriptableModes.Remove(InID);
// Update the editor UI
FEditorSupportDelegates::UpdateUI.Broadcast();
}
bool FEditorModeTools::EnsureNotInMode(FEditorModeID ModeID, const FText& ErrorMsg, bool bNotifyUser) const
{
// We're in a 'safe' mode if we're not in the specified mode.
const bool bInASafeMode = !IsModeActive(ModeID);
if( !bInASafeMode && !ErrorMsg.IsEmpty() )
{
// Do we want to display this as a notification or a dialog to the user
if ( bNotifyUser )
{
FNotificationInfo Info( ErrorMsg );
FSlateNotificationManager::Get().AddNotification( Info );
}
else
{
FMessageDialog::Open( EAppMsgType::Ok, ErrorMsg );
}
}
return bInASafeMode;
}
UEdMode* FEditorModeTools::GetActiveScriptableMode(FEditorModeID InID) const
{
if (UEdMode* const* FoundMode = ActiveScriptableModes.FindByPredicate([InID](UEdMode* Mode) { return (Mode->GetID() == InID); }))
{
return const_cast<UEdMode*>(*FoundMode);
}
return nullptr;
}
UTexture2D* FEditorModeTools::GetVertexTexture() const
{
return GEngine->DefaultBSPVertexTexture;
}
FMatrix FEditorModeTools::GetCustomDrawingCoordinateSystem()
{
FMatrix Matrix = FMatrix::Identity;
switch (GetCoordSystem())
{
case COORD_Local:
{
Matrix = GetLocalCoordinateSystem();
}
break;
case COORD_World:
break;
default:
break;
}
return Matrix;
}
FMatrix FEditorModeTools::GetCustomInputCoordinateSystem()
{
return GetCustomDrawingCoordinateSystem();
}
FMatrix FEditorModeTools::GetLocalCoordinateSystem()
{
FMatrix Matrix = FMatrix::Identity;
// Let the current mode have a shot at setting the local coordinate system.
bool CustomCoordinateSystemProvided = false;
ForEachEdMode<ILegacyEdModeWidgetInterface>([&Matrix, &CustomCoordinateSystemProvided](ILegacyEdModeWidgetInterface* LegacyMode)
{
CustomCoordinateSystemProvided = LegacyMode->GetCustomDrawingCoordinateSystem(Matrix, nullptr);
return !CustomCoordinateSystemProvided;
});
// If there isn't an active mode overriding the local coordinate system, create it by looking at the current selection.
if (!CustomCoordinateSystemProvided)
{
TTypedElement<ITypedElementWorldInterface> LastSelected;
if (GCurrentLevelEditingViewportClient)
{
// Use the cache from the viewport when available
LastSelected = GCurrentLevelEditingViewportClient->GetElementsToManipulate()->GetBottomElement<ITypedElementWorldInterface>();
}
else
{
LastSelected = UEditorElementSubsystem::GetLastSelectedEditorManipulableElement(UEditorElementSubsystem::GetEditorNormalizedSelectionSet(*GetEditorSelectionSet()));
}
if (LastSelected)
{
FTransform LocalToWorldTransform;
LastSelected.GetWorldTransform(LocalToWorldTransform);
Matrix = FQuatRotationMatrix(LocalToWorldTransform.GetRotation());
}
}
if (!Matrix.Equals(FMatrix::Identity))
{
Matrix.RemoveScaling();
}
return Matrix;
}
/** Gets the widget axis to be drawn */
EAxisList::Type FEditorModeTools::GetWidgetAxisToDraw( UE::Widget::EWidgetMode InWidgetMode ) const
{
EAxisList::Type OutAxis = EAxisList::All;
for( int Index = ActiveScriptableModes.Num() - 1; Index >= 0 ; Index-- )
{
ILegacyEdModeWidgetInterface* Mode = Cast<ILegacyEdModeWidgetInterface>(ActiveScriptableModes[Index]);
if ( Mode && Mode->ShouldDrawWidget() )
{
OutAxis = Mode->GetWidgetAxisToDraw( InWidgetMode );
break;
}
}
return OutAxis;
}
/** Mouse tracking interface. Passes tracking messages to all active modes */
bool FEditorModeTools::StartTracking(FEditorViewportClient* InViewportClient, FViewport* InViewport)
{
bIsTracking = true;
CachedLocation = PivotLocation; // Cache the pivot location
bool bTransactionHandled = InteractiveToolsContext->StartTracking(InViewportClient, InViewport);
ForEachEdMode<ILegacyEdModeViewportInterface>([&bTransactionHandled, InViewportClient, InViewport](ILegacyEdModeViewportInterface* ViewportInterface)
{
bTransactionHandled |= ViewportInterface->StartTracking(InViewportClient, InViewport);
return true;
});
return bTransactionHandled;
}
/** Mouse tracking interface. Passes tracking messages to all active modes */
bool FEditorModeTools::EndTracking(FEditorViewportClient* InViewportClient, FViewport* InViewport)
{
bIsTracking = false;
bool bTransactionHandled = InteractiveToolsContext->EndTracking(InViewportClient, InViewport);
ForEachEdMode<ILegacyEdModeViewportInterface>([&bTransactionHandled, InViewportClient, InViewport](ILegacyEdModeViewportInterface* ViewportInterface)
{
bTransactionHandled |= ViewportInterface->EndTracking(InViewportClient, InViewport);
return true;
});
CachedLocation = PivotLocation; // Clear the pivot location
return bTransactionHandled;
}
bool FEditorModeTools::AllowsViewportDragTool() const
{
bool bCanUseDragTool = false;
ForEachEdMode<const ILegacyEdModeViewportInterface>([&bCanUseDragTool](const ILegacyEdModeViewportInterface* LegacyMode)
{
bCanUseDragTool |= LegacyMode->AllowsViewportDragTool();
return true;
});
return bCanUseDragTool;
}
/** Notifies all active modes that a map change has occured */
void FEditorModeTools::MapChangeNotify()
{
ForEachEdMode([](UEdMode* Mode)
{
Mode->MapChangeNotify();
return true;
});
}
/** Notifies all active modes to empty their selections */
void FEditorModeTools::SelectNone()
{
ForEachEdMode([](UEdMode* Mode)
{
Mode->SelectNone();
return true;
});
}
/** Notifies all active modes of box selection attempts */
bool FEditorModeTools::BoxSelect( FBox& InBox, bool InSelect )
{
bool bHandled = false;
ForEachEdMode<ILegacyEdModeSelectInterface>([&bHandled, &InBox, InSelect](ILegacyEdModeSelectInterface* LegacyMode)
{
bHandled |= LegacyMode->BoxSelect(InBox, InSelect);
return true;
});
return bHandled;
}
/** Notifies all active modes of frustum selection attempts */
bool FEditorModeTools::FrustumSelect( const FConvexVolume& InFrustum, FEditorViewportClient* InViewportClient, bool InSelect )
{
bool bHandled = false;
ForEachEdMode<ILegacyEdModeSelectInterface>([&bHandled, InFrustum, InViewportClient, InSelect](ILegacyEdModeSelectInterface* LegacyMode)
{
bHandled |= LegacyMode->FrustumSelect(InFrustum, InViewportClient, InSelect);
return true;
});
return bHandled;
}
/** true if any active mode uses a transform widget */
bool FEditorModeTools::UsesTransformWidget() const
{
bool bUsesTransformWidget = false;
ForEachEdMode<const ILegacyEdModeWidgetInterface>([&bUsesTransformWidget](const ILegacyEdModeWidgetInterface* LegacyMode)
{
bUsesTransformWidget |= LegacyMode->UsesTransformWidget();
return true;
});
return bUsesTransformWidget;
}
/** true if any active mode uses the passed in transform widget */
bool FEditorModeTools::UsesTransformWidget( UE::Widget::EWidgetMode CheckMode ) const
{
bool bUsesTransformWidget = false;
ForEachEdMode<const ILegacyEdModeWidgetInterface>([&bUsesTransformWidget, CheckMode](const ILegacyEdModeWidgetInterface* LegacyMode)
{
bUsesTransformWidget |= LegacyMode->UsesTransformWidget(CheckMode);
return true;
});
return bUsesTransformWidget;
}
/** Sets the current widget axis */
void FEditorModeTools::SetCurrentWidgetAxis( EAxisList::Type NewAxis )
{
ForEachEdMode<ILegacyEdModeWidgetInterface>([NewAxis](ILegacyEdModeWidgetInterface* LegacyMode)
{
LegacyMode->SetCurrentWidgetAxis(NewAxis);
return true;
});
}
/** Notifies all active modes of mouse click messages. */
bool FEditorModeTools::HandleClick(FEditorViewportClient* InViewportClient, HHitProxy *HitProxy, const FViewportClick& Click )
{
bool bHandled = false;
ForEachEdMode<ILegacyEdModeViewportInterface>([&bHandled, InViewportClient, HitProxy, Click](ILegacyEdModeViewportInterface* Mode)
{
bHandled |= Mode->HandleClick(InViewportClient, HitProxy, Click);
return true;
});
return bHandled;
}
bool FEditorModeTools::ComputeBoundingBoxForViewportFocus(AActor* Actor, UPrimitiveComponent* PrimitiveComponent, FBox& InOutBox)
{
bool bHandled = false;
for (const UEdMode* Mode : ActiveScriptableModes)
{
bHandled |= Mode->ComputeBoundingBoxForViewportFocus(Actor, PrimitiveComponent, InOutBox);
}
return bHandled;
}
/** true if the passed in brush actor should be drawn in wireframe */
bool FEditorModeTools::ShouldDrawBrushWireframe( AActor* InActor ) const
{
bool bShouldDraw = false;
for (const UEdMode* Mode : ActiveScriptableModes)
{
bShouldDraw |= Mode->ShouldDrawBrushWireframe(InActor);
}
if((ActiveScriptableModes.Num() == 0))
{
// We can get into a state where there are no active modes at editor startup if the builder brush is created before the default mode is activated.
// Ensure we can see the builder brush when no modes are active.
bShouldDraw = true;
}
return bShouldDraw;
}
/** true if brush vertices should be drawn */
bool FEditorModeTools::ShouldDrawBrushVertices() const
{
if(UBrushEditingSubsystem* BrushSubsystem = GEditor->GetEditorSubsystem<UBrushEditingSubsystem>())
{
// Currently only geometry mode being active prevents vertices from being drawn.
return !BrushSubsystem->IsGeometryEditorModeActive();
}
return true;
}
/** Ticks all active modes */
void FEditorModeTools::Tick( FEditorViewportClient* ViewportClient, float DeltaTime )
{
// Remove anything pending destruction
ExitAllModesPendingDeactivate();
if (ActiveScriptableModes.Num() == 0)
{
// Ensure the default mode is active if there are no active modes.
ActivateDefaultMode();
}
InteractiveToolsContext->Tick(ViewportClient, DeltaTime);
ForEachEdMode([ViewportClient, DeltaTime](UEdMode* Mode)
{
if (ILegacyEdModeViewportInterface* ViewportInterface = Cast<ILegacyEdModeViewportInterface>(Mode))
{
ViewportInterface->Tick(ViewportClient, DeltaTime);
}
Mode->ModeTick(DeltaTime);
return true;
});
}
/** Notifies all active modes of any change in mouse movement */
bool FEditorModeTools::InputDelta( FEditorViewportClient* InViewportClient,FViewport* InViewport,FVector& InDrag,FRotator& InRot,FVector& InScale )
{
bool bHandled = false;
ForEachEdMode<ILegacyEdModeViewportInterface>([&bHandled, InViewportClient, InViewport, &InDrag, &InRot, &InScale](ILegacyEdModeViewportInterface* Mode)
{
bHandled |= Mode->InputDelta(InViewportClient, InViewport, InDrag, InRot, InScale);
return true;
});
return bHandled;
}
/** Notifies all active modes of captured mouse movement */
bool FEditorModeTools::CapturedMouseMove( FEditorViewportClient* InViewportClient, FViewport* InViewport, int32 InMouseX, int32 InMouseY )
{
bool bHandled = InteractiveToolsContext->CapturedMouseMove(InViewportClient, InViewport, InMouseX, InMouseY);
ForEachEdMode<ILegacyEdModeViewportInterface>([&bHandled, InViewportClient, InViewport, InMouseX, InMouseY](ILegacyEdModeViewportInterface* Mode)
{
bHandled |= Mode->CapturedMouseMove(InViewportClient, InViewport, InMouseX, InMouseY);
return true;
});
return bHandled;
}
/** Notifies all active modes of all captured mouse movement */
bool FEditorModeTools::ProcessCapturedMouseMoves( FEditorViewportClient* InViewportClient, FViewport* InViewport, const TArrayView<FIntPoint>& CapturedMouseMoves )
{
bool bHandled = false;
ForEachEdMode<ILegacyEdModeViewportInterface>([&bHandled, InViewportClient, InViewport, &CapturedMouseMoves](ILegacyEdModeViewportInterface* Mode)
{
bHandled |= Mode->ProcessCapturedMouseMoves(InViewportClient, InViewport, CapturedMouseMoves);
return true;
});
return bHandled;
}
/** Notifies all active modes of keyboard input via a viewport client */
bool FEditorModeTools::InputKey(FEditorViewportClient* InViewportClient, FViewport* Viewport, FKey Key, EInputEvent Event, bool bRouteToToolsContext)
{
const bool bWasHandledByToolsContext = bRouteToToolsContext && InteractiveToolsContext->InputKey(InViewportClient, Viewport, Key, Event);
if (bWasHandledByToolsContext && !bIsTracking && GetInteractiveToolsContext()->InputRouter->HasActiveMouseCapture())
{
StartTracking(InViewportClient, Viewport);
}
else if (bRouteToToolsContext && bIsTracking && !GetInteractiveToolsContext()->InputRouter->HasActiveMouseCapture())
{
EndTracking(InViewportClient, Viewport);
}
// If the toolkit should process the command, it should not have been handled by ITF, or be tracked elsewhere.
const bool bPassToToolkitCommands = bRouteToToolsContext && !bWasHandledByToolsContext;
bool bHandled = bWasHandledByToolsContext;
ForEachEdMode([&bHandled, bPassToToolkitCommands, Event, Key, InViewportClient, Viewport](UEdMode* Mode)
{
// First, always give the legacy viewport interface a chance to process they key press. This is to support any of the FModeTools that may still exist.
if (ILegacyEdModeViewportInterface* ViewportInterface = Cast<ILegacyEdModeViewportInterface>(Mode))
{
if (ViewportInterface->InputKey(InViewportClient, Viewport, Key, Event))
{
bHandled |= true;
return true; // Skip passing to the mode's toolkit if the legacy mode interface handled the input.
}
}
// Next, give the toolkit commands a chance to process the key press if the tools context did not handle the key press.
if (bPassToToolkitCommands && (Event != IE_Released) && Mode->UsesToolkits() && Mode->GetToolkit().IsValid())
{
bHandled |= Mode->GetToolkit().Pin()->GetToolkitCommands()->ProcessCommandBindings(Key, FSlateApplication::Get().GetModifierKeys(), (Event == EInputEvent::IE_Repeat));
return true;
}
return true;
});
// Finally, pass input to selected actors if nothing else handled the input
if (!bHandled)
{
GetEditorSelectionSet()->ForEachSelectedObject<AActor>([Key, Event](AActor* ActorPtr)
{
ActorPtr->EditorKeyPressed(Key, Event);
return true;
});
}
return bHandled;
}
/** Notifies all active modes of axis movement */
bool FEditorModeTools::InputAxis(FEditorViewportClient* InViewportClient, FViewport* Viewport, int32 ControllerId, FKey Key, float Delta, float DeltaTime)
{
bool bHandled = false;
ForEachEdMode<ILegacyEdModeViewportInterface>([&bHandled, InViewportClient, Viewport, ControllerId, Key, Delta, DeltaTime](ILegacyEdModeViewportInterface* Mode)
{
bHandled |= Mode->InputAxis(InViewportClient, Viewport, ControllerId, Key, Delta, DeltaTime);
return true;
});
return bHandled;
}
bool FEditorModeTools::GetPivotForOrbit( FVector& Pivot ) const
{
bool bHandled = false;
// Just return the first pivot point specified by a mode
ForEachEdMode([&Pivot, &bHandled](const UEdMode* Mode)
{
bHandled = Mode->GetPivotForOrbit(Pivot);
return !bHandled;
});
return bHandled;
}
bool FEditorModeTools::MouseEnter( FEditorViewportClient* InViewportClient, FViewport* Viewport, int32 X, int32 Y )
{
HoveredViewportClient = InViewportClient;
bool bHandled = InteractiveToolsContext->MouseEnter(InViewportClient, Viewport, X, Y);
ForEachEdMode<ILegacyEdModeViewportInterface>([&bHandled, InViewportClient, Viewport, X, Y](ILegacyEdModeViewportInterface* Mode)
{
bHandled |= Mode->MouseEnter(InViewportClient, Viewport, X, Y);
return true;
});
return bHandled;
}
bool FEditorModeTools::MouseLeave( FEditorViewportClient* InViewportClient, FViewport* Viewport )
{
// TODO: HoveredViewportClient should be reset here, but there is currently a bug (UE-119516)
// that makes it so that flying in viewports can create mismatches between MouseEnter and MouseLeave.
// For this reason, we currently use HoveredViewportClient as if it were LastHoveredViewportClient,
// which works for the purposes that we use it for.
// If we never fix the bug, we should probably just rename it.
//HoveredViewportClient = nullptr;
bool bHandled = InteractiveToolsContext->MouseLeave(InViewportClient, Viewport);
ForEachEdMode<ILegacyEdModeViewportInterface>([&bHandled, InViewportClient, Viewport](ILegacyEdModeViewportInterface* Mode)
{
bHandled |= Mode->MouseLeave(InViewportClient, Viewport);
return true;
});
return bHandled;
}
/** Notifies all active modes that the mouse has moved */
bool FEditorModeTools::MouseMove( FEditorViewportClient* InViewportClient, FViewport* Viewport, int32 X, int32 Y )
{
bool bHandled = InteractiveToolsContext->MouseMove(InViewportClient, Viewport, X, Y);
ForEachEdMode<ILegacyEdModeViewportInterface>([&bHandled, InViewportClient, Viewport, X, Y](ILegacyEdModeViewportInterface* Mode)
{
bHandled |= Mode->MouseMove(InViewportClient, Viewport, X, Y);
return true;
});
return bHandled;
}
bool FEditorModeTools::ReceivedFocus( FEditorViewportClient* InViewportClient, FViewport* Viewport )
{
FocusedViewportClient = InViewportClient;
bool bHandled = false;
ForEachEdMode<ILegacyEdModeViewportInterface>([&bHandled, InViewportClient, Viewport](ILegacyEdModeViewportInterface* Mode)
{
bHandled |= Mode->ReceivedFocus(InViewportClient, Viewport);
return true;
});
return bHandled;
}
bool FEditorModeTools::LostFocus( FEditorViewportClient* InViewportClient, FViewport* Viewport )
{
// Note that we don't reset FocusedViewportClient intentionally. EdModeInteractiveToolsContext
// only ticks its objects once for the focused viewport to avoid multi-ticking, so if we cleared
// it here, we'd stop ticking things in the level editor when clicking out of the viewport.
// TODO: Conceptually, we should probably clear FocusedViewportClient here, but also have a
// LastFocusedViewportClient property that we don't clear, to use in ticking.
bool bHandled = false;
ForEachEdMode<ILegacyEdModeViewportInterface>([&bHandled, InViewportClient, Viewport](ILegacyEdModeViewportInterface* Mode)
{
bHandled |= Mode->LostFocus(InViewportClient, Viewport);
return true;
});
return bHandled;
}
/** Draws all active mode components */
void FEditorModeTools::DrawActiveModes( const FSceneView* InView, FPrimitiveDrawInterface* PDI )
{
ForEachEdMode<ILegacyEdModeDrawHelperInterface>([InView, PDI](ILegacyEdModeDrawHelperInterface* DrawHelper)
{
DrawHelper->Draw(InView, PDI);
return true;
});
}
/** Renders all active modes */
void FEditorModeTools::Render( const FSceneView* InView, FViewport* Viewport, FPrimitiveDrawInterface* PDI )
{
InteractiveToolsContext->Render(InView, Viewport, PDI);
ForEachEdMode<ILegacyEdModeWidgetInterface>([InView, Viewport, PDI](ILegacyEdModeWidgetInterface* Mode)
{
Mode->Render(InView, Viewport, PDI);
return true;
});
}
/** Draws the HUD for all active modes */
void FEditorModeTools::DrawHUD( FEditorViewportClient* InViewportClient,FViewport* Viewport, const FSceneView* View, FCanvas* Canvas )
{
InteractiveToolsContext->DrawHUD(InViewportClient, Viewport, View, Canvas);
DrawBrackets(InViewportClient, Viewport, View, Canvas);
if (!(InViewportClient->EngineShowFlags.ModeWidgets))
{
return;
}
// Clear Hit proxies
const bool bIsHitTesting = Canvas->IsHitTesting();
if (!bIsHitTesting)
{
Canvas->SetHitProxy(nullptr);
}
ForEachEdMode<ILegacyEdModeWidgetInterface>([InViewportClient, Viewport, View, Canvas](ILegacyEdModeWidgetInterface* Mode)
{
Mode->DrawHUD(InViewportClient, Viewport, View, Canvas);
return true;
});
// Draw vertices for selected BSP brushes and static meshes if the large vertices show flag is set.
if (!InViewportClient->bDrawVertices)
{
return;
}
const bool bLargeVertices = View->Family->EngineShowFlags.LargeVertices;
if (!bLargeVertices)
{
return;
}
// Temporaries.
const bool bShowBrushes = View->Family->EngineShowFlags.Brushes;
const bool bShowBSP = View->Family->EngineShowFlags.BSP;
const bool bShowBuilderBrush = View->Family->EngineShowFlags.BuilderBrush != 0;
UTexture2D* VertexTexture = GetVertexTexture();
const float TextureSizeX = VertexTexture->GetSizeX() * (bLargeVertices ? 1.0f : 0.5f);
const float TextureSizeY = VertexTexture->GetSizeY() * (bLargeVertices ? 1.0f : 0.5f);
GetEditorSelectionSet()->ForEachSelectedObject<AStaticMeshActor>([View, Canvas, VertexTexture, TextureSizeX, TextureSizeY, bIsHitTesting](AStaticMeshActor* Actor)
{
TArray<FVector> Vertices;
FCanvasItemTestbed::bTestState = !FCanvasItemTestbed::bTestState;
// Static mesh vertices
if (Actor->GetStaticMeshComponent() && Actor->GetStaticMeshComponent()->GetStaticMesh()
&& Actor->GetStaticMeshComponent()->GetStaticMesh()->GetRenderData())
{
FTransform ActorToWorld = Actor->ActorToWorld();
const FPositionVertexBuffer& VertexBuffer = Actor->GetStaticMeshComponent()->GetStaticMesh()->GetRenderData()->LODResources[0].VertexBuffers.PositionVertexBuffer;
for (uint32 i = 0; i < VertexBuffer.GetNumVertices(); i++)
{
Vertices.AddUnique(ActorToWorld.TransformPosition((FVector)VertexBuffer.VertexPosition(i)));
}
const float InvDpiScale = 1.0f / Canvas->GetDPIScale();
FCanvasTileItem TileItem(FVector2D(0.0f, 0.0f), FVector2D(0.0f, 0.0f), FLinearColor::White);
TileItem.BlendMode = SE_BLEND_Translucent;
for (int32 VertexIndex = 0; VertexIndex < Vertices.Num(); ++VertexIndex)
{
const FVector& Vertex = Vertices[VertexIndex];
FVector2D PixelLocation;
if (View->ScreenToPixel(View->WorldToScreen(Vertex), PixelLocation))
{
PixelLocation *= InvDpiScale;
const bool bOutside =
PixelLocation.X < 0.0f || PixelLocation.X > View->UnscaledViewRect.Width() * InvDpiScale ||
PixelLocation.Y < 0.0f || PixelLocation.Y > View->UnscaledViewRect.Height() * InvDpiScale;
if (!bOutside)
{
const float X = PixelLocation.X - (TextureSizeX / 2);
const float Y = PixelLocation.Y - (TextureSizeY / 2);
if (bIsHitTesting)
{
Canvas->SetHitProxy(new HStaticMeshVert(Actor, Vertex));
}
TileItem.Texture = VertexTexture->GetResource();
TileItem.Size = FVector2D(TextureSizeX, TextureSizeY);
Canvas->DrawItem(TileItem, FVector2D(X, Y));
if (bIsHitTesting)
{
Canvas->SetHitProxy(nullptr);
}
}
}
}
}
return true;
});
}
/** Calls PostUndo on all active modes */
void FEditorModeTools::PostUndo(bool bSuccess)
{
if (bSuccess)
{
ForEachEdMode([](UEdMode* Mode)
{
Mode->PostUndo();
return true;
});
}
}
void FEditorModeTools::PostRedo(bool bSuccess)
{
PostUndo(bSuccess);
}
/** true if we should allow widget move */
bool FEditorModeTools::AllowWidgetMove() const
{
bool bAllow = false;
ForEachEdMode<ILegacyEdModeWidgetInterface>([&bAllow](ILegacyEdModeWidgetInterface* LegacyMode)
{
bAllow |= LegacyMode->AllowWidgetMove();
return true;
});
return bAllow;
}
bool FEditorModeTools::DisallowMouseDeltaTracking() const
{
bool bDisallow = false;
ForEachEdMode<ILegacyEdModeViewportInterface>([&bDisallow](ILegacyEdModeViewportInterface* LegacyMode)
{
bDisallow |= LegacyMode->DisallowMouseDeltaTracking();
return true;
});
return bDisallow;
}
bool FEditorModeTools::GetCursor(EMouseCursor::Type& OutCursor) const
{
bool bHandled = false;
for (const UEdMode* Mode : ActiveScriptableModes)
{
bHandled |= Mode->GetCursor(OutCursor);
}
return bHandled;
}
bool FEditorModeTools::GetOverrideCursorVisibility(bool& bWantsOverride, bool& bHardwareCursorVisible, bool bSoftwareCursorVisible) const
{
bool bHandled = false;
for (const UEdMode* Mode : ActiveScriptableModes)
{
bHandled |= Mode->GetOverrideCursorVisibility(bWantsOverride, bHardwareCursorVisible, bSoftwareCursorVisible);
}
return bHandled;
}
bool FEditorModeTools::PreConvertMouseMovement(FEditorViewportClient* InViewportClient)
{
bool bHandled = false;
ForEachEdMode<ILegacyEdModeViewportInterface>([&bHandled, InViewportClient](ILegacyEdModeViewportInterface* Mode)
{
bHandled |= Mode->PreConvertMouseMovement(InViewportClient);
return true;
});
return bHandled;
}
bool FEditorModeTools::PostConvertMouseMovement(FEditorViewportClient* InViewportClient)
{
bool bHandled = false;
ForEachEdMode<ILegacyEdModeViewportInterface>([&bHandled, InViewportClient](ILegacyEdModeViewportInterface* ViewportInterface)
{
bHandled |= ViewportInterface->PostConvertMouseMovement(InViewportClient);
return true;
});
return bHandled;
}
bool FEditorModeTools::GetShowWidget() const
{
bool bDrawModeSupportsWidgetDrawing = false;
// Check to see of any active modes support widget drawing
ForEachEdMode<ILegacyEdModeWidgetInterface>([&bDrawModeSupportsWidgetDrawing](ILegacyEdModeWidgetInterface* LegacyMode)
{
bDrawModeSupportsWidgetDrawing |= LegacyMode->ShouldDrawWidget();
return true;
});
return bDrawModeSupportsWidgetDrawing && bShowWidget;
}
/**
* Used to cycle widget modes
*/
void FEditorModeTools::CycleWidgetMode (void)
{
//make sure we're not currently tracking mouse movement. If we are, changing modes could cause a crash due to referencing an axis/plane that is incompatible with the widget
for (FLevelEditorViewportClient* ViewportClient : GEditor->GetLevelViewportClients())
{
if (ViewportClient->IsTracking())
{
return;
}
}
//only cycle when the mode is requesting the drawing of a widget
if( GetShowWidget() )
{
const int32 CurrentWk = GetWidgetMode();
int32 Wk = CurrentWk;
do
{
Wk++;
if ((Wk == UE::Widget::WM_TranslateRotateZ) && (!GetDefault<ULevelEditorViewportSettings>()->bAllowTranslateRotateZWidget))
{
Wk++;
}
// Roll back to the start if we go past UE::Widget::WM_Scale
if( Wk >= UE::Widget::WM_Max)
{
Wk -= UE::Widget::WM_Max;
}
}
while (!UsesTransformWidget((UE::Widget::EWidgetMode)Wk) && Wk != CurrentWk);
SetWidgetMode( (UE::Widget::EWidgetMode)Wk );
FEditorSupportDelegates::RedrawAllViewports.Broadcast();
}
}
/**Save Widget Settings to Ini file*/
void FEditorModeTools::SaveWidgetSettings(void)
{
GetMutableDefault<UEditorPerProjectUserSettings>()->SaveConfig();
}
/**Load Widget Settings from Ini file*/
void FEditorModeTools::LoadWidgetSettings(void)
{
}
/**
* Returns a good location to draw the widget at.
*/
FVector FEditorModeTools::GetWidgetLocation() const
{
for (int Index = ActiveScriptableModes.Num() - 1; Index >= 0; Index--)
{
if (ILegacyEdModeWidgetInterface* LegacyMode = Cast<ILegacyEdModeWidgetInterface>(ActiveScriptableModes[Index]))
{
if (LegacyMode->UsesTransformWidget())
{
return LegacyMode->GetWidgetLocation();
}
}
}
return FVector(ForceInitToZero);
}
/**
* Changes the current widget mode.
*/
void FEditorModeTools::SetWidgetMode( UE::Widget::EWidgetMode InWidgetMode )
{
WidgetMode = InWidgetMode;
}
/**
* Allows you to temporarily override the widget mode. Call this function again
* with UE::Widget::WM_None to turn off the override.
*/
void FEditorModeTools::SetWidgetModeOverride( UE::Widget::EWidgetMode InWidgetMode )
{
OverrideWidgetMode = InWidgetMode;
}
/**
* Retrieves the current widget mode, taking overrides into account.
*/
UE::Widget::EWidgetMode FEditorModeTools::GetWidgetMode() const
{
if( OverrideWidgetMode != UE::Widget::WM_None )
{
return OverrideWidgetMode;
}
return WidgetMode;
}
/**
* Set Scale On The Widget
*/
void FEditorModeTools::SetWidgetScale(float InScale)
{
WidgetScale = InScale;
}
/**
* Get Scale On The Widget
*/
float FEditorModeTools::GetWidgetScale() const
{
return WidgetScale;
}
void FEditorModeTools::AddReferencedObjects( FReferenceCollector& Collector )
{
Collector.AddReferencedObjects(ActiveScriptableModes);
Collector.AddReferencedObjects(PendingDeactivateModes);
Collector.AddReferencedObjects(RecycledScriptableModes);
Collector.AddReferencedObject(InteractiveToolsContext);
}
FEdMode* FEditorModeTools::GetActiveMode( FEditorModeID InID )
{
if (UEdMode* Mode = GetActiveScriptableMode(InID))
{
return Mode->AsLegacyMode();
}
return nullptr;
}
const FEdMode* FEditorModeTools::GetActiveMode( FEditorModeID InID ) const
{
if (UEdMode* Mode = GetActiveScriptableMode(InID))
{
return Mode->AsLegacyMode();
}
return nullptr;
}
const FModeTool* FEditorModeTools::GetActiveTool( FEditorModeID InID ) const
{
ILegacyEdModeToolInterface* ActiveMode = Cast<ILegacyEdModeToolInterface>(GetActiveScriptableMode( InID ));
const FModeTool* Tool = nullptr;
if( ActiveMode )
{
Tool = ActiveMode->GetCurrentTool();
}
return Tool;
}
bool FEditorModeTools::IsModeActive( FEditorModeID InID ) const
{
return (GetActiveScriptableMode(InID) != nullptr);
}
bool FEditorModeTools::IsDefaultModeActive() const
{
bool bAllDefaultModesActive = true;
for( const FEditorModeID& ModeID : DefaultModeIDs )
{
if( !IsModeActive( ModeID ) )
{
bAllDefaultModesActive = false;
break;
}
}
return bAllDefaultModesActive;
}
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3153514) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3050254 on 2016/07/14 by Marc.Audy Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3049614 Change 3136629 on 2016/09/22 by Marc.Audy bye bye auto Change 3136631 on 2016/09/22 by Marc.Audy Allow objects to be marked as duplicate transient or non PIE duplicate transient ChildActors are not marked consistent with the property that references them as text export transient and non PIE duplicate transient #jira UE-35680 Change 3136636 on 2016/09/22 by Marc.Audy ParticleSystem and Audio Components now route Activate/Deactivate events to blueprints Component Activate/Deactivate events now provide component as a property #jira UE-35191 Change 3136640 on 2016/09/22 by Marc.Audy Expose bReplicates to blueprint component properties #jira UE-34433 Change 3136709 on 2016/09/22 by Ori.Cohen Fix GetBodyInstance returning incorrect bodies when welded kinematics are attached. #JIRA UE-36234 Change 3136710 on 2016/09/22 by Ori.Cohen Fix defer actors not working when the physics scene is simulating. We now flush when the scene is not simulating, as well as a lazy flush that goes through the slow path when needed. This allows us to batch multiple components together. #JIRA UE-35899 Change 3136770 on 2016/09/22 by Marc.Audy Fix compile error Change 3136854 on 2016/09/22 by Marc.Audy Sprite components need to be text export transient #jira UE-36064 Change 3136926 on 2016/09/22 by Ori.Cohen Fix ensure when skeletal mesh bodies have no collision. Change 3137054 on 2016/09/22 by Aaron.McLeran PR #2628: Fix UAudioComponent SubtitlePriority not being initialised (Contributed by alanedwardes) Change 3137058 on 2016/09/22 by Aaron.McLeran PR #2562: ReadCompressedInfo calculates duration for ADPCM audio (Contributed by derekvanvliet) Change 3137060 on 2016/09/22 by Aaron.McLeran UE-36336 Fixing A3D for mono/2D sounds - Making it so if A3D is being loaded but not enabled, we can not have reverb on 2D sounds - Fixing A3D mono sources from failing after a time Change 3137066 on 2016/09/22 by Aaron.McLeran Checking in Ngs2.Build.cs with A3D and USING_A3D set to 0 Change 3137098 on 2016/09/22 by dan.reynolds AEOverview Update: EQ Map, Reverb Map plus improvements on Main array cleanup process. Change 3137132 on 2016/09/22 by Aaron.McLeran PR #2789: Fixed signature of FActiveSound::GetIntParameter (Contributed by Laurie-Hedge) Change 3137175 on 2016/09/22 by Aaron.McLeran Fixing compile error with PhysXCollision.cpp from CL 3136710 Change 3137540 on 2016/09/23 by Thomas.Sarkanen Fixed crash when generating LODs automatically for skeletal meshes Quadric error reduction does not support skeletal meshes, so fails. Client code assumes that it cannot fail so crashed. This guards against immediatly assuming that LODs are valid after simplification. #jira UE-36253 - Crash applying LOD changes in Persona Change 3137720 on 2016/09/23 by Thomas.Sarkanen Changed asset shortcut bar to display asset names & reworked padding #jira UE-36347 - Anim asset shortcut bar has difficult to read/cut-off text Change 3137761 on 2016/09/23 by Martin.Wilson Fix typo in root motion from everything accumulation code Change 3137877 on 2016/09/23 by Thomas.Sarkanen Fixed undo/redo forcing skeletal meshes into t-pose Re-populated AnimationData in InitAnim for UDebugSkelMeshComponent. #jira UE-35579 - If you undo an animation change to any animation asset (for single preview), the playback controls will no longer function Change 3137885 on 2016/09/23 by Benn.Gallagher Fixed APEX clothing disappearing when time dilation results in a dt of 0. After simulating an actor with 0 APEX will fill positions and normals with NaNs, causing the disappearance. The fix in this case is to not schedule the evaluation task if we're not wanting to do any work. The simulation then freezes as we would expect. #jira UE-35151 Change 3137888 on 2016/09/23 by Benn.Gallagher Fixed transition nodes being able to be pasted or duplicated without 2 valid pin links #jira UE-24860 Change 3137889 on 2016/09/23 by Benn.Gallagher Fixed transform and widget inconsistencies in IK edit mode #jira UE-20628 Change 3137890 on 2016/09/23 by Jurre.deBaare Alembic Cached Geometry Does Not Display in Stand Alone Game #fix required to force load the GeometryCache module during runtime #jira UE-36187 Change 3137892 on 2016/09/23 by Jurre.deBaare Geometry cache playback should work in sequencer #fix add Interp UProperty tag to specific properties used for playing back the cache, future fix is having same approach as skeletal mesh animation for sequencer (depends on needs, -> skeletal mesh import has better compression anyway) #jira UE-35447 Change 3137893 on 2016/09/23 by Jurre.deBaare Alembic Cache Importer option for Hard Edge Angle Threshold does not work for objects with no normals #fix adhere to the assumed 'standard' no normals in ABC file means completely smooth normals throughout the sequence #jira UE-35091 Change 3137894 on 2016/09/23 by Jurre.deBaare Importing an Alembic File While mesh Distance Fields are Enabled Crashes Editor #fix Needed to save the raw mesh before building the mesh to ensure a LOD resource was created #misc added a new check + message in case this occurs again #jira UE-36059 Change 3137938 on 2016/09/23 by Jurre.deBaare Alembic Importing with Incorrect UV's #fix adding option for flipping UVs on import #jira UE-36190 Alembic import axis not aligned correctly #fix also added option to specify scale and rotation to be applied during import (with preset for Maya and Max) #jira UE-35510 Change 3137949 on 2016/09/23 by Jurre.deBaare Frame range importing causes confusion during Alembic importing #fix this required storing information per Alembic object at which frame index it actual has stored frames, using this data we can determine which frames are empty, and at which frame there is data. This allows us to skip empty frames if we want to import data-only frames, or to import all frames in the sequence including empty (pre-roll) frames. #misc changed settings UI listview layout (extra columns and resized old ones) #jira UE-35498 Change 3137994 on 2016/09/23 by Martin.Wilson Fix for creating an empty state when dragging a montage into a state machine graph #jira UE-33371 Change 3138103 on 2016/09/23 by Aaron.McLeran UE-36312 Fixing sound node distance cross fade for case of looping sounds Change 3138104 on 2016/09/23 by Aaron.McLeran UE-35392 Copy pasting local node into separate project crashes the engine Change 3138224 on 2016/09/23 by Aaron.McLeran UE-36312 Fixing sound node distance cross fade for case of looping sounds - Adding a check for wave instance count to account for virtualized sounds (one-shots) Change 3138666 on 2016/09/23 by Ben.Zeigler #UEFW-204 Add more comprehensive gameplay tag tests Fix issue with HasTag(Tag, IncludeParent, IncludeParent) revealed by tests, this was not returning true correctly in some cases. This use case is weird and will be deprecated soon Change 3138779 on 2016/09/23 by Marc.Audy Get rid of pointless casts Change 3138782 on 2016/09/23 by Marc.Audy remove some GWorlds Change 3139701 on 2016/09/26 by Jurre.deBaare Assert failed on GemetryCache for PS4 package #fix add GeometryCache reference in engine build.cs and fix the serialization of geometry cache files #jira UE-36392 Change 3139704 on 2016/09/26 by Jurre.deBaare Fix for -1 begin frame #fix do the max as an signed int, to make sure we don't wrap around Change 3139748 on 2016/09/26 by Benn.Gallagher PR #2784: Make sure that SceneScratchBufferSize is a multiple of 16K as requested by PhysX (Contributed by DenizPiri) Moved the definition of the boundary to a FPhysScene class static Changed comments on original user settings property to communicate the fact that the value is now rounded to the next 16K boundary #jira UE-35736 Change 3139903 on 2016/09/26 by Benn.Gallagher Fixed exposing subinstance pins stomping over class defaults and setting to uninitialized values #jira UE-34366 Change 3140409 on 2016/09/26 by Lukasz.Furman fixed uninitialized configs of gameplay debugger copy of CL# 3140399 Change 3140516 on 2016/09/26 by dan.reynolds AEOverview Map Update - Ambient Zone + Focus Test Change 3140526 on 2016/09/26 by Jon.Nabozny #rn Fixed CanJump inconsistencies with previous versions. Deferred JumpCurrentCount increment until after jump, made bWasJumping a member variable, and updated how jump count and hold time were compared in CanJump. #jira UE-35524, UE-35582 Change 3140745 on 2016/09/26 by dan.reynolds AEOverview Test Map Update + Occlusion Test Change 3140839 on 2016/09/26 by dan.reynolds AEOverview - minor updates Change 3141101 on 2016/09/27 by Thomas.Sarkanen Preview scene worlds now render correctly Split "Preview" type into "EditorPreview" (the default) and "GamePreview". Deprecated the old "Preview" world type (but kept its index). In-game hidden flags now apply to GamePreview, but not EditorPreview worlds. Deprecated old bHack_Force_UsesGameHiddenFlags_True boolean. GamePReview now serves this purpose. Fixed up UT cases where this was being used. FPreviewScenes now use the editor mode by default, but can be set to non-editor if needed (as is the case with the still-experimental UViewport). Custom depth pass is not enabled for EditorPreview (as before) but is for GamePreview. Fixed erroneous use of TEnumAsByte for non-uproperty WorldType. #jira UE-22883 - Using FPreviewScenes in-game for scene captures Change 3141106 on 2016/09/27 by Thomas.Sarkanen Column toggling improvements Column toggle menu now does not close when items are selected. This requries some Slate changes to how submenus are built to allow for sumbenus to specify whether they close after selection. Also allowed columns to be hidden by default for specific use cases (like the sequence browser). #jira UE-35818 - Anim asset browser column picker should stay up Change 3141131 on 2016/09/27 by Thomas.Sarkanen Fix CIS warnings Fallout from preview world changes Change 3141143 on 2016/09/27 by Jurre.deBaare Fix for CIS errors Change 3141235 on 2016/09/27 by Thomas.Sarkanen Fix offset of Persona floor mesh when auto-alignment is enabled When auto alignment was disabled, the offset wasnt getting taken into account. #jira UE-35544 - In Persona, Floor Height Offset does nothing with Auto Align Floor to Mesh disabled Change 3141327 on 2016/09/27 by Marc.Audy Ensure that the client side AttachChildren array remains accurate #jira UE-26025 Change 3141474 on 2016/09/27 by mason.seay Updating test map name and moving PlayerStart Change 3141501 on 2016/09/27 by Benn.Gallagher Loading time improvements for destructibles from Nvidia Updated to use new framework custom version instead of global object version Fixed usage of TArray to enable correct loading and saving of the cached data. #jira UE-29680 Change 3141889 on 2016/09/27 by Marc.Audy Fix DestructibleMesh when WITH_APEX is 0 #jira UE-36484 Change 3142034 on 2016/09/27 by Marc.Audy Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3141971 Change 3142131 on 2016/09/27 by Ori.Cohen Make sure we return eTouch to physx during an overlap query. Fixes bad behavior when multiple objects blocked in an overlap query. #JIRA UE-36381 Change 3142154 on 2016/09/27 by Ori.Cohen Fix build, ModuleCachedData instead of NxApexModuleCachedData Change 3142159 on 2016/09/27 by mason.seay Blueprint for testing Child Actor Templates Change 3142255 on 2016/09/27 by Jon.Nabozny Fix crashes in QAMeshMerge component by making it a UObject, exposing it's method statically, and taking QASkeletalMeshMergeParams as an argument. #jira UE-35199, UE-35197, UE-35201 Change 3142717 on 2016/09/27 by dan.reynolds AEOverview Update + Sound Class Test Change 3142764 on 2016/09/27 by Marc.Audy Fix Ocean deprecation warnings Change 3142962 on 2016/09/28 by Thomas.Sarkanen Fixed bounds calculations for local camera animations Correctly calculated bounds as local to the initial transform in the track. Implemented suggested fixes from UDN user chhaddon (The Coalition). #jira UE-29594 - CameraAnim bounds are incorrect when bRelativeToInitialTransform == true Change 3143007 on 2016/09/28 by Martin.Wilson Added virtual bones to USkeleton API Breaking change: -Added USkeleton pointer to RemoveBonesByName -FReferenceSkeleton::UpdateRefPoseTransform & FReferenceSkeleton::Add made private. Must use FReferenceSkeletonModifier instead #jira UEFW-81 Change 3143040 on 2016/09/28 by James.Golding Strip DrawDebug.. functions from Shipping and Test builds, controlled by new define ENABLE_DRAW_DEBUG Fix up game projects to compile in Shipping/Test after this change PR #2757: (Contributed by projectgheist) #jira UE-35488 Change 3143046 on 2016/09/28 by James.Golding Fix OrionEnvironmentPerfTest.cpp compiling in Shipping (optimizations were not being re-enabled at end of file) Change 3143047 on 2016/09/28 by James.Golding PR #2731: Capsule primitive drawing fix (Contributed by kamrann) #jira UE-35142 Change 3143050 on 2016/09/28 by Martin.Wilson Update DDC key as some animation have stale data Change 3143088 on 2016/09/28 by Martin.Wilson CIS Fixes for Ocean after FReferenceSkeleton changes Change 3143090 on 2016/09/28 by Benn.Gallagher Fixed split pins in animation blueprints losing their pin links on editor restart. The anim nodes had opted out of the Super version of reconstruct, but that's where split pin restoration was added so we were skipping it. #jira UE-36482 Change 3143091 on 2016/09/28 by Thomas.Sarkanen Fix play/pause keyboard shortcut toggle in Persona based editors Correctly handled widget mode switching in the skeleton selection edit mode (previously it was manually handling this rather than hooking into the correct level viewport callbacks). Added the ability for FEdModes to specify whether they can use a widget mode. Added a common set of commands that all Persona-based editors can opt into (only contains TogglePlay for now). #jira UE-35163 - Cannot use Play/Pause shortcut in Persona if viewport is focused Change 3143100 on 2016/09/28 by James.Golding UE-32275 Fix Anim Curve entries losing Auto state when hidden/reshown Change 3143107 on 2016/09/28 by Martin.Wilson Add check to IsRunningParallelEvaluation to verify that the skeletal mesh component in question still references us #jira UE-34431 Change 3143125 on 2016/09/28 by Jurre.deBaare PR #2749: Fix blend space triangulation (Contributed by tmiv) Change 3143225 on 2016/09/28 by Jurre.deBaare Mesh/material merging basic test files Change 3143235 on 2016/09/28 by Martin.Wilson Fix issue where montage wrong section was updated with changes from details panel when clicking on a new section #jira UE-35929 Change 3143312 on 2016/09/28 by Marc.Audy Don't globally reregister components, globally recreate render state instead when force deleting assets Fixes crash force deleting a blueprint with a child actor component in it from the content browser Change 3143340 on 2016/09/28 by Mieszko.Zielinski Improved consistency of loudness usage in AISense_Hearing #UE4 Change 3143359 on 2016/09/28 by Marc.Audy Fix spelling error in comment Change 3143372 on 2016/09/28 by Jurre.deBaare HLOD meshes are causing degenerate triangles #fix Setting flag to ignore degenerate triangles when building the meshes vertex/index buffers #jira UE-34336 Change 3143420 on 2016/09/28 by Mieszko.Zielinski Fix to BlackboardData initialization's dependency on parent asset's initialization #UE4 Change 3143421 on 2016/09/28 by Martin.Wilson Allow reading on animation sequence length in blueprints #jira UE-34168 Change 3143455 on 2016/09/28 by James.Golding Add 'noop' versions of DrawDebug function, so you will not get compile errors by default for calling them in Shipping/Test builds. Added optional SHIPPING_DRAW_DEBUG_ERROR define, which will give compile errors in Shipping/Test if still calling DrawDebug functions Change 3143518 on 2016/09/28 by Jurre.deBaare Meshes with no UV Coordinates will break the UVs of other meshes contained in the same HLOD if they share a material #fix calculate UV bounds and check whether they occupy any space (if not do not use them for baking out the material) #misc set texture sampling for HLOD proxy base material to clamp #jira UE-35221 Change 3143542 on 2016/09/28 by James.Golding Change SHIPPING_DRAW_DEBUG_ERROR define from ifdef to if Fix comment Enable by default for FN Change 3143543 on 2016/09/28 by Benn.Gallagher Changed branch + early return into an ensure during FPxQueryFilterCallback::preFilter. We were checking for invalid shapes in preFilter but that shouldn't happen. More likely to get some information as an ensure instead of earlying out on the funciton. Change 3143556 on 2016/09/28 by Aaron.McLeran UE-36540 Editor Preferences 'Enable Sound' option causes Real Time Audio to Stop Working after PIE Change 3143566 on 2016/09/28 by Benn.Gallagher Readded early out alongside new ensure for catching bad preFilter shapes Change 3143568 on 2016/09/28 by Marc.Audy Fix deprecation warnings in UT Change 3143572 on 2016/09/28 by Jurre.deBaare More test content for mesh/material merging Change 3143581 on 2016/09/28 by Jurre.deBaare More content :D Change 3143585 on 2016/09/28 by Jurre.deBaare Geometry cache cleaning #misc fix for missing materials, not serialized (facepalm) as they were added later on (required custom version bump) #misc cleaning out unecessary code Change 3143594 on 2016/09/28 by Marc.Audy Creating a child actor component by dragging an actor blueprint in to another blueprint now properly creates the template #jira UE-36511 Change 3143658 on 2016/09/28 by Marc.Audy RootComponent can be null by the time we hit PostUnregisterAllComponents so need to protect against the dereference #jira UE-36553 Change 3143776 on 2016/09/28 by Marc.Audy Properly reinstance child actor templates when using the fast reinstancing path #jira UE-36516 Change 3143896 on 2016/09/28 by Ori.Cohen Remove UPROPERTY on aggregate threshold which is always read from the physics settings. Change 3144022 on 2016/09/28 by Ben.Zeigler Move AIMoveTo node from BlueprintGraph to AIGraph and remove BlueprintGraph->AIModule dependency in build system Change 3144252 on 2016/09/28 by mason.seay More blueprints for child actor template testing Change 3144262 on 2016/09/28 by Mason.Seay Deleting assets Change 3144283 on 2016/09/28 by dan.reynolds AEOverview update + Sound Priority Test Change 3144411 on 2016/09/28 by dan.reynolds AEOverview end of day update and tweaks Change 3144679 on 2016/09/29 by Benn.Gallagher Changed skeletal bounds calculation to not consider clothing assets that aren't simulating in the current LOD. In this case we're not rendering the clothing, we're only rendering the skeletal geometry for that section in that LOD which isn't bound to cloth. Change 3144856 on 2016/09/29 by Jurre.deBaare HLOD Outliner scrolls back to the top when generating proxy meshes #fix OnLevelActorsAdded was getting called for actors in the thumbnail worlds, which forced a refresh on the listview #jira UE-30384 Change 3144864 on 2016/09/29 by Thomas.Sarkanen Preview mesh fixes Animation preview meshes are now respected (and saved). Mesh is displayed as empty if none is set (but a default is chosen). Skeleton preview meshes are now shown as empty if none is set (but a default is chosen). #jira UE-36582 - Cannot set preview mesh per-animation Change 3144865 on 2016/09/29 by Jurre.deBaare More test content Change 3144885 on 2016/09/29 by James.Golding UE-35307 Move 'invalid scale' warning to Message Log to be more visible in editor Change scale clamping in UpdateBodyScale to catch cases like (1,0,1) Change 3144903 on 2016/09/29 by Thomas.Sarkanen Deprecating StaticMesh in UStaticMeshComponent Added GetStaticMesh to access the value as read-only. SetStaticMesh is now called in all locations that used to call "StaticMesh =". Lots of fixups. #jira UE-24859 - Deprecate public access to StaticMesh property in UStaticMeshComponent Change 3145020 on 2016/09/29 by Thomas.Sarkanen Fix bounds calculations that include bones to respect LOD (and other requried bones) Sometimes bones would not be updated if we LOD switched, extending the bounds. #jira UE-36525 - UDebugSkelMeshComponent::CalcBounds should filter by LOD Change 3145041 on 2016/09/29 by Jurre.deBaare Setting the Target Lightmap UV Channel to an incorrect value leads to inconsistent results #fix removed target light map channel, we now determine according to the UV channels which are unused in the final mesh #misc ignore the source lightmap uv channels to reduce data #jira UE-36595 Change 3145219 on 2016/09/29 by Benn.Gallagher Fixed clothing actors not casting shadows in editor, after the material editing change the copy of the shadow flag was missed from the clothing association code, which runs on again on older clothing assets to use the new render data skinning. Also added some fix up for assets that have be saved in the mean time. #jira UE-36552 Change 3145222 on 2016/09/29 by Jurre.deBaare Exporting Alembic Skeletal mesh from UE4 to FBX causes a crash #fix on import set _all_ bone influence to 0 #jira UE-36602 Change 3145267 on 2016/09/29 by Ori.Cohen Move OnConstraintBreak delegate so that it fires outside of fetchResults. Fixes crash from user doing unsafe things during fetchResults. #JIRA UE-36483 Change 3145306 on 2016/09/29 by Jon.Nabozny Fixed PhAT so multiple constraints can be selected and edited properly at the same time. #JIRA: UE-31493 Change 3145342 on 2016/09/29 by Marc.Audy Do not update cull distance volumes whenever any property changes * Any movement or property change of a cull distance volume still does a global update * Any movement of a component belong to any other Actor updates only the components of that Actor * Any property change of a primitive component only updates that component #jira UE-36399 Change 3145958 on 2016/09/29 by Marc.Audy In game worlds don't auto activate components until the actor is ready to process them #jira UE-35189 Change 3146110 on 2016/09/29 by dan.reynolds AEOverview update + Soundwave Procedural Test Map Change 3146375 on 2016/09/30 by Benn.Gallagher Fixed crash saving newly created destructible mesh after material refactor. #jira UE-36619 Change 3146378 on 2016/09/30 by James.Golding UE-35908 Line trace against a BodyInstance now returns closest hit for trimesh (was any hit before) Also add stat for FBodyInstance::LineTrace Change 3146379 on 2016/09/30 by James.Golding Add test assets for creating procmesh collision in non-editor builds Change 3146386 on 2016/09/30 by Thomas.Sarkanen Fixed ensures (and functionality) of 'show uncompressed animation' option in Persona viewports Made sure that PreEvaluateAnimation is called for th einstance in use, rather than only the preview instance. This unearthed another issuye where each of the calls to GenSpaceBAses was causing the animation to run faster. Fixed this by resetting the update flag in the update context after it is used. #jira UE-36251 - Ensures showing uncompressed animations in anim blueprints Change 3146464 on 2016/09/30 by Thomas.Sarkanen Fix layered blend per bone odd/even connection counts alternately working/not working Older hacky fix for multi-property to array copies flip-flipped between using fast path and not, when it really should have disabled fast path after the first array pin. Now it disables fast path based on whether this is a new handler or not, rather than looking at the SimpleCopyPropertyName. #jira UE-35648 - Layered Blend Per Bone doesn't work correctly with 3+ inputs Change 3146652 on 2016/09/30 by Benn.Gallagher Fixed subinstance properties appearing in the caller's details panel as oddly named properties. #jira UE-34141 Change 3146673 on 2016/09/30 by Martin.Wilson Make RawAnimationData (and associated anim sequence data) private #jira ue-25869 Change 3146680 on 2016/09/30 by Benn.Gallagher Fixed errant asterisks in tooltips for source and target bone on rotation multiplier controller node #jira UE-29847 Change 3146681 on 2016/09/30 by Benn.Gallagher Fixed incorrect tooltip on left hand IK bone in hand ik retargetting node #jira UE-30885 Change 3146711 on 2016/09/30 by Jon.Nabozny Fix PhAT SnapConstraintToBone. #jira UE-31491 Change 3146717 on 2016/09/30 by Danny.Bouimad Adding Jurres really useful merge actor test assets to somewhere QA can get em. Change 3146738 on 2016/09/30 by Martin.Wilson Fix pose blending for on non-additive pose blending + remove normalising of weights for weights less than 1 #tests Editor tests with mambo pose asset #jira UE-36189 Change 3146750 on 2016/09/30 by Jurre.deBaare Material baking issue #misc Removed the renderer initialization which causes issue the first time you would render out a material (gradient from top left to bottom right over the texture) #misc Replaced incorrect masks with _way_ better approach thanks to Martin Change 3146755 on 2016/09/30 by Jurre.deBaare Need better progress bar for HLOD #fix replaced the progress updates with new more 'correct' ones according to the actual workload and fixed up the Simplygon progress callback #jira UE-34334 Change 3147085 on 2016/09/30 by Marc.Audy PR #2815: GetNextViewablePlayer now checking and returning correct PlayerState. (Contributed by joshkay) #jira UE-36632 Change 3147224 on 2016/09/30 by Martin.Wilson CIS Fix Change 3147280 on 2016/09/30 by Marc.Audy Mouse smoothing should use application frame rate, not the dilated game frame rate #jira UE-31040 Change 3147446 on 2016/09/30 by Aaron.McLeran UE-36682 SoundCue Delay Not Consuming Input StartTime Correctly Change 3147693 on 2016/09/30 by Ben.Zeigler #jira UE-36657 If a player has an existing Pawn during RestartPlayer, use that pawn's rotation instead of the start spot, because we were already keeping the pawn's location Change 3147697 on 2016/09/30 by Jon.Nabozny Add rotation parameter to FBodyInstance::Sweep and FBodyInstance::InternalSweepPhysX #jira UE-30486 Change 3147761 on 2016/09/30 by Jon.Nabozny Fix AUTRepulsorBubble UPrimitiveComponent::SweepComponent usage. Change 3148533 on 2016/10/03 by Thomas.Sarkanen Fix new deprecation warnings introduced by the pull from main Change 3148567 on 2016/10/03 by Marc.Audy Fix crash when exiting PIE while a panoramic screenshot is being taken Make stereo panorama tick with the world it is operating on #jira UE-36492 Change 3148571 on 2016/10/03 by Marc.Audy Allow modification of components that are EditAnywhere but don't exist in the CDO #jira UE-36694 Change 3148607 on 2016/10/03 by Martin.Wilson Properly end notify states when we clear the anim instance on a skeletal mesh. #jira UE-32488 Change 3148711 on 2016/10/03 by Martin.Wilson Fix type in virtual bone tooltip #jira UE-36703 Change 3148746 on 2016/10/03 by Benn.Gallagher Fixed a few cases where post process and sub instance anim calls weren't being made correctly. #jira UE-36529 Change 3148807 on 2016/10/03 by Martin.Wilson Fix mismatch skeleton error when undoing virtual bone changes #jira UE-36705 Change 3148812 on 2016/10/03 by Martin.Wilson Add undo support to removing virtual bones #jira UE-36706 Change 3148975 on 2016/10/03 by Jurre.deBaare Issue with combining meshes both with/without normal maps #fix make sure we always output atleast the default normal value when baking out materials, this to ensure we output non-black values for meshes without normal maps (this would cause the normal to be incorrect) #misc fixed issue in function to set texture rectangle to a single colour #misc spotted comparison error Change 3148976 on 2016/10/03 by Ori.Cohen Make sure that shape queries that we pass into physx are never size 0. Fixes some NaNs #JIRA UE-36639 Change 3148991 on 2016/10/03 by Jurre.deBaare Changing LOD materials on Merged Actors Crashes Editor #fix take into account LOD that is using the material when remapping (removing duplicate) materials #jira UE-35883 Change 3148997 on 2016/10/03 by Jurre.deBaare Make sure we remove matrix samples that fall outside of the import range and remap those that are in range Change 3149002 on 2016/10/03 by Jurre.deBaare Issues with importing Alembic caches using matrix transformations #fix Apply conversion matrix to imported matrix samples to make them match the DCC package they were exported from Change 3149030 on 2016/10/03 by Martin.Wilson Dont show save warning on animations when we have curve data #jira UE-34145 Change 3149115 on 2016/10/03 by Mieszko.Zielinski Made PathfollowingComponent distinct between patrial and full paths in terms of acceptance radius used, when trying to determin if pathing agent is at goal location #UE4 #jira UE-35153 Change 3149186 on 2016/10/03 by Ben.Zeigler #UE-36722 Fix failure to spawn when trying to spawn 4 capsules in the exact same location There's no "Correct" direction to move out of a penetrating capsule, but old PhysX appeared to be consistent. New PhysX is not, so now we save and restore the adjustment instead of letting previous iterations modify it. This code is weird but this solution is better than the old version and handles inconsistent results Change 3149235 on 2016/10/03 by Martin.Wilson Change inline curve name editing to only change the name of that specific curve, instead of renaming the smart name itself. #jira UE-20005 Change 3149245 on 2016/10/03 by Marc.Audy Remove duplicate entries from AttachChildren caused by lack of atomic cross-object updates. Change 3149397 on 2016/10/03 by Ori.Cohen Fix collision profile writing out response values to channels that don't exist. #JIRA UE-36359 Change 3149679 on 2016/10/03 by Zak.Middleton #ue4 - Don't mark CharacterMovementComponent::bUseControllerDesiredRotation as an advanced property. Consolidate rotation settings (RotationRate, bUseControllerDesiredRotation, bOrientRotationToMovement) in a new "Rotation Settings" category. Change 3149929 on 2016/10/04 by Jurre.deBaare Fix for CIS errors #fix Mac didn't like undefined struct Change 3149977 on 2016/10/04 by danny.bouimad Massive update to Merge Actor test files Change 3150014 on 2016/10/04 by James.Golding UE-36686 Fix crash when slicing and not creating other section Change 3150016 on 2016/10/04 by James.Golding UE-35335 MergeActors now converts box collision to convex, so collision scales correctly after merging Change 3150019 on 2016/10/04 by James.Golding UE-36737 Fix LineTraceComponent not returning face index Change 3150020 on 2016/10/04 by James.Golding UE-36672 Export PhysicsContstraintComponent class so it can be subclassed outside Engine module Change 3150027 on 2016/10/04 by Ben.Marsh Add PhysX build option into Dev-Framework. Change 3150042 on 2016/10/04 by Benn.Gallagher Fixed clothing example 1.3 collision glitches Change 3150172 on 2016/10/04 by Benn.Gallagher Made Skeletal Mesh LOD reimports clear any existing simplification flag so we don't show "generated" next to LOD entries for them. #jira UE-36589 Change 3150319 on 2016/10/04 by Ori.Cohen Go back to only deferring body creation per component. This can now use the slow path when needed. Can't support deferring of multiple components without changing locking API so we'll do that in the future. #JIRA UE-36535, UE-36504 Change 3150355 on 2016/10/04 by Zak.Middleton #ue4 - Change checkSlow() to check() in GetDefaultObject<> because this is potentially an unsafe static cast. Change 3150370 on 2016/10/04 by Ori.Cohen Fix deferred actors not getting flushed. Change 3150386 on 2016/10/04 by Martin.Wilson Fix additive animation check failing in cooked builds when using virtual bones #jira UE-36743 Change 3150424 on 2016/10/04 by Ori.Cohen Exclude kinematic actors from active transforms generation. Change 3150613 on 2016/10/04 by Zak.Middleton #ue4 - Fix bad GetDefaultObject<> in AbilitySystemGlobals. Turned up since changing checkSlow() to check() in GetDefaultObject. (Mirror CL 3138304 in Orion-DevGeneral) #jira UE-36810 #tests compiled Change 3150679 on 2016/10/04 by Ben.Zeigler Crash fix with no async scene Change 3150765 on 2016/10/04 by Ben.Zeigler Deprecate UStructProperty::ExportTextItem_Static and ImportItem_Static, and add ExportText and ImportText directly to UScriptStruct Add bAllowNativeOverride to specify rather to call the native override. For unclear reasons the static export skipped the native override while the static import included it This allows calling the generic ImportText from inside a native ImportTextItem and then doing some post processing Change 3150796 on 2016/10/04 by Marc.Audy Fix LOCTEXT warnings related to blueprint class menu options Change 3150806 on 2016/10/04 by Ben.Zeigler Fix bad text format in import error message, lead to double error Change 3150891 on 2016/10/04 by Ben.Zeigler #jira UE-36170 Fix duplicate GUID spam when async loading levels during PIE by checking the package flag instead of the runtime global Change 3150914 on 2016/10/04 by Marc.Audy Don't try to recreate render state if it has already been recreated while the recreate context was active #jira UE-36590 Change 3151195 on 2016/10/04 by Dan.Reynolds Updates to QASoundWaveProcedural QASoundWaveProcedural edited to be a GameplayStatic which spawns an Audio Component Handler as well as a Procedural Sound Wave. Support for envelope shaping (Attack, Sustain, Release) as well as multiple waveforms (Sine, Triangle, Sawtooth, Square). Blueprint API expanded to include separate functions for setting QASoundWaveProcedural settings and Playing. Change 3151233 on 2016/10/04 by Ben.Zeigler #jira UE-36836 Fix variable shadowing warnings Change 3151328 on 2016/10/04 by dan.reynolds AEOverview Update - Added Sound Wave Procedural test map and added support for mobile (tested on Android) menu selection - Still a WIP Change 3151461 on 2016/10/05 by Thomas.Sarkanen Fix localization warnings #jira UE-36720 - //UE4/Main: Step 'Build Engine Localization' - 2 Warnings Change 3151546 on 2016/10/05 by Martin.Wilson Fix pose watch regression due to persona refactor changes. #jira UE-36851 Change 3151587 on 2016/10/05 by Jurre.deBaare Updating Simplygon to SDK version 8.0 #misc removed redundant files #misc fixed landscape culling in merge actor path #misc added support for volume culling using simplygon #misc fixed when or not to use mesh data for material baking #notes Change: 3137650 Date: 23/09/2016 07:57 Client: Mustafa.Tungekar_Dev-Partner-Simplygon User: Mustafa.Tungekar Status: submitted Type: restricted ImportedBy: Identity: Description: -Renamed commandline variables for ZipUtils AutomationScript -Implemented Execute instead of ExecuteBuild -Updated commandline arguments in SimplygonSwarm JobStatus: Jobs: Files: //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonSwarm/Private/SimplygonSwarm.cpp#4 //UE4/Dev-Partner-Simplygon/Engine/Source/Programs/AutomationTool/Scripts/ZipUtils.Automation.cs#2 Change: 3137649 Date: 23/09/2016 07:56 Client: Mustafa.Tungekar_Dev-Partner-Simplygon User: Mustafa.Tungekar Status: submitted Type: restricted ImportedBy: Identity: Description: Moved file hash computation to ImportObject JobStatus: Jobs: Files: //UE4/Dev-Partner-Simplygon/Engine/Source/Editor/UnrealEd/Classes/Factories/Factory.h#4 //UE4/Dev-Partner-Simplygon/Engine/Source/Editor/UnrealEd/Private/Factories/Factory.cpp#4 Change: 3137646 Date: 23/09/2016 07:55 Client: Mustafa.Tungekar_Dev-Partner-Simplygon User: Mustafa.Tungekar Status: submitted Type: restricted ImportedBy: Identity: Description: Fixes CL3099204 EditorPerProjectUserSetting Removed ConfigRestartRequired attribute from properties where it was not required MeshUtilities -Added FProxyFailedDelegate -Extended IMeshMerging to include FProxyFailed delegate -Added ProxyGenerationFailed method to FProxyGenerationProcessor class -Setup FailedDelegate for both MeshMerging and DistributedMeshMerging SimplygonMeshReduction -Added check for invalid texture id -Updated notes and removed commented code that is not required. -Setup failed delegate -Fixed issue where image data was never hooked into the texture. -Fixed issue where texture table was never passed into casters SimplygonSwarm -Setup failed delegate -Fixed RawMesh pointer usage. -Move helper method into SimplygonSwarmHelpers.h. -Added SimplygonSwarmHelpers -Removed redundant constant path to 7-zip -Removed GetSimplygonDirectory instead using inplace. -Removed commented code that is currently not required. -Fixed Typos JobStatus: Jobs: Files: //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/MeshUtilities/Private/MeshUtilities.cpp#3 //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/MeshUtilities/Public/MeshUtilities.h#3 //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonMeshReduction/Private/SimplygonMeshReduction.cpp#4 //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonSwarm/Private/SimplygonSwarm.cpp#3 //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonSwarm/Public/SimplygonSwarmHelpers.h#1 //UE4/Dev-Partner-Simplygon/Engine/Source/Editor/UnrealEd/Classes/Editor/EditorPerProjectUserSettings.h#3 Change: 3099204 Date: 24/08/2016 07:56 Client: Mustafa.Tungekar_Dev-Partner-Simplygon User: Mustafa.Tungekar Status: submitted Type: restricted ImportedBy: Identity: Description: Simplygon 8.0 Updates Deprecated support for 7.0 and updated SimplygonSwarm and SimplygonMeshReduction to use 8.0 EditorPerProjectSettings *SwarmMaxUploadChunkSizeInMB for limiting the max upload size for swarm. Note the Simplygon Grid has a limitation of 2GB *SwarmNumOfConcurrentJobs for executing number of concurrent jobs *Fixed issue where SG_MATERIAL_CHANNEL_METALLIC to SG_MATERIAL_CHANNEL_METALNESS (Chage in 8.0 SDK) SPL, SimplygonSwarm, RESTClient *Bumped up SPL Version to 8 *Fixed code paths to use ZipUtils UAT script for zipping and unzipping CL3094374 *Removed SPL Templates for version 7.0 *Added conditional logging to REST methods *Added multi part upload. The RESTClient automatically decided if large files need to be split up before uploading to simplygon grid. *Updated method to take in texturepath SimplygonMeshReduction *Removed minimum version requirement. *Bumped up minimum version *Chagned license file name to refelect 8.0 changes *MaterialBaking related method now take in TextureTable as an extra parameter. This is due to 8.0 move away from old way of setting up materials and using SimplygonShadingNetowrk based appraoch. JobStatus: Jobs: Files: //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonMeshReduction/Private/SimplygonMeshReduction.cpp#3 //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonMeshReduction/Public/SimplygonTypes.h#2 //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonSwarm/Private/SimplygonRESTClient.cpp#3 //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonSwarm/Private/SimplygonSwarm.cpp#2 //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonSwarm/Public/SimplygonRESTClient.h#2 //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonSwarm/Public/SimplygonSwarmPrivatePCH.h#2 //UE4/Dev-Partner-Simplygon/Engine/Source/Editor/UnrealEd/Classes/Editor/EditorPerProjectUserSettings.h#2 //UE4/Dev-Partner-Simplygon/Engine/Source/Editor/UnrealEd/Private/Settings/EditorPerProjectUserSettings.cpp#2 Change: 3099200 Date: 24/08/2016 07:48 Client: Mustafa.Tungekar_Dev-Partner-Simplygon User: Mustafa.Tungekar Status: submitted Type: restricted ImportedBy: Identity: Description: #fix Copy constructor for FMeshReduciton mapped ShadingImportance to SilhouetteImportance JobStatus: Jobs: Files: //UE4/Dev-Partner-Simplygon/Engine/Source/Runtime/Engine/Classes/Engine/MeshMerging.h#2 Change: 3099199 Date: 24/08/2016 07:47 Client: Mustafa.Tungekar_Dev-Partner-Simplygon User: Mustafa.Tungekar Status: submitted Type: restricted ImportedBy: Identity: Description: Added Automation Script ZipUtils to zip file and unzip files from SimplygonSwarm. This will remove any dependency on external zip program and should work across platforms JobStatus: Jobs: Files: //UE4/Dev-Partner-Simplygon/Engine/Source/Programs/AutomationTool/Scripts/AutomationScripts.Automation.csproj#2 //UE4/Dev-Partner-Simplygon/Engine/Source/Programs/AutomationTool/Scripts/ZipUtils.Automation.cs#1 Change: 3099197 Date: 24/08/2016 07:40 Client: Mustafa.Tungekar_Dev-Partner-Simplygon User: Mustafa.Tungekar Status: submitted Type: restricted ImportedBy: Identity: Description: *Speed improvements for FBX Scene Importer *Added a static method to compute Hash. JobStatus: Jobs: Files: //UE4/Dev-Partner-Simplygon/Engine/Source/Editor/UnrealEd/Classes/Factories/Factory.h#3 //UE4/Dev-Partner-Simplygon/Engine/Source/Editor/UnrealEd/Private/Factories/Factory.cpp#3 //UE4/Dev-Partner-Simplygon/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxStaticMeshImport.cpp#2 //UE4/Dev-Partner-Simplygon/Engine/Source/Runtime/Engine/Classes/EditorFramework/AssetImportData.h#2 //UE4/Dev-Partner-Simplygon/Engine/Source/Runtime/Engine/Private/EditorFramework/AssetImportData.cpp#2 Change 3151664 on 2016/10/05 by Richard.Hinckley Fixing ACharacter template for "New C++ Class" feature. Avoiding naming a function parameter the same as an existing class member. Change 3151729 on 2016/10/05 by Thomas.Sarkanen Audit of remaining NaN checks Some checks remain on in shipping (generally those called from blueprint): - AActor::TeleportTo - AActor::SetActorRelativeScale3D #jira UE-30999 - Optimize ⌠ContainsNaN÷ and ⌠ContainsNaNOrInfinite÷, audit those still in shipping/test Change 3151742 on 2016/10/05 by Ori.Cohen Make sure that if physical animation component doesn't find a body and bone it doesn't crash. #JIRA UE-36839 Change 3151756 on 2016/10/05 by Jurre.deBaare Fixing d3dcompiler_47.dll missing issue #fix added runtime dependency and dll name to build.cs file #fix now load the d3dcompiler_47.dll from the Binaries/ThirdParty/Windows folder before loading the simplygon DLL Change 3151761 on 2016/10/05 by Thomas.Sarkanen Fix deprecation warning from last integration Moved Preview to EditorPreview in FEditorWorldManager::OnWorldContextAdd. #jira UE-36858 - Compile UE4Editor* completed with 1 warning Change 3151782 on 2016/10/05 by Jurre.deBaare Simplygon patch up #misc linker errors popping up from JSONCPP #misc incorporated emissive material property fix from other shelve #misc static analysis fix Change 3151804 on 2016/10/05 by Marc.Audy Clear need end of frame update when unregistering a component Change 3151928 on 2016/10/05 by Ori.Cohen Fix runtime DLLs not including all delay loaded physx dll files. #JIRA UE-36816 Change 3151977 on 2016/10/05 by Martin.Wilson Notifies can no longer occupy the same time on the same track. #jira UE-30658 Change 3151989 on 2016/10/05 by Jon.Nabozny Fix ArchVis character rotation pitch when looking up/down. #jira UE-35706 Change 3152083 on 2016/10/05 by Marc.Audy Ensure that pending kill components get their marked for end of frame state cleared. Change 3152086 on 2016/10/05 by Ben.Zeigler #jira UE-36169 Fix it so missing linker errors that point to Blueprint CDOs are skipped, the same way it skips linker errors going to the actual class. Fixes a lot of spurious warnings from deleting components from blueprints or native classes Clean up the VerifyImport error handling so it also displays in -game and cook, and fix the missing class warning to work properly, previously it would happen 0% in development 100% in debug even if the class was valid Change 3152093 on 2016/10/05 by Marc.Audy Change logic for when location cannot be changed for a static component to be independent of has begun play and have to do with whether construction script is running or the level is in the process of loading (mostly for backwards compatibility adjustments in post load). #jira UE-36146 #jira UE-24647 Change 3152100 on 2016/10/05 by Ben.Zeigler Remove pragma optmize Change 3152112 on 2016/10/05 by Marc.Audy Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3152072 Change 3152134 on 2016/10/05 by Jurre.deBaare Simplygon/Merge actor issues #fix for emissive output on meshes that do not have emissive properties #fix for texture binning, not removing invalid split area causing overlapped textures Change 3152136 on 2016/10/05 by James.Golding UE-36859 Fix tooltip saying you can click to stop recording Change 3152169 on 2016/10/05 by James.Golding UE-31209 UE-30935 : Expose bDeformableMesh and bFastCook options in FTriMeshCollisionData ProceduralMeshComponent will now cook using 'fast' and 'deformable' options, so updating collision on sections should work correctly Change ERuntimePhysxCookOptimizationFlags to EPhysXMeshCookFlags and use that to pass options to CookConvex and CookTriMesh Change 3152202 on 2016/10/05 by Jurre.deBaare Mac/Linux fix Change 3152303 on 2016/10/05 by Marc.Audy Fix deprecation warning post merge from main Change 3152320 on 2016/10/05 by Martin.Wilson Fix root motion from everything calculating incorrect root motion when animations haven't been ticking #jira UE-35364 Change 3152354 on 2016/10/05 by James.Golding PoseDriver should pass through if no poses activated Change 3152357 on 2016/10/05 by James.Golding UE-36844 Remove unused OnAssetModifiedNotifier delegate from PoseAsset, ensure OnPoseListChanged is called when updating PoseAsset from anim. Change 3152556 on 2016/10/05 by Marc.Audy Remove autos Change 3152560 on 2016/10/05 by Marc.Audy Don't allow child actor references to be dragged from the outliner to a level script #jira UE-16700 Change 3152568 on 2016/10/05 by Marc.Audy Don't allow non-networking code to set bRemoteOwned in the actor spawn parameters Remove deprecated bNoCollisionFail #jira UE-35928 Change 3152575 on 2016/10/05 by Marc.Audy Allow construction script to run post move for native classes. Actor can determine whether it should only occur on finish or every call to post edit move Change 3153101 on 2016/10/06 by Thomas.Sarkanen Fix crash re-opening the viewport in Persona-based editors #jira UE-36775 - Editor crashes when re-opening viewport in Persona Change 3153139 on 2016/10/06 by James.Golding UE-36908 Remove GetRuntimeOnlyCookOptimizationFlags if cooking is not supported Change 3153160 on 2016/10/06 by Thomas.Sarkanen Fix for crash when deleting additive layer track Code had not been updated to use the new delgate system (was still using reciprocal FPersona ptr). #jira UE-36740 - Crash when removing or disabling an additive layer track in Persona Change 3153175 on 2016/10/06 by Benn.Gallagher Fixed crashes when using subinstances in non-default states. we previously initialized the anim instances in the node initialize, but in states that haven't been hit by an initialize this will happen off the game thread which is not allowed. #jira UE-36900 Change 3153223 on 2016/10/06 by Thomas.Sarkanen Fixed crash when opening an asset from the blend space editor Code was still trying to open 'old' Persona when it was disabled. Also fix other call sites where this was being done outside of asset type actions. #jira UE-36766 - Crash attempting to open an asset from Aim Offset graph in Persona Change 3153324 on 2016/10/06 by Thomas.Sarkanen Prevented invalid GUIDs from being saved into smart name containers AddOrFindName now checks to see if existing GUIDs are valid before using them. AddName now requires a valid GUID to be passed in. Also added Modify() call to the skeleton when FindOrAddSmartName is called from VerifySmartNameInternal, as without this the skeleton might not get saved. Also add Laurent's fix for fixing up already-saved invalid GUIDs (CL 3138068). #jira UE-36367 - It is possible for curves with an invalid GUID to be saved into the USkeleton asset Change 3153348 on 2016/10/06 by Martin.Wilson Re add ticking code so all Persona editors viewports tick during drag events (went missing in Persona refactor) #jira UE-36751 Change 3153426 on 2016/10/06 by Mieszko.Zielinski Added missing elements of block comments support in BT editor #UE4 Change 3153454 on 2016/10/06 by Benn.Gallagher Fixed crash using anim debug with subinstances that are preceded by branching nodes. #jira UE-36935 [CL 3153517 by Ori Cohen in Main branch]
2016-10-06 12:11:11 -04:00
bool FEditorModeTools::CanCycleWidgetMode() const
{
bool bCanCycleWidget = false;
ForEachEdMode<ILegacyEdModeWidgetInterface>([&bCanCycleWidget](ILegacyEdModeWidgetInterface* LegacyMode)
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3153514) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3050254 on 2016/07/14 by Marc.Audy Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3049614 Change 3136629 on 2016/09/22 by Marc.Audy bye bye auto Change 3136631 on 2016/09/22 by Marc.Audy Allow objects to be marked as duplicate transient or non PIE duplicate transient ChildActors are not marked consistent with the property that references them as text export transient and non PIE duplicate transient #jira UE-35680 Change 3136636 on 2016/09/22 by Marc.Audy ParticleSystem and Audio Components now route Activate/Deactivate events to blueprints Component Activate/Deactivate events now provide component as a property #jira UE-35191 Change 3136640 on 2016/09/22 by Marc.Audy Expose bReplicates to blueprint component properties #jira UE-34433 Change 3136709 on 2016/09/22 by Ori.Cohen Fix GetBodyInstance returning incorrect bodies when welded kinematics are attached. #JIRA UE-36234 Change 3136710 on 2016/09/22 by Ori.Cohen Fix defer actors not working when the physics scene is simulating. We now flush when the scene is not simulating, as well as a lazy flush that goes through the slow path when needed. This allows us to batch multiple components together. #JIRA UE-35899 Change 3136770 on 2016/09/22 by Marc.Audy Fix compile error Change 3136854 on 2016/09/22 by Marc.Audy Sprite components need to be text export transient #jira UE-36064 Change 3136926 on 2016/09/22 by Ori.Cohen Fix ensure when skeletal mesh bodies have no collision. Change 3137054 on 2016/09/22 by Aaron.McLeran PR #2628: Fix UAudioComponent SubtitlePriority not being initialised (Contributed by alanedwardes) Change 3137058 on 2016/09/22 by Aaron.McLeran PR #2562: ReadCompressedInfo calculates duration for ADPCM audio (Contributed by derekvanvliet) Change 3137060 on 2016/09/22 by Aaron.McLeran UE-36336 Fixing A3D for mono/2D sounds - Making it so if A3D is being loaded but not enabled, we can not have reverb on 2D sounds - Fixing A3D mono sources from failing after a time Change 3137066 on 2016/09/22 by Aaron.McLeran Checking in Ngs2.Build.cs with A3D and USING_A3D set to 0 Change 3137098 on 2016/09/22 by dan.reynolds AEOverview Update: EQ Map, Reverb Map plus improvements on Main array cleanup process. Change 3137132 on 2016/09/22 by Aaron.McLeran PR #2789: Fixed signature of FActiveSound::GetIntParameter (Contributed by Laurie-Hedge) Change 3137175 on 2016/09/22 by Aaron.McLeran Fixing compile error with PhysXCollision.cpp from CL 3136710 Change 3137540 on 2016/09/23 by Thomas.Sarkanen Fixed crash when generating LODs automatically for skeletal meshes Quadric error reduction does not support skeletal meshes, so fails. Client code assumes that it cannot fail so crashed. This guards against immediatly assuming that LODs are valid after simplification. #jira UE-36253 - Crash applying LOD changes in Persona Change 3137720 on 2016/09/23 by Thomas.Sarkanen Changed asset shortcut bar to display asset names & reworked padding #jira UE-36347 - Anim asset shortcut bar has difficult to read/cut-off text Change 3137761 on 2016/09/23 by Martin.Wilson Fix typo in root motion from everything accumulation code Change 3137877 on 2016/09/23 by Thomas.Sarkanen Fixed undo/redo forcing skeletal meshes into t-pose Re-populated AnimationData in InitAnim for UDebugSkelMeshComponent. #jira UE-35579 - If you undo an animation change to any animation asset (for single preview), the playback controls will no longer function Change 3137885 on 2016/09/23 by Benn.Gallagher Fixed APEX clothing disappearing when time dilation results in a dt of 0. After simulating an actor with 0 APEX will fill positions and normals with NaNs, causing the disappearance. The fix in this case is to not schedule the evaluation task if we're not wanting to do any work. The simulation then freezes as we would expect. #jira UE-35151 Change 3137888 on 2016/09/23 by Benn.Gallagher Fixed transition nodes being able to be pasted or duplicated without 2 valid pin links #jira UE-24860 Change 3137889 on 2016/09/23 by Benn.Gallagher Fixed transform and widget inconsistencies in IK edit mode #jira UE-20628 Change 3137890 on 2016/09/23 by Jurre.deBaare Alembic Cached Geometry Does Not Display in Stand Alone Game #fix required to force load the GeometryCache module during runtime #jira UE-36187 Change 3137892 on 2016/09/23 by Jurre.deBaare Geometry cache playback should work in sequencer #fix add Interp UProperty tag to specific properties used for playing back the cache, future fix is having same approach as skeletal mesh animation for sequencer (depends on needs, -> skeletal mesh import has better compression anyway) #jira UE-35447 Change 3137893 on 2016/09/23 by Jurre.deBaare Alembic Cache Importer option for Hard Edge Angle Threshold does not work for objects with no normals #fix adhere to the assumed 'standard' no normals in ABC file means completely smooth normals throughout the sequence #jira UE-35091 Change 3137894 on 2016/09/23 by Jurre.deBaare Importing an Alembic File While mesh Distance Fields are Enabled Crashes Editor #fix Needed to save the raw mesh before building the mesh to ensure a LOD resource was created #misc added a new check + message in case this occurs again #jira UE-36059 Change 3137938 on 2016/09/23 by Jurre.deBaare Alembic Importing with Incorrect UV's #fix adding option for flipping UVs on import #jira UE-36190 Alembic import axis not aligned correctly #fix also added option to specify scale and rotation to be applied during import (with preset for Maya and Max) #jira UE-35510 Change 3137949 on 2016/09/23 by Jurre.deBaare Frame range importing causes confusion during Alembic importing #fix this required storing information per Alembic object at which frame index it actual has stored frames, using this data we can determine which frames are empty, and at which frame there is data. This allows us to skip empty frames if we want to import data-only frames, or to import all frames in the sequence including empty (pre-roll) frames. #misc changed settings UI listview layout (extra columns and resized old ones) #jira UE-35498 Change 3137994 on 2016/09/23 by Martin.Wilson Fix for creating an empty state when dragging a montage into a state machine graph #jira UE-33371 Change 3138103 on 2016/09/23 by Aaron.McLeran UE-36312 Fixing sound node distance cross fade for case of looping sounds Change 3138104 on 2016/09/23 by Aaron.McLeran UE-35392 Copy pasting local node into separate project crashes the engine Change 3138224 on 2016/09/23 by Aaron.McLeran UE-36312 Fixing sound node distance cross fade for case of looping sounds - Adding a check for wave instance count to account for virtualized sounds (one-shots) Change 3138666 on 2016/09/23 by Ben.Zeigler #UEFW-204 Add more comprehensive gameplay tag tests Fix issue with HasTag(Tag, IncludeParent, IncludeParent) revealed by tests, this was not returning true correctly in some cases. This use case is weird and will be deprecated soon Change 3138779 on 2016/09/23 by Marc.Audy Get rid of pointless casts Change 3138782 on 2016/09/23 by Marc.Audy remove some GWorlds Change 3139701 on 2016/09/26 by Jurre.deBaare Assert failed on GemetryCache for PS4 package #fix add GeometryCache reference in engine build.cs and fix the serialization of geometry cache files #jira UE-36392 Change 3139704 on 2016/09/26 by Jurre.deBaare Fix for -1 begin frame #fix do the max as an signed int, to make sure we don't wrap around Change 3139748 on 2016/09/26 by Benn.Gallagher PR #2784: Make sure that SceneScratchBufferSize is a multiple of 16K as requested by PhysX (Contributed by DenizPiri) Moved the definition of the boundary to a FPhysScene class static Changed comments on original user settings property to communicate the fact that the value is now rounded to the next 16K boundary #jira UE-35736 Change 3139903 on 2016/09/26 by Benn.Gallagher Fixed exposing subinstance pins stomping over class defaults and setting to uninitialized values #jira UE-34366 Change 3140409 on 2016/09/26 by Lukasz.Furman fixed uninitialized configs of gameplay debugger copy of CL# 3140399 Change 3140516 on 2016/09/26 by dan.reynolds AEOverview Map Update - Ambient Zone + Focus Test Change 3140526 on 2016/09/26 by Jon.Nabozny #rn Fixed CanJump inconsistencies with previous versions. Deferred JumpCurrentCount increment until after jump, made bWasJumping a member variable, and updated how jump count and hold time were compared in CanJump. #jira UE-35524, UE-35582 Change 3140745 on 2016/09/26 by dan.reynolds AEOverview Test Map Update + Occlusion Test Change 3140839 on 2016/09/26 by dan.reynolds AEOverview - minor updates Change 3141101 on 2016/09/27 by Thomas.Sarkanen Preview scene worlds now render correctly Split "Preview" type into "EditorPreview" (the default) and "GamePreview". Deprecated the old "Preview" world type (but kept its index). In-game hidden flags now apply to GamePreview, but not EditorPreview worlds. Deprecated old bHack_Force_UsesGameHiddenFlags_True boolean. GamePReview now serves this purpose. Fixed up UT cases where this was being used. FPreviewScenes now use the editor mode by default, but can be set to non-editor if needed (as is the case with the still-experimental UViewport). Custom depth pass is not enabled for EditorPreview (as before) but is for GamePreview. Fixed erroneous use of TEnumAsByte for non-uproperty WorldType. #jira UE-22883 - Using FPreviewScenes in-game for scene captures Change 3141106 on 2016/09/27 by Thomas.Sarkanen Column toggling improvements Column toggle menu now does not close when items are selected. This requries some Slate changes to how submenus are built to allow for sumbenus to specify whether they close after selection. Also allowed columns to be hidden by default for specific use cases (like the sequence browser). #jira UE-35818 - Anim asset browser column picker should stay up Change 3141131 on 2016/09/27 by Thomas.Sarkanen Fix CIS warnings Fallout from preview world changes Change 3141143 on 2016/09/27 by Jurre.deBaare Fix for CIS errors Change 3141235 on 2016/09/27 by Thomas.Sarkanen Fix offset of Persona floor mesh when auto-alignment is enabled When auto alignment was disabled, the offset wasnt getting taken into account. #jira UE-35544 - In Persona, Floor Height Offset does nothing with Auto Align Floor to Mesh disabled Change 3141327 on 2016/09/27 by Marc.Audy Ensure that the client side AttachChildren array remains accurate #jira UE-26025 Change 3141474 on 2016/09/27 by mason.seay Updating test map name and moving PlayerStart Change 3141501 on 2016/09/27 by Benn.Gallagher Loading time improvements for destructibles from Nvidia Updated to use new framework custom version instead of global object version Fixed usage of TArray to enable correct loading and saving of the cached data. #jira UE-29680 Change 3141889 on 2016/09/27 by Marc.Audy Fix DestructibleMesh when WITH_APEX is 0 #jira UE-36484 Change 3142034 on 2016/09/27 by Marc.Audy Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3141971 Change 3142131 on 2016/09/27 by Ori.Cohen Make sure we return eTouch to physx during an overlap query. Fixes bad behavior when multiple objects blocked in an overlap query. #JIRA UE-36381 Change 3142154 on 2016/09/27 by Ori.Cohen Fix build, ModuleCachedData instead of NxApexModuleCachedData Change 3142159 on 2016/09/27 by mason.seay Blueprint for testing Child Actor Templates Change 3142255 on 2016/09/27 by Jon.Nabozny Fix crashes in QAMeshMerge component by making it a UObject, exposing it's method statically, and taking QASkeletalMeshMergeParams as an argument. #jira UE-35199, UE-35197, UE-35201 Change 3142717 on 2016/09/27 by dan.reynolds AEOverview Update + Sound Class Test Change 3142764 on 2016/09/27 by Marc.Audy Fix Ocean deprecation warnings Change 3142962 on 2016/09/28 by Thomas.Sarkanen Fixed bounds calculations for local camera animations Correctly calculated bounds as local to the initial transform in the track. Implemented suggested fixes from UDN user chhaddon (The Coalition). #jira UE-29594 - CameraAnim bounds are incorrect when bRelativeToInitialTransform == true Change 3143007 on 2016/09/28 by Martin.Wilson Added virtual bones to USkeleton API Breaking change: -Added USkeleton pointer to RemoveBonesByName -FReferenceSkeleton::UpdateRefPoseTransform & FReferenceSkeleton::Add made private. Must use FReferenceSkeletonModifier instead #jira UEFW-81 Change 3143040 on 2016/09/28 by James.Golding Strip DrawDebug.. functions from Shipping and Test builds, controlled by new define ENABLE_DRAW_DEBUG Fix up game projects to compile in Shipping/Test after this change PR #2757: (Contributed by projectgheist) #jira UE-35488 Change 3143046 on 2016/09/28 by James.Golding Fix OrionEnvironmentPerfTest.cpp compiling in Shipping (optimizations were not being re-enabled at end of file) Change 3143047 on 2016/09/28 by James.Golding PR #2731: Capsule primitive drawing fix (Contributed by kamrann) #jira UE-35142 Change 3143050 on 2016/09/28 by Martin.Wilson Update DDC key as some animation have stale data Change 3143088 on 2016/09/28 by Martin.Wilson CIS Fixes for Ocean after FReferenceSkeleton changes Change 3143090 on 2016/09/28 by Benn.Gallagher Fixed split pins in animation blueprints losing their pin links on editor restart. The anim nodes had opted out of the Super version of reconstruct, but that's where split pin restoration was added so we were skipping it. #jira UE-36482 Change 3143091 on 2016/09/28 by Thomas.Sarkanen Fix play/pause keyboard shortcut toggle in Persona based editors Correctly handled widget mode switching in the skeleton selection edit mode (previously it was manually handling this rather than hooking into the correct level viewport callbacks). Added the ability for FEdModes to specify whether they can use a widget mode. Added a common set of commands that all Persona-based editors can opt into (only contains TogglePlay for now). #jira UE-35163 - Cannot use Play/Pause shortcut in Persona if viewport is focused Change 3143100 on 2016/09/28 by James.Golding UE-32275 Fix Anim Curve entries losing Auto state when hidden/reshown Change 3143107 on 2016/09/28 by Martin.Wilson Add check to IsRunningParallelEvaluation to verify that the skeletal mesh component in question still references us #jira UE-34431 Change 3143125 on 2016/09/28 by Jurre.deBaare PR #2749: Fix blend space triangulation (Contributed by tmiv) Change 3143225 on 2016/09/28 by Jurre.deBaare Mesh/material merging basic test files Change 3143235 on 2016/09/28 by Martin.Wilson Fix issue where montage wrong section was updated with changes from details panel when clicking on a new section #jira UE-35929 Change 3143312 on 2016/09/28 by Marc.Audy Don't globally reregister components, globally recreate render state instead when force deleting assets Fixes crash force deleting a blueprint with a child actor component in it from the content browser Change 3143340 on 2016/09/28 by Mieszko.Zielinski Improved consistency of loudness usage in AISense_Hearing #UE4 Change 3143359 on 2016/09/28 by Marc.Audy Fix spelling error in comment Change 3143372 on 2016/09/28 by Jurre.deBaare HLOD meshes are causing degenerate triangles #fix Setting flag to ignore degenerate triangles when building the meshes vertex/index buffers #jira UE-34336 Change 3143420 on 2016/09/28 by Mieszko.Zielinski Fix to BlackboardData initialization's dependency on parent asset's initialization #UE4 Change 3143421 on 2016/09/28 by Martin.Wilson Allow reading on animation sequence length in blueprints #jira UE-34168 Change 3143455 on 2016/09/28 by James.Golding Add 'noop' versions of DrawDebug function, so you will not get compile errors by default for calling them in Shipping/Test builds. Added optional SHIPPING_DRAW_DEBUG_ERROR define, which will give compile errors in Shipping/Test if still calling DrawDebug functions Change 3143518 on 2016/09/28 by Jurre.deBaare Meshes with no UV Coordinates will break the UVs of other meshes contained in the same HLOD if they share a material #fix calculate UV bounds and check whether they occupy any space (if not do not use them for baking out the material) #misc set texture sampling for HLOD proxy base material to clamp #jira UE-35221 Change 3143542 on 2016/09/28 by James.Golding Change SHIPPING_DRAW_DEBUG_ERROR define from ifdef to if Fix comment Enable by default for FN Change 3143543 on 2016/09/28 by Benn.Gallagher Changed branch + early return into an ensure during FPxQueryFilterCallback::preFilter. We were checking for invalid shapes in preFilter but that shouldn't happen. More likely to get some information as an ensure instead of earlying out on the funciton. Change 3143556 on 2016/09/28 by Aaron.McLeran UE-36540 Editor Preferences 'Enable Sound' option causes Real Time Audio to Stop Working after PIE Change 3143566 on 2016/09/28 by Benn.Gallagher Readded early out alongside new ensure for catching bad preFilter shapes Change 3143568 on 2016/09/28 by Marc.Audy Fix deprecation warnings in UT Change 3143572 on 2016/09/28 by Jurre.deBaare More test content for mesh/material merging Change 3143581 on 2016/09/28 by Jurre.deBaare More content :D Change 3143585 on 2016/09/28 by Jurre.deBaare Geometry cache cleaning #misc fix for missing materials, not serialized (facepalm) as they were added later on (required custom version bump) #misc cleaning out unecessary code Change 3143594 on 2016/09/28 by Marc.Audy Creating a child actor component by dragging an actor blueprint in to another blueprint now properly creates the template #jira UE-36511 Change 3143658 on 2016/09/28 by Marc.Audy RootComponent can be null by the time we hit PostUnregisterAllComponents so need to protect against the dereference #jira UE-36553 Change 3143776 on 2016/09/28 by Marc.Audy Properly reinstance child actor templates when using the fast reinstancing path #jira UE-36516 Change 3143896 on 2016/09/28 by Ori.Cohen Remove UPROPERTY on aggregate threshold which is always read from the physics settings. Change 3144022 on 2016/09/28 by Ben.Zeigler Move AIMoveTo node from BlueprintGraph to AIGraph and remove BlueprintGraph->AIModule dependency in build system Change 3144252 on 2016/09/28 by mason.seay More blueprints for child actor template testing Change 3144262 on 2016/09/28 by Mason.Seay Deleting assets Change 3144283 on 2016/09/28 by dan.reynolds AEOverview update + Sound Priority Test Change 3144411 on 2016/09/28 by dan.reynolds AEOverview end of day update and tweaks Change 3144679 on 2016/09/29 by Benn.Gallagher Changed skeletal bounds calculation to not consider clothing assets that aren't simulating in the current LOD. In this case we're not rendering the clothing, we're only rendering the skeletal geometry for that section in that LOD which isn't bound to cloth. Change 3144856 on 2016/09/29 by Jurre.deBaare HLOD Outliner scrolls back to the top when generating proxy meshes #fix OnLevelActorsAdded was getting called for actors in the thumbnail worlds, which forced a refresh on the listview #jira UE-30384 Change 3144864 on 2016/09/29 by Thomas.Sarkanen Preview mesh fixes Animation preview meshes are now respected (and saved). Mesh is displayed as empty if none is set (but a default is chosen). Skeleton preview meshes are now shown as empty if none is set (but a default is chosen). #jira UE-36582 - Cannot set preview mesh per-animation Change 3144865 on 2016/09/29 by Jurre.deBaare More test content Change 3144885 on 2016/09/29 by James.Golding UE-35307 Move 'invalid scale' warning to Message Log to be more visible in editor Change scale clamping in UpdateBodyScale to catch cases like (1,0,1) Change 3144903 on 2016/09/29 by Thomas.Sarkanen Deprecating StaticMesh in UStaticMeshComponent Added GetStaticMesh to access the value as read-only. SetStaticMesh is now called in all locations that used to call "StaticMesh =". Lots of fixups. #jira UE-24859 - Deprecate public access to StaticMesh property in UStaticMeshComponent Change 3145020 on 2016/09/29 by Thomas.Sarkanen Fix bounds calculations that include bones to respect LOD (and other requried bones) Sometimes bones would not be updated if we LOD switched, extending the bounds. #jira UE-36525 - UDebugSkelMeshComponent::CalcBounds should filter by LOD Change 3145041 on 2016/09/29 by Jurre.deBaare Setting the Target Lightmap UV Channel to an incorrect value leads to inconsistent results #fix removed target light map channel, we now determine according to the UV channels which are unused in the final mesh #misc ignore the source lightmap uv channels to reduce data #jira UE-36595 Change 3145219 on 2016/09/29 by Benn.Gallagher Fixed clothing actors not casting shadows in editor, after the material editing change the copy of the shadow flag was missed from the clothing association code, which runs on again on older clothing assets to use the new render data skinning. Also added some fix up for assets that have be saved in the mean time. #jira UE-36552 Change 3145222 on 2016/09/29 by Jurre.deBaare Exporting Alembic Skeletal mesh from UE4 to FBX causes a crash #fix on import set _all_ bone influence to 0 #jira UE-36602 Change 3145267 on 2016/09/29 by Ori.Cohen Move OnConstraintBreak delegate so that it fires outside of fetchResults. Fixes crash from user doing unsafe things during fetchResults. #JIRA UE-36483 Change 3145306 on 2016/09/29 by Jon.Nabozny Fixed PhAT so multiple constraints can be selected and edited properly at the same time. #JIRA: UE-31493 Change 3145342 on 2016/09/29 by Marc.Audy Do not update cull distance volumes whenever any property changes * Any movement or property change of a cull distance volume still does a global update * Any movement of a component belong to any other Actor updates only the components of that Actor * Any property change of a primitive component only updates that component #jira UE-36399 Change 3145958 on 2016/09/29 by Marc.Audy In game worlds don't auto activate components until the actor is ready to process them #jira UE-35189 Change 3146110 on 2016/09/29 by dan.reynolds AEOverview update + Soundwave Procedural Test Map Change 3146375 on 2016/09/30 by Benn.Gallagher Fixed crash saving newly created destructible mesh after material refactor. #jira UE-36619 Change 3146378 on 2016/09/30 by James.Golding UE-35908 Line trace against a BodyInstance now returns closest hit for trimesh (was any hit before) Also add stat for FBodyInstance::LineTrace Change 3146379 on 2016/09/30 by James.Golding Add test assets for creating procmesh collision in non-editor builds Change 3146386 on 2016/09/30 by Thomas.Sarkanen Fixed ensures (and functionality) of 'show uncompressed animation' option in Persona viewports Made sure that PreEvaluateAnimation is called for th einstance in use, rather than only the preview instance. This unearthed another issuye where each of the calls to GenSpaceBAses was causing the animation to run faster. Fixed this by resetting the update flag in the update context after it is used. #jira UE-36251 - Ensures showing uncompressed animations in anim blueprints Change 3146464 on 2016/09/30 by Thomas.Sarkanen Fix layered blend per bone odd/even connection counts alternately working/not working Older hacky fix for multi-property to array copies flip-flipped between using fast path and not, when it really should have disabled fast path after the first array pin. Now it disables fast path based on whether this is a new handler or not, rather than looking at the SimpleCopyPropertyName. #jira UE-35648 - Layered Blend Per Bone doesn't work correctly with 3+ inputs Change 3146652 on 2016/09/30 by Benn.Gallagher Fixed subinstance properties appearing in the caller's details panel as oddly named properties. #jira UE-34141 Change 3146673 on 2016/09/30 by Martin.Wilson Make RawAnimationData (and associated anim sequence data) private #jira ue-25869 Change 3146680 on 2016/09/30 by Benn.Gallagher Fixed errant asterisks in tooltips for source and target bone on rotation multiplier controller node #jira UE-29847 Change 3146681 on 2016/09/30 by Benn.Gallagher Fixed incorrect tooltip on left hand IK bone in hand ik retargetting node #jira UE-30885 Change 3146711 on 2016/09/30 by Jon.Nabozny Fix PhAT SnapConstraintToBone. #jira UE-31491 Change 3146717 on 2016/09/30 by Danny.Bouimad Adding Jurres really useful merge actor test assets to somewhere QA can get em. Change 3146738 on 2016/09/30 by Martin.Wilson Fix pose blending for on non-additive pose blending + remove normalising of weights for weights less than 1 #tests Editor tests with mambo pose asset #jira UE-36189 Change 3146750 on 2016/09/30 by Jurre.deBaare Material baking issue #misc Removed the renderer initialization which causes issue the first time you would render out a material (gradient from top left to bottom right over the texture) #misc Replaced incorrect masks with _way_ better approach thanks to Martin Change 3146755 on 2016/09/30 by Jurre.deBaare Need better progress bar for HLOD #fix replaced the progress updates with new more 'correct' ones according to the actual workload and fixed up the Simplygon progress callback #jira UE-34334 Change 3147085 on 2016/09/30 by Marc.Audy PR #2815: GetNextViewablePlayer now checking and returning correct PlayerState. (Contributed by joshkay) #jira UE-36632 Change 3147224 on 2016/09/30 by Martin.Wilson CIS Fix Change 3147280 on 2016/09/30 by Marc.Audy Mouse smoothing should use application frame rate, not the dilated game frame rate #jira UE-31040 Change 3147446 on 2016/09/30 by Aaron.McLeran UE-36682 SoundCue Delay Not Consuming Input StartTime Correctly Change 3147693 on 2016/09/30 by Ben.Zeigler #jira UE-36657 If a player has an existing Pawn during RestartPlayer, use that pawn's rotation instead of the start spot, because we were already keeping the pawn's location Change 3147697 on 2016/09/30 by Jon.Nabozny Add rotation parameter to FBodyInstance::Sweep and FBodyInstance::InternalSweepPhysX #jira UE-30486 Change 3147761 on 2016/09/30 by Jon.Nabozny Fix AUTRepulsorBubble UPrimitiveComponent::SweepComponent usage. Change 3148533 on 2016/10/03 by Thomas.Sarkanen Fix new deprecation warnings introduced by the pull from main Change 3148567 on 2016/10/03 by Marc.Audy Fix crash when exiting PIE while a panoramic screenshot is being taken Make stereo panorama tick with the world it is operating on #jira UE-36492 Change 3148571 on 2016/10/03 by Marc.Audy Allow modification of components that are EditAnywhere but don't exist in the CDO #jira UE-36694 Change 3148607 on 2016/10/03 by Martin.Wilson Properly end notify states when we clear the anim instance on a skeletal mesh. #jira UE-32488 Change 3148711 on 2016/10/03 by Martin.Wilson Fix type in virtual bone tooltip #jira UE-36703 Change 3148746 on 2016/10/03 by Benn.Gallagher Fixed a few cases where post process and sub instance anim calls weren't being made correctly. #jira UE-36529 Change 3148807 on 2016/10/03 by Martin.Wilson Fix mismatch skeleton error when undoing virtual bone changes #jira UE-36705 Change 3148812 on 2016/10/03 by Martin.Wilson Add undo support to removing virtual bones #jira UE-36706 Change 3148975 on 2016/10/03 by Jurre.deBaare Issue with combining meshes both with/without normal maps #fix make sure we always output atleast the default normal value when baking out materials, this to ensure we output non-black values for meshes without normal maps (this would cause the normal to be incorrect) #misc fixed issue in function to set texture rectangle to a single colour #misc spotted comparison error Change 3148976 on 2016/10/03 by Ori.Cohen Make sure that shape queries that we pass into physx are never size 0. Fixes some NaNs #JIRA UE-36639 Change 3148991 on 2016/10/03 by Jurre.deBaare Changing LOD materials on Merged Actors Crashes Editor #fix take into account LOD that is using the material when remapping (removing duplicate) materials #jira UE-35883 Change 3148997 on 2016/10/03 by Jurre.deBaare Make sure we remove matrix samples that fall outside of the import range and remap those that are in range Change 3149002 on 2016/10/03 by Jurre.deBaare Issues with importing Alembic caches using matrix transformations #fix Apply conversion matrix to imported matrix samples to make them match the DCC package they were exported from Change 3149030 on 2016/10/03 by Martin.Wilson Dont show save warning on animations when we have curve data #jira UE-34145 Change 3149115 on 2016/10/03 by Mieszko.Zielinski Made PathfollowingComponent distinct between patrial and full paths in terms of acceptance radius used, when trying to determin if pathing agent is at goal location #UE4 #jira UE-35153 Change 3149186 on 2016/10/03 by Ben.Zeigler #UE-36722 Fix failure to spawn when trying to spawn 4 capsules in the exact same location There's no "Correct" direction to move out of a penetrating capsule, but old PhysX appeared to be consistent. New PhysX is not, so now we save and restore the adjustment instead of letting previous iterations modify it. This code is weird but this solution is better than the old version and handles inconsistent results Change 3149235 on 2016/10/03 by Martin.Wilson Change inline curve name editing to only change the name of that specific curve, instead of renaming the smart name itself. #jira UE-20005 Change 3149245 on 2016/10/03 by Marc.Audy Remove duplicate entries from AttachChildren caused by lack of atomic cross-object updates. Change 3149397 on 2016/10/03 by Ori.Cohen Fix collision profile writing out response values to channels that don't exist. #JIRA UE-36359 Change 3149679 on 2016/10/03 by Zak.Middleton #ue4 - Don't mark CharacterMovementComponent::bUseControllerDesiredRotation as an advanced property. Consolidate rotation settings (RotationRate, bUseControllerDesiredRotation, bOrientRotationToMovement) in a new "Rotation Settings" category. Change 3149929 on 2016/10/04 by Jurre.deBaare Fix for CIS errors #fix Mac didn't like undefined struct Change 3149977 on 2016/10/04 by danny.bouimad Massive update to Merge Actor test files Change 3150014 on 2016/10/04 by James.Golding UE-36686 Fix crash when slicing and not creating other section Change 3150016 on 2016/10/04 by James.Golding UE-35335 MergeActors now converts box collision to convex, so collision scales correctly after merging Change 3150019 on 2016/10/04 by James.Golding UE-36737 Fix LineTraceComponent not returning face index Change 3150020 on 2016/10/04 by James.Golding UE-36672 Export PhysicsContstraintComponent class so it can be subclassed outside Engine module Change 3150027 on 2016/10/04 by Ben.Marsh Add PhysX build option into Dev-Framework. Change 3150042 on 2016/10/04 by Benn.Gallagher Fixed clothing example 1.3 collision glitches Change 3150172 on 2016/10/04 by Benn.Gallagher Made Skeletal Mesh LOD reimports clear any existing simplification flag so we don't show "generated" next to LOD entries for them. #jira UE-36589 Change 3150319 on 2016/10/04 by Ori.Cohen Go back to only deferring body creation per component. This can now use the slow path when needed. Can't support deferring of multiple components without changing locking API so we'll do that in the future. #JIRA UE-36535, UE-36504 Change 3150355 on 2016/10/04 by Zak.Middleton #ue4 - Change checkSlow() to check() in GetDefaultObject<> because this is potentially an unsafe static cast. Change 3150370 on 2016/10/04 by Ori.Cohen Fix deferred actors not getting flushed. Change 3150386 on 2016/10/04 by Martin.Wilson Fix additive animation check failing in cooked builds when using virtual bones #jira UE-36743 Change 3150424 on 2016/10/04 by Ori.Cohen Exclude kinematic actors from active transforms generation. Change 3150613 on 2016/10/04 by Zak.Middleton #ue4 - Fix bad GetDefaultObject<> in AbilitySystemGlobals. Turned up since changing checkSlow() to check() in GetDefaultObject. (Mirror CL 3138304 in Orion-DevGeneral) #jira UE-36810 #tests compiled Change 3150679 on 2016/10/04 by Ben.Zeigler Crash fix with no async scene Change 3150765 on 2016/10/04 by Ben.Zeigler Deprecate UStructProperty::ExportTextItem_Static and ImportItem_Static, and add ExportText and ImportText directly to UScriptStruct Add bAllowNativeOverride to specify rather to call the native override. For unclear reasons the static export skipped the native override while the static import included it This allows calling the generic ImportText from inside a native ImportTextItem and then doing some post processing Change 3150796 on 2016/10/04 by Marc.Audy Fix LOCTEXT warnings related to blueprint class menu options Change 3150806 on 2016/10/04 by Ben.Zeigler Fix bad text format in import error message, lead to double error Change 3150891 on 2016/10/04 by Ben.Zeigler #jira UE-36170 Fix duplicate GUID spam when async loading levels during PIE by checking the package flag instead of the runtime global Change 3150914 on 2016/10/04 by Marc.Audy Don't try to recreate render state if it has already been recreated while the recreate context was active #jira UE-36590 Change 3151195 on 2016/10/04 by Dan.Reynolds Updates to QASoundWaveProcedural QASoundWaveProcedural edited to be a GameplayStatic which spawns an Audio Component Handler as well as a Procedural Sound Wave. Support for envelope shaping (Attack, Sustain, Release) as well as multiple waveforms (Sine, Triangle, Sawtooth, Square). Blueprint API expanded to include separate functions for setting QASoundWaveProcedural settings and Playing. Change 3151233 on 2016/10/04 by Ben.Zeigler #jira UE-36836 Fix variable shadowing warnings Change 3151328 on 2016/10/04 by dan.reynolds AEOverview Update - Added Sound Wave Procedural test map and added support for mobile (tested on Android) menu selection - Still a WIP Change 3151461 on 2016/10/05 by Thomas.Sarkanen Fix localization warnings #jira UE-36720 - //UE4/Main: Step 'Build Engine Localization' - 2 Warnings Change 3151546 on 2016/10/05 by Martin.Wilson Fix pose watch regression due to persona refactor changes. #jira UE-36851 Change 3151587 on 2016/10/05 by Jurre.deBaare Updating Simplygon to SDK version 8.0 #misc removed redundant files #misc fixed landscape culling in merge actor path #misc added support for volume culling using simplygon #misc fixed when or not to use mesh data for material baking #notes Change: 3137650 Date: 23/09/2016 07:57 Client: Mustafa.Tungekar_Dev-Partner-Simplygon User: Mustafa.Tungekar Status: submitted Type: restricted ImportedBy: Identity: Description: -Renamed commandline variables for ZipUtils AutomationScript -Implemented Execute instead of ExecuteBuild -Updated commandline arguments in SimplygonSwarm JobStatus: Jobs: Files: //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonSwarm/Private/SimplygonSwarm.cpp#4 //UE4/Dev-Partner-Simplygon/Engine/Source/Programs/AutomationTool/Scripts/ZipUtils.Automation.cs#2 Change: 3137649 Date: 23/09/2016 07:56 Client: Mustafa.Tungekar_Dev-Partner-Simplygon User: Mustafa.Tungekar Status: submitted Type: restricted ImportedBy: Identity: Description: Moved file hash computation to ImportObject JobStatus: Jobs: Files: //UE4/Dev-Partner-Simplygon/Engine/Source/Editor/UnrealEd/Classes/Factories/Factory.h#4 //UE4/Dev-Partner-Simplygon/Engine/Source/Editor/UnrealEd/Private/Factories/Factory.cpp#4 Change: 3137646 Date: 23/09/2016 07:55 Client: Mustafa.Tungekar_Dev-Partner-Simplygon User: Mustafa.Tungekar Status: submitted Type: restricted ImportedBy: Identity: Description: Fixes CL3099204 EditorPerProjectUserSetting Removed ConfigRestartRequired attribute from properties where it was not required MeshUtilities -Added FProxyFailedDelegate -Extended IMeshMerging to include FProxyFailed delegate -Added ProxyGenerationFailed method to FProxyGenerationProcessor class -Setup FailedDelegate for both MeshMerging and DistributedMeshMerging SimplygonMeshReduction -Added check for invalid texture id -Updated notes and removed commented code that is not required. -Setup failed delegate -Fixed issue where image data was never hooked into the texture. -Fixed issue where texture table was never passed into casters SimplygonSwarm -Setup failed delegate -Fixed RawMesh pointer usage. -Move helper method into SimplygonSwarmHelpers.h. -Added SimplygonSwarmHelpers -Removed redundant constant path to 7-zip -Removed GetSimplygonDirectory instead using inplace. -Removed commented code that is currently not required. -Fixed Typos JobStatus: Jobs: Files: //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/MeshUtilities/Private/MeshUtilities.cpp#3 //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/MeshUtilities/Public/MeshUtilities.h#3 //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonMeshReduction/Private/SimplygonMeshReduction.cpp#4 //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonSwarm/Private/SimplygonSwarm.cpp#3 //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonSwarm/Public/SimplygonSwarmHelpers.h#1 //UE4/Dev-Partner-Simplygon/Engine/Source/Editor/UnrealEd/Classes/Editor/EditorPerProjectUserSettings.h#3 Change: 3099204 Date: 24/08/2016 07:56 Client: Mustafa.Tungekar_Dev-Partner-Simplygon User: Mustafa.Tungekar Status: submitted Type: restricted ImportedBy: Identity: Description: Simplygon 8.0 Updates Deprecated support for 7.0 and updated SimplygonSwarm and SimplygonMeshReduction to use 8.0 EditorPerProjectSettings *SwarmMaxUploadChunkSizeInMB for limiting the max upload size for swarm. Note the Simplygon Grid has a limitation of 2GB *SwarmNumOfConcurrentJobs for executing number of concurrent jobs *Fixed issue where SG_MATERIAL_CHANNEL_METALLIC to SG_MATERIAL_CHANNEL_METALNESS (Chage in 8.0 SDK) SPL, SimplygonSwarm, RESTClient *Bumped up SPL Version to 8 *Fixed code paths to use ZipUtils UAT script for zipping and unzipping CL3094374 *Removed SPL Templates for version 7.0 *Added conditional logging to REST methods *Added multi part upload. The RESTClient automatically decided if large files need to be split up before uploading to simplygon grid. *Updated method to take in texturepath SimplygonMeshReduction *Removed minimum version requirement. *Bumped up minimum version *Chagned license file name to refelect 8.0 changes *MaterialBaking related method now take in TextureTable as an extra parameter. This is due to 8.0 move away from old way of setting up materials and using SimplygonShadingNetowrk based appraoch. JobStatus: Jobs: Files: //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonMeshReduction/Private/SimplygonMeshReduction.cpp#3 //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonMeshReduction/Public/SimplygonTypes.h#2 //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonSwarm/Private/SimplygonRESTClient.cpp#3 //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonSwarm/Private/SimplygonSwarm.cpp#2 //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonSwarm/Public/SimplygonRESTClient.h#2 //UE4/Dev-Partner-Simplygon/Engine/Source/Developer/SimplygonSwarm/Public/SimplygonSwarmPrivatePCH.h#2 //UE4/Dev-Partner-Simplygon/Engine/Source/Editor/UnrealEd/Classes/Editor/EditorPerProjectUserSettings.h#2 //UE4/Dev-Partner-Simplygon/Engine/Source/Editor/UnrealEd/Private/Settings/EditorPerProjectUserSettings.cpp#2 Change: 3099200 Date: 24/08/2016 07:48 Client: Mustafa.Tungekar_Dev-Partner-Simplygon User: Mustafa.Tungekar Status: submitted Type: restricted ImportedBy: Identity: Description: #fix Copy constructor for FMeshReduciton mapped ShadingImportance to SilhouetteImportance JobStatus: Jobs: Files: //UE4/Dev-Partner-Simplygon/Engine/Source/Runtime/Engine/Classes/Engine/MeshMerging.h#2 Change: 3099199 Date: 24/08/2016 07:47 Client: Mustafa.Tungekar_Dev-Partner-Simplygon User: Mustafa.Tungekar Status: submitted Type: restricted ImportedBy: Identity: Description: Added Automation Script ZipUtils to zip file and unzip files from SimplygonSwarm. This will remove any dependency on external zip program and should work across platforms JobStatus: Jobs: Files: //UE4/Dev-Partner-Simplygon/Engine/Source/Programs/AutomationTool/Scripts/AutomationScripts.Automation.csproj#2 //UE4/Dev-Partner-Simplygon/Engine/Source/Programs/AutomationTool/Scripts/ZipUtils.Automation.cs#1 Change: 3099197 Date: 24/08/2016 07:40 Client: Mustafa.Tungekar_Dev-Partner-Simplygon User: Mustafa.Tungekar Status: submitted Type: restricted ImportedBy: Identity: Description: *Speed improvements for FBX Scene Importer *Added a static method to compute Hash. JobStatus: Jobs: Files: //UE4/Dev-Partner-Simplygon/Engine/Source/Editor/UnrealEd/Classes/Factories/Factory.h#3 //UE4/Dev-Partner-Simplygon/Engine/Source/Editor/UnrealEd/Private/Factories/Factory.cpp#3 //UE4/Dev-Partner-Simplygon/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxStaticMeshImport.cpp#2 //UE4/Dev-Partner-Simplygon/Engine/Source/Runtime/Engine/Classes/EditorFramework/AssetImportData.h#2 //UE4/Dev-Partner-Simplygon/Engine/Source/Runtime/Engine/Private/EditorFramework/AssetImportData.cpp#2 Change 3151664 on 2016/10/05 by Richard.Hinckley Fixing ACharacter template for "New C++ Class" feature. Avoiding naming a function parameter the same as an existing class member. Change 3151729 on 2016/10/05 by Thomas.Sarkanen Audit of remaining NaN checks Some checks remain on in shipping (generally those called from blueprint): - AActor::TeleportTo - AActor::SetActorRelativeScale3D #jira UE-30999 - Optimize ⌠ContainsNaN÷ and ⌠ContainsNaNOrInfinite÷, audit those still in shipping/test Change 3151742 on 2016/10/05 by Ori.Cohen Make sure that if physical animation component doesn't find a body and bone it doesn't crash. #JIRA UE-36839 Change 3151756 on 2016/10/05 by Jurre.deBaare Fixing d3dcompiler_47.dll missing issue #fix added runtime dependency and dll name to build.cs file #fix now load the d3dcompiler_47.dll from the Binaries/ThirdParty/Windows folder before loading the simplygon DLL Change 3151761 on 2016/10/05 by Thomas.Sarkanen Fix deprecation warning from last integration Moved Preview to EditorPreview in FEditorWorldManager::OnWorldContextAdd. #jira UE-36858 - Compile UE4Editor* completed with 1 warning Change 3151782 on 2016/10/05 by Jurre.deBaare Simplygon patch up #misc linker errors popping up from JSONCPP #misc incorporated emissive material property fix from other shelve #misc static analysis fix Change 3151804 on 2016/10/05 by Marc.Audy Clear need end of frame update when unregistering a component Change 3151928 on 2016/10/05 by Ori.Cohen Fix runtime DLLs not including all delay loaded physx dll files. #JIRA UE-36816 Change 3151977 on 2016/10/05 by Martin.Wilson Notifies can no longer occupy the same time on the same track. #jira UE-30658 Change 3151989 on 2016/10/05 by Jon.Nabozny Fix ArchVis character rotation pitch when looking up/down. #jira UE-35706 Change 3152083 on 2016/10/05 by Marc.Audy Ensure that pending kill components get their marked for end of frame state cleared. Change 3152086 on 2016/10/05 by Ben.Zeigler #jira UE-36169 Fix it so missing linker errors that point to Blueprint CDOs are skipped, the same way it skips linker errors going to the actual class. Fixes a lot of spurious warnings from deleting components from blueprints or native classes Clean up the VerifyImport error handling so it also displays in -game and cook, and fix the missing class warning to work properly, previously it would happen 0% in development 100% in debug even if the class was valid Change 3152093 on 2016/10/05 by Marc.Audy Change logic for when location cannot be changed for a static component to be independent of has begun play and have to do with whether construction script is running or the level is in the process of loading (mostly for backwards compatibility adjustments in post load). #jira UE-36146 #jira UE-24647 Change 3152100 on 2016/10/05 by Ben.Zeigler Remove pragma optmize Change 3152112 on 2016/10/05 by Marc.Audy Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3152072 Change 3152134 on 2016/10/05 by Jurre.deBaare Simplygon/Merge actor issues #fix for emissive output on meshes that do not have emissive properties #fix for texture binning, not removing invalid split area causing overlapped textures Change 3152136 on 2016/10/05 by James.Golding UE-36859 Fix tooltip saying you can click to stop recording Change 3152169 on 2016/10/05 by James.Golding UE-31209 UE-30935 : Expose bDeformableMesh and bFastCook options in FTriMeshCollisionData ProceduralMeshComponent will now cook using 'fast' and 'deformable' options, so updating collision on sections should work correctly Change ERuntimePhysxCookOptimizationFlags to EPhysXMeshCookFlags and use that to pass options to CookConvex and CookTriMesh Change 3152202 on 2016/10/05 by Jurre.deBaare Mac/Linux fix Change 3152303 on 2016/10/05 by Marc.Audy Fix deprecation warning post merge from main Change 3152320 on 2016/10/05 by Martin.Wilson Fix root motion from everything calculating incorrect root motion when animations haven't been ticking #jira UE-35364 Change 3152354 on 2016/10/05 by James.Golding PoseDriver should pass through if no poses activated Change 3152357 on 2016/10/05 by James.Golding UE-36844 Remove unused OnAssetModifiedNotifier delegate from PoseAsset, ensure OnPoseListChanged is called when updating PoseAsset from anim. Change 3152556 on 2016/10/05 by Marc.Audy Remove autos Change 3152560 on 2016/10/05 by Marc.Audy Don't allow child actor references to be dragged from the outliner to a level script #jira UE-16700 Change 3152568 on 2016/10/05 by Marc.Audy Don't allow non-networking code to set bRemoteOwned in the actor spawn parameters Remove deprecated bNoCollisionFail #jira UE-35928 Change 3152575 on 2016/10/05 by Marc.Audy Allow construction script to run post move for native classes. Actor can determine whether it should only occur on finish or every call to post edit move Change 3153101 on 2016/10/06 by Thomas.Sarkanen Fix crash re-opening the viewport in Persona-based editors #jira UE-36775 - Editor crashes when re-opening viewport in Persona Change 3153139 on 2016/10/06 by James.Golding UE-36908 Remove GetRuntimeOnlyCookOptimizationFlags if cooking is not supported Change 3153160 on 2016/10/06 by Thomas.Sarkanen Fix for crash when deleting additive layer track Code had not been updated to use the new delgate system (was still using reciprocal FPersona ptr). #jira UE-36740 - Crash when removing or disabling an additive layer track in Persona Change 3153175 on 2016/10/06 by Benn.Gallagher Fixed crashes when using subinstances in non-default states. we previously initialized the anim instances in the node initialize, but in states that haven't been hit by an initialize this will happen off the game thread which is not allowed. #jira UE-36900 Change 3153223 on 2016/10/06 by Thomas.Sarkanen Fixed crash when opening an asset from the blend space editor Code was still trying to open 'old' Persona when it was disabled. Also fix other call sites where this was being done outside of asset type actions. #jira UE-36766 - Crash attempting to open an asset from Aim Offset graph in Persona Change 3153324 on 2016/10/06 by Thomas.Sarkanen Prevented invalid GUIDs from being saved into smart name containers AddOrFindName now checks to see if existing GUIDs are valid before using them. AddName now requires a valid GUID to be passed in. Also added Modify() call to the skeleton when FindOrAddSmartName is called from VerifySmartNameInternal, as without this the skeleton might not get saved. Also add Laurent's fix for fixing up already-saved invalid GUIDs (CL 3138068). #jira UE-36367 - It is possible for curves with an invalid GUID to be saved into the USkeleton asset Change 3153348 on 2016/10/06 by Martin.Wilson Re add ticking code so all Persona editors viewports tick during drag events (went missing in Persona refactor) #jira UE-36751 Change 3153426 on 2016/10/06 by Mieszko.Zielinski Added missing elements of block comments support in BT editor #UE4 Change 3153454 on 2016/10/06 by Benn.Gallagher Fixed crash using anim debug with subinstances that are preceded by branching nodes. #jira UE-36935 [CL 3153517 by Ori Cohen in Main branch]
2016-10-06 12:11:11 -04:00
{
bCanCycleWidget = LegacyMode->CanCycleWidgetMode();
return !bCanCycleWidget;
});
return bCanCycleWidget;
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3209340 on 2016/11/23 by Ben.Marsh Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h. Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms. * Every header now includes everything it needs to compile. * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first. * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h. * Every .cpp file includes its matching .h file first. * This helps validate that each header is including everything it needs to compile. * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more. * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there. * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible. * No engine code explicitly includes a precompiled header any more. * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies. * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files. Tool used to generate this transform is at Engine\Source\Programs\IncludeTool. [CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
}
bool FEditorModeTools::CanAutoSave() const
{
return FEditorModeTools::TestAllModes([](UEdMode* Mode) { return Mode->CanAutoSave(); }, true);
}
bool FEditorModeTools::OnRequestClose()
{
return FEditorModeTools::TestAllModes([](UEdMode* Mode) { return Mode->OnRequestClose(); }, true);
}
bool FEditorModeTools::IsOperationSupportedForCurrentAsset(EAssetOperation InOperation) const
{
return FEditorModeTools::TestAllModes([InOperation](UEdMode* Mode) { return Mode->IsOperationSupportedForCurrentAsset(InOperation); }, true);
}
Add support for UEdMode-level InteractiveToolsContext which exists at the same time as the existing ModeManager-level ITC. - rename UEdModeInteractiveToolsContext to UEditorInteractiveToolsContext, made all functions virtual so they can be customized for the new Editor/EdMode implementations where necessary - add UModeManagerInteractiveToolsContext and UEdModeInteractiveToolsContext subclasses. Most functionality stays in the base class. Mouse-handling functions that manipulate the InputRouter move to ModeManagerITC. - EdModeITC now is initialized based on a ModeManagerITC, and shares it's InputRouter - ModeManagerITC creates the child EdModeITCs, forwards Tick/Render/DrawHUD calls - FEditorModeTools now creates a ModeManagerITC - Add EToolsContextScope enum, with options for Editor and EdMode ToolsContext - UEdMode::Enter() now creates a child EdModeITC via new EditorITC::CreateNewChildEdModeToolsContext() function above, in addition to storing reference to the ModeManagerITC. Internal code updated to handle both ITCs. - The EdModeITC is shut down on ::Exit() and unregistered from the EditorITC parent - UEdMode ITC access functions (GetToolsContext, GetToolManager, RegisterTool) now take an optional Scope argument - UEdMode::GetDefaultToolScope() allows EdModes to define default scope for the entire mode, defaults to Editor scope - removed unused CanStartTool()/etc wrapper functions from FModeToolkit, they were not being called - FModeToolkit::Init() now listens to events from both the ModeManagerITC and EdModeITC, delete cleans them both up - FModeToolkit::OnToolStarted() checks both ITCs to see which one owns the new Tool - updated all EdModes that were directly accessing the UEdMode::ToolsContext member, replaced with calls to GetToolsContext() / GetToolManager() APIs - updated ModelingToolsEditorMode to use EdMode ToolScope #rb brooke.hubert #rnx #jira none #preflight 6140cc1130c00d0001dc4b9e #ROBOMERGE-AUTHOR: ryan.schmidt #ROBOMERGE-SOURCE: CL 17510176 in //UE5/Main/... #ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530) [CL 17510201 by ryan schmidt in ue5-release-engine-test branch]
2021-09-14 17:11:13 -04:00
UModeManagerInteractiveToolsContext* FEditorModeTools::GetInteractiveToolsContext() const
{
return InteractiveToolsContext;
}