#UE4 Fixed a crash related to attempting to load a thumbnail for a package while in a GC stack.
--------
Integrated using branch Ue4-To-UE4-Fortnite-Simple (reversed) of change#2581925 by Bob.Tellez on 2015/06/09 17:40:32.
[CL 2581940 by Bob Tellez in Main branch]
- Tools multibox laid out vertically to keep spacing constant and match the style of the Placement Mode UI
- Formatting matches details panel
- Added thumbnail view in addition to the tree
- Can activate/deactivate types via double-click
- Can collapse the details area
- Selection modes have buttons for selection on ALL instances
- Tooltips for filters are mode-specific
- Activation toggle applies to all selected types when checked/unchecked
#codereview Jack.Porter, Dmitriy.Dyomin
[CL 2521566 by Dan Hertzka in Main branch]
UE-9331 - Missing icons for BP component classes when restarting editor
Moved the code to work out the correct class icon for a Blueprint or asset data into FClassIconFinder so that it can be shared between the asset thumbnails and the components context menu.
Added an extra IconClass member to FComponentClassComboEntry so that unloaded Blueprints can set this appropriately despite having a null ComponentClass.
[CL 2451813 by Jamie Dale in Main branch]
Added the ability for asset type actions to provide an extra overlay layer for their asset thumbnails
UE-7970 - Add small 'play' button to EditorTutorial asset thumbnail
Also cleaned up FAssetThumbnail::MakeThumbnailWidget so that it took a config struct (FAssetThumbnailConfig) rather than 7 or 8 defaulted parameters.
[CL 2419655 by Ben Marsh in Main branch]
Stopped derived types from UBlueprint being processed as if they were a BP class
UE-7184 - Show game c++ classes and engine c++ classes in the content browser
Also renamed "ClassAssetClass" to "ThumbnailClass" to better reflect its purpose.
[CL 2419545 by Ben Marsh in Main branch]
Improvements to the way thumbnails are shown in the Content Browser
UE-7184 - Show game c++ classes and engine c++ classes in the content browser
C++ classes and Blueprints now both show you either a live-thumbnail (for asset types), or a class thumbnail for their class type. If showing a live-thumbnail, they also show a mini class icon at the bottom right of the thumbnail.
This iconography change has been applied to all asset types, and they now show you their asset type icon on the colored overlay, rather than show you the asset type text. They will still fallback to using the asset type text if there is no icon available for the asset type.
[CL 2419540 by Ben Marsh in Main branch]
UETOOL-213 - Minimize Slate FString -> FText conversion (remove SLATE_TEXT_ATTRIBUTE)
This fixes any editor/engine specific code that was passing text to Slate as FString rather than FText.
[CL 2399803 by Jamie Dale in Main branch]
Introduces the concept of "Active Ticking" to allow Slate to go to sleep when there is no need to update the UI.
While asleep, Slate will skip the Tick & Paint pass for that frame entirely.
- There are TWO ways to "wake" Slate and cause a Tick/Paint pass:
1. Provide some sort of input (mouse movement, clicks, and key presses). Slate will always tick when the user is active.
- Therefore, if the logic in a given widget's Tick is only relevant in response to user action, there is no need to register an active tick.
2. Register an Active Tick. Currently this is an all-or-nothing situation, so if a single active tick needs to execute, all of Slate will be ticked.
- The purpose of an Active Tick is to allow a widget to "drive" Slate and guarantee a Tick/Paint pass in the absence of any user action.
- Examples include animation, async operations that update periodically, progress updates, loading bars, etc.
- An empty active tick is registered for viewports when they are real-time, so game project widgets are unaffected by this change and should continue to work as before.
- An Active Tick is registered by creating an FWidgetActiveTickDelegate and passing it to SWidget::RegisterActiveTick()
- There are THREE ways to unregister an active tick:
1. Return EActiveTickReturnType::StopTicking from the active tick function
2. Pass the FActiveTickHandle returned by RegisterActiveTick() to SWidget::UnregisterActiveTick()
3. Destroy the widget responsible for the active tick
- Sleeping is currently disabled, can be enabled with Slate.AllowSlateToSleep cvar
- There is currently a little buffer time during which Slate continues to tick following any input. Long-term, this is planned to be removed.
- The duration of the buffer can be adjusted using Slate.SleepBufferPostInput cvar (defaults to 1.0f)
- The FCurveSequence API has been updated to work with the active tick system
- Playing a curve sequence now requires that you pass the widget being animated by the sequence
- The active tick will automatically be registered on behalf of the widget and unregister when the sequence is complete
- GetLerpLooping() has been removed. Instead, pass true as the second param to Play() to indicate that the animation will loop. This causes the active tick to be registered indefinitely until paused or jumped to the start/end.
[CL 2391669 by Dan Hertzka in Main branch]
- Removed several of the border widgets from always being created if they are not used
- Added caching of expensive visibility attributes
- Cached WrapTextAt values for asset labels to all STextBlock to cache the data
- Removed several delegates from asset border colors
[CL 2376338 by Matt Kuhlenschmidt in Main branch]
TTP #343071 CORE: FCoreDelegates should not have references to UObjects.
#codereview Robert.Manuszewski
[CL 2317144 by Mikolaj Sieluzycki in Main branch]
Tiny text is now using a lighter font with a better hinting algorithm, and is centrally justified.
We want to minimise waste of horizontal space, so content browser thumbnails now fill the width of the content browser once again.
[CL 2299335 by Andrew Rodham in Main branch]
The font has also been reduced in size to reduce the amount of wrapping on asset labels at small sizes.
Also polished the asset borders and shadows.
This addresses TTP 345457 and 345452.
[CL 2297910 by Andrew Rodham in Main branch]
#UE4 Moved asset thumbnail dirtying code out of ContentBrowserSingleton and into AssetThumbnail.cpp. Updating thumbnails is not the responsibility of the Content Browser since many systems use thumbnails now.
--------
Integrated using branch Ue4-To-UE4-Fortnite-Simple (reversed) of change#2226322 by Bob.Tellez on 2014/07/21 21:37:47.
[CL 2227552 by Bob Tellez in Main branch]
I'm not sure how much this class is actually used in the UI, but it does a lot of redundant work every frame in several different callback methods. If it's used a lot, it should probably get an optimization pass.
TTP# 334639
[CL 2220983 by Frank Fella in Main branch]