- New "Size Map" feature that shows the resource size for selected assets in Content Browser
- Select assets in Content Browser, right click and choose "Size Map..." to show sizes for those assets
- Select actors and press Alt+Shift+M to show sizes of assets used by those actors
- Select assets in Reference Viewer, right click and choose "Size Map..." to show sizes for those assets
- Also added a new "Tree Map" general purpose Slate widget (STreeMap)
[CL 2521609 by Mike Fricker in Main branch]
UE-9554 - Add BP/C++ Component's Show all classes list not expanded by default
It now hides the Object root if UObject is not a valid base class type, as this allows the next level of classes to be expanded out which looks much better when adding new component classes.
This involved a lot of shuffling of module dependencies so that we could link GameProjectGeneration to ClassViewer, as previously ClassViewer was directly linking to GameProjectGeneration.
I went through and fixed everything that was linking to GameProjectGeneration to instead list it as a dynamic dependency (which it is, as nothing needs to link to it), and then verified that everything was using ClassViewer correctly (found some places that were only marking it as a dynamic dependency without also adding it as an include module, causing issues with missing API macro definitions as they were including ClassViewer headers via a relative include path).
#codereview Andrew.Rodham
[CL 2451499 by Jamie Dale in Main branch]
Editor: Add/clarify make Blueprint actions to the Blueprints toolbar button
- Expose 'Blueprint from selected actor' (single actor; identical to invoking it from the details panel)
- Expose 'Blueprint from selected components' (harvests components from mutliple actors, ignoring the actor classes themselves)
- Rename 'New Blueprint Class' to 'New Empty Blueprint Class'
- Move the make blueprint options to the top of the menu and push level script to be the second category
[CL 2446921 by Matthew Griffin in Main branch]
To remove its use in AppFramework and keep using it in the SlateViewer app, I needed to define its tab in AppFramework and spawn it as a nomad tab in SlateViewer.
[CL 2358266 by Matthew Griffin in Main branch]
Icon is only visible if content is available for the editor in question.
Split editor settings into two groups - one is persistent settings and one is progress/state.
Tutorials record their dismissed state, so users can permenantly disable the 'nag' for a particular tutorial.
Tutorial content now solidifies when the mouse is hovered over it, so it can be made easier to read.
Fixed crash on startup if an intro tutorial was displaying rich text.
Also fixed crash for TTP# 345094, where a zero-length tutorial was being accessed.
[CL 2275934 by Thomas Sarkanen in Main branch]
#TTP 331416 - UE4: Would like to be able to set a hotkey to open the Reference viewer similar to "find in content browser"
#branch UE4
#proj Editor.UnrealEd
#proj Editor.LevelEditor
#add Added new global UICommand ViewReferences, bound to Alt + Shift + R.
#add Implemented the new UICommand in the AssetEditorToolkit and the LevelEditorr. This means that most of the editor is covered by this hotkey. Hitting it in an asset editor brings it up for the current asset, hitting it in the level editor brings it up for the selected asset.
#Further work: Further work is required to modify the content browsers uses of view references, for now it is deemed to be too much work for this task.
#reviewedby Chris.Wood
[CL 2088247 by Barnabas McManners in Main branch]
TTP# 332489 - TOOLS FEATURE: Editor: Allow user to designate which platforms a project is designed for; warn user when deploying to platforms that will result in a bad time
There is now a "Target Platforms" tab in the project settings which allows you to choose which platforms your project will target. This information is stored inside the .uproject file.
If you try and launch, cook, or package for a project that isn't on the supported list, then you'll see a suppressible warning notifying you that the project may not run as expected. This is also conveyed to you via a warning icon next to platforms which aren't set as a target.
Additionally the target platform icons are shown in the tooltip on the "Open Project" dialog, as well as in the tab area of the level editor.
ReviewedBy Thomas.Sarkanen, Max.Preussner
[CL 2088161 by Jamie Dale in Main branch]
#ttp 331829 - Mobile Preview in Editor
#proj Engine
#branch UE4
#summary First pass of changes to remove GRHIFeatureLevel, allowing for multiple scenes with different feature levels to exist. First step towards dynamic mobile preview in the editor.
#change Added GMaxRHIFeature level which contains the highest supported feature level on this machine
#change Added a cvar "r.FeatureLevelPreview" which, when set to 1, enables a feature level selection in the quick settings menu. Not wired up to anything at the minute
#change Added a feature level variable to FScene, which is currently initialized to whatever GRHIFeatureLevel is. Accessed with GetFeatureLevel()
#change Added a helper accessor GetFeatureLevel() to FSceneView which gets the feature level from the relevant scene. Purely to reduce the amount of typing needed to get to a feature level
#change Many changes across the renderer to try and read the current feature level from the view or scene. Not everything is done yet, but this is almost all of the "easy" stuff. As there is still just a global feature level in the engine, nothing should change.
[CL 2066905 by Graeme Thornton in Main branch]
TTP# 279062 - ROCKET: TASK: PUNTABLE: Viewports: "Drag to Attach" feature
Moved FEdModePicker out of the Private section of the PropertyEditor module, and into its own module so that it can be shared between the PropertyEditor and LevelEditor modules. Also renamed it to FEdModeActorPicker.
Added a way to filter FEdModeActorPicker by checking the actor directly (this complements the class type check it already had).
Added an actor picker button next to the scene outliner in the "Attach To" menu on actors. This is also mapped to the Alt+A command.
Built and tested in unity and non-unity.
ReviewedBy Thomas.Sarkanen, Max.Preussner
[CL 2060928 by Jamie Dale 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]