refactored tga code to allows use outside of EditorFactories.cpp
added support for grayscale jpeg
fix memory leak in jpeg code
changes in AssetTools to allow to specify precise factory when multiple factories support the same filetype
changes in Plugin.cs to allow binary only plugins
exposed parts of engine API to other modules
[CL 2108453 by Matt Kuhlenschmidt in Main branch]
Loading the same world that is already loaded directly now early-outs.
Loading a sublevel of the currently edited world now keeps the sublevel in memory, patches the owning world, and properly GCs the old world.
Redirectors are now unloaded during editor cleanse (map transitions) to prevent references to worlds from preventing GC.
Already-loaded worlds are no longer unloaded when the editor switches to begin editing them. Switching away from that world, however, does unload it naturally.
[CL 2078350 by Bob Tellez in Main branch]
Splitted World Browser views into three independent windows, each window can be summoned from a hierarchy view or details view toolbar
World composition can now be toggled through WorldSettings - bEnableWorldComposition. Once enabled persistent level will be treated as a world root. No more '?worldcompistion' parameter workarounds. 'Open World' command was removed, as levels saved with world composition enabled can be open through 'Open Level' command.
Added bEnableWorldOriginRebasing parameter to WorldSettings, which contols whether world origin shifting should be used
[CL 2072584 by Dmitriy Dyomin in Main branch]
This was a tough one to track down. The problem showed up when closing a matinee editor whilst a preview camera was selected in the world. Several clients all hook into the EditorModeChanged event to do some cleanup when the matinee editor is closed.
When matinee was closed, it fired the event to say that the mode is changing. This broadcast took a copy of the invocation list, and proceeded to invoke each delegate. One of these handlers resulted in the preview actor being deleted, which ended up deleting its associated preview viewport. As part of the viewport's destructor it correctly removes its raw ptr from the mode changing delegate list. However, since this event is currently broadcasting, a copy of the delegate still exists in the local invocation list which is invoked later on. The trouble is, the user object has been destroyed by this time.
I have fixed this by moving the destruction of the preview actor to a subsequent event triggered when the matinee mode is exited. This is invoked immediately after the OnEditorModeChanged event, and fixes the issue because it waits until the first broadcast to finish before destroying the viewport.
The alternative would have been to make FEditorViewportClient derive from TSharedFromThis<> and use AddSP for its binding, but I don't think that publicizing the sharing of viewport clients is the right approach. I'd rather keep ownership of viewport clients more explicit.
Reviewed by Thomas.Sarkanen, Matt Kuhlenschmidt
[CL 2061973 by Andrew Rodham in Main branch]
#TTP 331892 - Editor: Blueprint Defaults Diff: Lauching diff tool does not work with spaces in paths
#branch UE4
#proj Editor.BehaviourTreeEditor
#proj Editor.WorldBrowser
#proj Editor.Levels
#proj Developer.AssetTool
#change Wrapped the file paths in double quotes, this means that the full path gets passed to P4Merge
#reviewedby Chris.Wood
[CL 2060955 by Barnabas McManners in Main branch]
Removed UENUM() from EMyTownBuildingsWidgetSorting and EMyFortRatingStarSize to fix compile issues and because UENUM() was unnecessary.
Also made hand-fix to UAIHotSpotRenderingComponent by removing HeaderGroup (obsolete).
Did not merge TRV_HAF_Outer_012_lower_border or TRV_HAF_Outer_030 umaps due to conflicts and based on advice from Stefan.
[CL 2060490 by Daniel Broder in Main branch]
#ttp 333671 - EDITOR: Content Browser: Customizable shortcut for opening assets and folders
#branch UE4
#add Added two new commands so that the Enter and SpaceBar functionality can be remapped.
#change Renamed EAssetTypeActivationMethod types so they don't mention which key was used, but the action that key performed.
reviewed by Thomas.Sarkanen
[CL 2059964 by Andrew Brown in Main branch]
Other Updates:
- The WidgetReflector is now in its own module as well. It will be converted to a plug-in later.
- The Public API of both Slate and SlateCore has largely been reorganized for better discoverabilty. More cleanup work is needed.
- Added a lot of missing API documentation and fixed existing ones. More and better documentation is needed.
- Removed dead code, fixed a couple things I stubled upon, and conformed to coding guidelines (NULL vs nullptr, line breaks, etc.)
Upgrade Notes:
- The Slate Remote Server is currently disabled - will be re-enabled shortly!
- If your module previously had a module dependency to 'Slate', it now also needs a PrivateModuleDependency to 'SlateCore' in its Build.cs file.
- If your module exposes in any of its Public header files types that are now declared in SlateCore, it needs a PublicModuleDependency to 'SlateCore'
- The ToolTip property type on SWidget has changed from SToolTip to IToolTip; change local variables to TSharedPtr<IToolTip> instead of TSharedPtr<SToolTip> where needed
- IToolTip is not a widget. If you need access to the actual widget that represents the tool tip, use IToolTip::AsWidget(); If you need access to the tool tip's content, use IToolTip::GetContentWidget()
Troubleshooting:
- After syncing to this changelist you may have to clean your /Engine/Intermediate/Build/ directory and rebuild your entire project
- If in your project you are getting linker errors for unresolved types that are now declared in SlateCore, you may be missing a dependency to 'SlateCore'
- If in the Engine code you are getting linker errors for unresolved types that are now declared in SlateCore, you may need to rebuild the entire Engine
[CL 2057118 by Max Preussner in Main branch]