Files
UnrealEngineUWP/Engine/Source/Developer/TreeMap/Public/ITreeMap.h

315 lines
9.3 KiB
C
Raw Normal View History

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
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 "CoreMinimal.h"
#include "Fonts/SlateFontInfo.h"
#include "Styling/CoreStyle.h"
class FTreeMapAttributeData;
class FTreeMapNodeData;
typedef TSharedRef< class FTreeMapAttributeData > FTreeMapAttributeDataRef;
typedef TSharedPtr< class FTreeMapAttributeData > FTreeMapAttributeDataPtr;
/**
* Stores data for a specific attribute type on a node
*/
class FTreeMapAttributeData
{
public:
/** Value for this data */
FName Value;
public:
/** Default constructor for FTreeMapAttributeData */
FTreeMapAttributeData()
: Value( NAME_None )
{
}
/** Intitialization constructor for FTreeMapAttributeData */
FTreeMapAttributeData( const FName InitValue )
: Value( InitValue )
{
}
};
typedef TSharedRef< class FTreeMapNodeData > FTreeMapNodeDataRef;
typedef TSharedPtr< class FTreeMapNodeData > FTreeMapNodeDataPtr;
/**
* Single node in a tree map, which may have any number of child nodes, each with their own children and so on
*/
class FTreeMapNodeData : public TSharedFromThis<FTreeMapNodeData>
{
public:
Copying WEX-Staging @ (WEX/Main @ 3740665) to //UE4/Main #lockdown Nick.Penwarden #rb none Copying //UE4/WEX-Staging to //UE4/Dev-Main (Source: //WEX/Main/Engine @ 3740665) #lockdown Nick.Penwarden Change 3739326 by Ben.Zeigler Change iteration order of depends nodes so it lists hard management references before soft management references, this is better for the UI when lots of references exist Update text for loading custom asset registry bin to be clearer Change 3739000 by John.Opila Caching optimization for text widget desired size. Change 3713551 by David.Nikdel Allow Set Properties to recognize Json array values as importable. Change 3712485 by Josh.May Added Pete's fix for the PLATFORM_TVOS/PLATFORM_IOS #define conflict introduced by mach-o/loader.h Change 3700174 by Chris.Babcock Fix setFilters crash on some Android devices Change 3691531 by Josh.May Fixed an intermittent crash that occurred when opening the AssetAuditBrower. AssetManagerEditorModule's CurrentRegistrySource was getting set too early, becoming invalid in the event that RegistrySourceMap is resized. Change 3688409 by Gil.Gribb Critical fix for an extremely rare race condition on async IO. Change 3687529 by josh.may Force layout recalculations for single-pass layout SScaleBoxes when their final scale is zero. This tends to occur in calls to SearchForWidgetRecursively before a SScaleBox's AllottedGeometry has been calculated. Change 3684788 by Peter.Sauerbrei fix for archive generation on the build machines Change 3684320 by john.opila Workaround for widgets disappering. Ensuring scale is never 0 so we don't get divide by zero. Change 3684042 by Peter.Sauerbrei more logging to figure out why there is not data in the Applicaiton diretory of the archive Change 3678620 by Ben.Zeigler Minor text changes to size map Change 3678314 by Ben.Zeigler Add Make Collection With References and Audit References to Size Map to easily allow inspecting the specific set of filtered packages in other tools Change 3677875 by Ben.Zeigler Fix crash in size map from keeping reference to node after map was resized, and undo the Name->DisplayName rename as it could affect licensees Change 3676899 by Peter.Sauerbrei narrowed down to the plist data, trying to figure out if it is missing or not Change 3676570 by Peter.Sauerbrei more logging to track down the archive error Change 3676293 by Peter.Sauerbrei fix for compile failure on IOS Change 3676172 by Peter.Sauerbrei potential fix for missing icons in the ipa when run through the build machines Change 3673544 by Ben.Zeigler Sort AllChunksInfo alphabetically so the order is consistent accross build and platforms to facillitate diffing Change 3671597 by Peter.Sauerbrei Merging //UE4/Dev-Mobile/Engine/... to //WEX/Main/Engine/... Change 3670932 by Ben.Zeigler Change it so cooking with the AssetManager writes out AllChunksInfo.csv next to the DevelopmentAssetRegistry, but not the per-chunk csv files as those are not useful. Also made the size counts platform accurate Change 3670906 by Peter.Sauerbrei update WEX for building with Xcode 9 Change 3660026 by Josh.May Moved SWebBrowserView's parent window "searches" to OnPaint. There's definitely something wrong with FindWidgetWindow... Even after deferring SWebBrowserView's calls to FindWidgetWindow until first Tick, the same widget layout artifacts could occur after opening multiple SWebBrowserViews. And, as Nick pointed out in the related email thread, this approach is also more efficient. Change 3655411 by Josh.May Ensure SWebBrowserView's parent window searches are deferred until after Construct. We haven't puzzled through it yet, but calling FindWidgetWindow during Construct seems to corrupt some Slate state. Deferring this search until later gets around the issue and makes sense anyway, given the widget isn't added to the hierarchy until after Construct. Change 3655407 by John.Opila Sneaking in some stats for SpawnActor. Change 3654649 by Ben.Zeigler Refactor SizeMap and ReferenceViewer into the AssetManagerEditor plugin, and delete the old modules. Fix SizeMap crash that I temporarily added. TreeMap is initialized weirdly Change 3648912 by Ben.Zeigler First half of changes to refactor sizemap/reference viewer into the asset manager editor plugin Add GetAllContentBrowserCommandExtenders to ContentBrowserModule that allows registering commands/keybinds to extend the content browser via plugins Add GetSharedMenu/ToolbarExtensibilityManager to AssetEditorToolkit that allows extending the generic asset editor via plugin Move the code to spawn the Reference Viewer and SizeMap into the AssetManagerEditor plugin so these UIs can be tightly bound and share data. This also enables keybinds for Size Map and Audit. Remove size map from the save as dialog, it created a special modal size map window that will not work after my refactor Change 3639419 by Ben.Marsh Use DirectoryInfo instead of DirectoryReference to enumerate projects. Tracking down UHT compile failures on Mac. Change 3638619 by David.Nikdel AsyncLoading: Suggested change by Gil to add lock prior to changing LoadPhase to WaitingForHeader (presumably to make FArchiveAsync2::StartReadingHeader's assumption about locking true) Change 3633562 by Chris.Babcock Update Android virtual keyboard support Change 3630564 by Peter.Sauerbrei fix for the manifest stage problem Change 3629577 by Chris.Babcock Fix merge errors in GameActivity.java Change 3629154 by David.Nikdel Disable debug device output in shipping builds (even if logs are enabled) Change 3626542 by John.Opila Back out changelist 3603452 Undoing the OpenGL load changes as the initial load time was just too damn high! Change 3620472 by David.Nikdel Fix from Nick to fix a BP that crashes on Compile Change 3618090 by Josh.May Reset inertial scrolling for SScrollboxes and STableView-based Slate widgets when scrolling to specific scroll offsets. Change 3613980 by Chris.Babcock Fix issue with Android password keyboard input Change 3603825 by John.Opila Shader change doesn't seem to like standalone PC. Change 3603452 by John.Opila Moving openGL shader compilation into loading instead of at the last minute. Change 3593008 by David.Nikdel Merging CL 3504471 from //Fortnite/Dev-Cinematics/Engine/... to //WEX/Main/Engine/... ---------------------------------------- Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down ================================================================================================= THESE CHANGES TOUCH MULTIPLE PLATFORMS ================================================================================================= Change 3739931 by Ben.Zeigler changes to some asset manager code modified on WEX, and fix several FStringAssetReference->FSoftObjectPath Change 3723451 by Josh.May Exposed OnBeforePopup to UMG and Blueprint for UWebBrowser. This is triggered by the CEFBrowserHandler when attempting to open hyperlinks targeting _blank and, when not handled, would result in the page never loading. Added OnBeforePopup handling for the HTMLNewsWidget, ensuring the URLs are opened in an external browser. Change 3711256 by Dmitriy.Dyomin Fixed: Friend list invalidation panel relative transform caching issues Also fixed issues with and set slate.cacherenderdata=0 for better batching Change 3698695 by Josh.May Made the UMG default font overridable via config, allowing us to replace it with a game-scope localized Font asset. If there's a better place for this mechanism/accessor to live, please let me know. Added a new 'Default' font that replicates '/Engine/EngineFonts/Roboto'. This also has a localized Font asset variant for zh-Hans. Change 3676085 by Josh.May Implemented MulticastBroadcastReceiver, a BroadcastReceiver capable of "multicasting" intents to other receivers. AppsFlyer defines a similar MultiInstallBroadcastReceiver class specific to the INSTALL_REFERRER intent, but it MUST be the very first one defined (cannot be guaranteed in our build pipeline AFAIK). Added MulticastBroadcastReceiver (for INSTALL_REFERRER) to the AndroidManifest generation logic, allowing BOTH Adjust and AppsFlyer to receive the intent. Added dev channel support for AndroidAppsFlyer, enabled conditionally based on shipping/distribution and whether or not a valid AppsFlyerDevChannel name is specified. For WEX, our dev channel is WEX_Dev. Fixed AppsFlyer_EventAttribute's Java class lookups and constructor signature. Change 3670860 by Ben.Zeigler First version of improvements to tools to analyze chunks Size Map and Reference Viewer now support reading cooked asset data and displaying chunks. Changing the platform dropdown in the Asset Audit window switches the other windows as well Asset Audit window now has "Add Chunks" button, and selecting AllTypes in the Primary Asset drop down will add all primary assets Size Map now shows Disk Size by default, and supports a right click context menu Significant UI improvements to all 3 tools, including keybind support Split Manage references into Hard and Soft, where Hard are set explicitly and soft are inherited. This allows determining why an asset was included in a chunk/primary asset When the AssetManager builds management information for the audit browser/cooker, it now precomputes a chunk mapping for relevant assets. PackageChunkType is used to refer to these virtual primary assets Add callback to content browser delegates to handle adding arbitrary FAssetData to an asset view, used to show chunks Several changes to the ITreeMap UI used by size map Change 3670290 by Josh.May Added AppleAppID configs for AppsFlyer. Added AdSupport and iAd frameworks for IOSAppsFlyer. According to the AppsFlyer documentation, these are required for IDFA and Apple Search Ads tracking. Change 3643531 by Peter.Sauerbrei fix for save game location and certain data backed up to the cloud when it shouldn't Change 3629303 by Ben.Zeigler Merge fix for shared ptr corruption in async loading thread from Main, and enable asnyc loading thread for WEX Copy of CL #3623261 and 3625806 Change 3629219 by Peter.Sauerbrei Merging using WEX_Main_to_UE4_WEX_Staging bringing over the files that Stan didn't have access to Change 3629063 by Stanley.Hayes Engine Merge: Merging using WEX_Main_to_UE4_WEX_Staging(flipped) Change 3618988 by Josh.May Reimplemented DevicePerformanceBucket-based WorldMap class selection to account for the WorldMap actor being pre-serialized into the UMAP. On a related note, ChildActorComponents marked as "editor only" now mark their spawned Actors as Transient to prevent them from getting serialized at cook-time. Change 3597981 by Josh.May Converted WExpCampaignDefinition's RegionDefinition refs back to hard references and, to compensate, converted WExpZoneDefinition's ZoneBoss refs to soft references. This moves the RegionDefinitions and ZoneDefinitions from chunk 2 to chunk 1 without pulling in assets for the ZoneBosses. This also allows us to grab the ZoneBoss refs during UWExpAssetManager::GetMainMenuAssetList. Reworked UWExpAssetManager::GetMainMenuAssetList and UWExpAssetManager::GetLevelAssetList to build more "complete" asset lists by expanding lists of PrimaryAssetIds. Tweaked the WorldMap's ZoneBoss spawning to account for the switch to AssetPtrs. Change 3581214 by Josh.Markiewicz added cookie deletion for Google on logout [CL 3750870 by Stanley Hayes in Main branch]
2017-11-10 17:20:53 -05:00
/** Logical name, if set this is used for comparison */
FString LogicalName;
Copying WEX-Staging @ (WEX/Main @ 3740665) to //UE4/Main #lockdown Nick.Penwarden #rb none Copying //UE4/WEX-Staging to //UE4/Dev-Main (Source: //WEX/Main/Engine @ 3740665) #lockdown Nick.Penwarden Change 3739326 by Ben.Zeigler Change iteration order of depends nodes so it lists hard management references before soft management references, this is better for the UI when lots of references exist Update text for loading custom asset registry bin to be clearer Change 3739000 by John.Opila Caching optimization for text widget desired size. Change 3713551 by David.Nikdel Allow Set Properties to recognize Json array values as importable. Change 3712485 by Josh.May Added Pete's fix for the PLATFORM_TVOS/PLATFORM_IOS #define conflict introduced by mach-o/loader.h Change 3700174 by Chris.Babcock Fix setFilters crash on some Android devices Change 3691531 by Josh.May Fixed an intermittent crash that occurred when opening the AssetAuditBrower. AssetManagerEditorModule's CurrentRegistrySource was getting set too early, becoming invalid in the event that RegistrySourceMap is resized. Change 3688409 by Gil.Gribb Critical fix for an extremely rare race condition on async IO. Change 3687529 by josh.may Force layout recalculations for single-pass layout SScaleBoxes when their final scale is zero. This tends to occur in calls to SearchForWidgetRecursively before a SScaleBox's AllottedGeometry has been calculated. Change 3684788 by Peter.Sauerbrei fix for archive generation on the build machines Change 3684320 by john.opila Workaround for widgets disappering. Ensuring scale is never 0 so we don't get divide by zero. Change 3684042 by Peter.Sauerbrei more logging to figure out why there is not data in the Applicaiton diretory of the archive Change 3678620 by Ben.Zeigler Minor text changes to size map Change 3678314 by Ben.Zeigler Add Make Collection With References and Audit References to Size Map to easily allow inspecting the specific set of filtered packages in other tools Change 3677875 by Ben.Zeigler Fix crash in size map from keeping reference to node after map was resized, and undo the Name->DisplayName rename as it could affect licensees Change 3676899 by Peter.Sauerbrei narrowed down to the plist data, trying to figure out if it is missing or not Change 3676570 by Peter.Sauerbrei more logging to track down the archive error Change 3676293 by Peter.Sauerbrei fix for compile failure on IOS Change 3676172 by Peter.Sauerbrei potential fix for missing icons in the ipa when run through the build machines Change 3673544 by Ben.Zeigler Sort AllChunksInfo alphabetically so the order is consistent accross build and platforms to facillitate diffing Change 3671597 by Peter.Sauerbrei Merging //UE4/Dev-Mobile/Engine/... to //WEX/Main/Engine/... Change 3670932 by Ben.Zeigler Change it so cooking with the AssetManager writes out AllChunksInfo.csv next to the DevelopmentAssetRegistry, but not the per-chunk csv files as those are not useful. Also made the size counts platform accurate Change 3670906 by Peter.Sauerbrei update WEX for building with Xcode 9 Change 3660026 by Josh.May Moved SWebBrowserView's parent window "searches" to OnPaint. There's definitely something wrong with FindWidgetWindow... Even after deferring SWebBrowserView's calls to FindWidgetWindow until first Tick, the same widget layout artifacts could occur after opening multiple SWebBrowserViews. And, as Nick pointed out in the related email thread, this approach is also more efficient. Change 3655411 by Josh.May Ensure SWebBrowserView's parent window searches are deferred until after Construct. We haven't puzzled through it yet, but calling FindWidgetWindow during Construct seems to corrupt some Slate state. Deferring this search until later gets around the issue and makes sense anyway, given the widget isn't added to the hierarchy until after Construct. Change 3655407 by John.Opila Sneaking in some stats for SpawnActor. Change 3654649 by Ben.Zeigler Refactor SizeMap and ReferenceViewer into the AssetManagerEditor plugin, and delete the old modules. Fix SizeMap crash that I temporarily added. TreeMap is initialized weirdly Change 3648912 by Ben.Zeigler First half of changes to refactor sizemap/reference viewer into the asset manager editor plugin Add GetAllContentBrowserCommandExtenders to ContentBrowserModule that allows registering commands/keybinds to extend the content browser via plugins Add GetSharedMenu/ToolbarExtensibilityManager to AssetEditorToolkit that allows extending the generic asset editor via plugin Move the code to spawn the Reference Viewer and SizeMap into the AssetManagerEditor plugin so these UIs can be tightly bound and share data. This also enables keybinds for Size Map and Audit. Remove size map from the save as dialog, it created a special modal size map window that will not work after my refactor Change 3639419 by Ben.Marsh Use DirectoryInfo instead of DirectoryReference to enumerate projects. Tracking down UHT compile failures on Mac. Change 3638619 by David.Nikdel AsyncLoading: Suggested change by Gil to add lock prior to changing LoadPhase to WaitingForHeader (presumably to make FArchiveAsync2::StartReadingHeader's assumption about locking true) Change 3633562 by Chris.Babcock Update Android virtual keyboard support Change 3630564 by Peter.Sauerbrei fix for the manifest stage problem Change 3629577 by Chris.Babcock Fix merge errors in GameActivity.java Change 3629154 by David.Nikdel Disable debug device output in shipping builds (even if logs are enabled) Change 3626542 by John.Opila Back out changelist 3603452 Undoing the OpenGL load changes as the initial load time was just too damn high! Change 3620472 by David.Nikdel Fix from Nick to fix a BP that crashes on Compile Change 3618090 by Josh.May Reset inertial scrolling for SScrollboxes and STableView-based Slate widgets when scrolling to specific scroll offsets. Change 3613980 by Chris.Babcock Fix issue with Android password keyboard input Change 3603825 by John.Opila Shader change doesn't seem to like standalone PC. Change 3603452 by John.Opila Moving openGL shader compilation into loading instead of at the last minute. Change 3593008 by David.Nikdel Merging CL 3504471 from //Fortnite/Dev-Cinematics/Engine/... to //WEX/Main/Engine/... ---------------------------------------- Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down ================================================================================================= THESE CHANGES TOUCH MULTIPLE PLATFORMS ================================================================================================= Change 3739931 by Ben.Zeigler changes to some asset manager code modified on WEX, and fix several FStringAssetReference->FSoftObjectPath Change 3723451 by Josh.May Exposed OnBeforePopup to UMG and Blueprint for UWebBrowser. This is triggered by the CEFBrowserHandler when attempting to open hyperlinks targeting _blank and, when not handled, would result in the page never loading. Added OnBeforePopup handling for the HTMLNewsWidget, ensuring the URLs are opened in an external browser. Change 3711256 by Dmitriy.Dyomin Fixed: Friend list invalidation panel relative transform caching issues Also fixed issues with and set slate.cacherenderdata=0 for better batching Change 3698695 by Josh.May Made the UMG default font overridable via config, allowing us to replace it with a game-scope localized Font asset. If there's a better place for this mechanism/accessor to live, please let me know. Added a new 'Default' font that replicates '/Engine/EngineFonts/Roboto'. This also has a localized Font asset variant for zh-Hans. Change 3676085 by Josh.May Implemented MulticastBroadcastReceiver, a BroadcastReceiver capable of "multicasting" intents to other receivers. AppsFlyer defines a similar MultiInstallBroadcastReceiver class specific to the INSTALL_REFERRER intent, but it MUST be the very first one defined (cannot be guaranteed in our build pipeline AFAIK). Added MulticastBroadcastReceiver (for INSTALL_REFERRER) to the AndroidManifest generation logic, allowing BOTH Adjust and AppsFlyer to receive the intent. Added dev channel support for AndroidAppsFlyer, enabled conditionally based on shipping/distribution and whether or not a valid AppsFlyerDevChannel name is specified. For WEX, our dev channel is WEX_Dev. Fixed AppsFlyer_EventAttribute's Java class lookups and constructor signature. Change 3670860 by Ben.Zeigler First version of improvements to tools to analyze chunks Size Map and Reference Viewer now support reading cooked asset data and displaying chunks. Changing the platform dropdown in the Asset Audit window switches the other windows as well Asset Audit window now has "Add Chunks" button, and selecting AllTypes in the Primary Asset drop down will add all primary assets Size Map now shows Disk Size by default, and supports a right click context menu Significant UI improvements to all 3 tools, including keybind support Split Manage references into Hard and Soft, where Hard are set explicitly and soft are inherited. This allows determining why an asset was included in a chunk/primary asset When the AssetManager builds management information for the audit browser/cooker, it now precomputes a chunk mapping for relevant assets. PackageChunkType is used to refer to these virtual primary assets Add callback to content browser delegates to handle adding arbitrary FAssetData to an asset view, used to show chunks Several changes to the ITreeMap UI used by size map Change 3670290 by Josh.May Added AppleAppID configs for AppsFlyer. Added AdSupport and iAd frameworks for IOSAppsFlyer. According to the AppsFlyer documentation, these are required for IDFA and Apple Search Ads tracking. Change 3643531 by Peter.Sauerbrei fix for save game location and certain data backed up to the cloud when it shouldn't Change 3629303 by Ben.Zeigler Merge fix for shared ptr corruption in async loading thread from Main, and enable asnyc loading thread for WEX Copy of CL #3623261 and 3625806 Change 3629219 by Peter.Sauerbrei Merging using WEX_Main_to_UE4_WEX_Staging bringing over the files that Stan didn't have access to Change 3629063 by Stanley.Hayes Engine Merge: Merging using WEX_Main_to_UE4_WEX_Staging(flipped) Change 3618988 by Josh.May Reimplemented DevicePerformanceBucket-based WorldMap class selection to account for the WorldMap actor being pre-serialized into the UMAP. On a related note, ChildActorComponents marked as "editor only" now mark their spawned Actors as Transient to prevent them from getting serialized at cook-time. Change 3597981 by Josh.May Converted WExpCampaignDefinition's RegionDefinition refs back to hard references and, to compensate, converted WExpZoneDefinition's ZoneBoss refs to soft references. This moves the RegionDefinitions and ZoneDefinitions from chunk 2 to chunk 1 without pulling in assets for the ZoneBosses. This also allows us to grab the ZoneBoss refs during UWExpAssetManager::GetMainMenuAssetList. Reworked UWExpAssetManager::GetMainMenuAssetList and UWExpAssetManager::GetLevelAssetList to build more "complete" asset lists by expanding lists of PrimaryAssetIds. Tweaked the WorldMap's ZoneBoss spawning to account for the switch to AssetPtrs. Change 3581214 by Josh.Markiewicz added cookie deletion for Google on logout [CL 3750870 by Stanley Hayes in Main branch]
2017-11-10 17:20:53 -05:00
/** Node name display. When drawing the tree map, this shows up at the top of the inside of the node's rectangle */
FString Name;
/** Node name (line 2). Left nodes only. This shows up on the second line of the node, right underneath its name. Might be drawn in a smaller font by default. */
FString Name2;
/** Center info text. Leaf nodes only. This draws right in the center of the node, with a larger font by default */
FString CenterText;
/**
* Size of this node. This works differently depending on whether the node is a leaf node (no children) or a container node (has children):
* - Leaf nodes must ALWAYS have a non-zero size.
* - Container nodes with size of zero will have their size determined automatically by the sum of their child sizes
* - Container nodes with a non-zero size will override their child sizes and always have the explicitly set size. Sizes of children will still be used to proportionately scale the size of the child nodes within this container.
*/
float Size;
/** Background brush for this node's box (optional) */
const struct FSlateBrush* BackgroundBrush;
/** Color for this node. This will be set automatically unless you use a customization. */
FLinearColor Color;
/** Hashtags for this node. This is just meta-data for the node that may have been loaded from a file. It is not used by the TreeMap system
directly, but you could harvest these tags and convert them into custom attributes if you wanted to! */
TArray<FString> HashTags;
/** Map of attribute name to it's respective bit of data */
TMap< FName, FTreeMapAttributeDataPtr > Attributes;
/** Back pointer to parent node, or NULL if no parent exists (root node) */
FTreeMapNodeData* Parent;
/** List of child nodes */
TArray< FTreeMapNodeDataPtr > Children;
public:
/** Default constructor for FTreeMapNodeData */
FTreeMapNodeData()
Copying WEX-Staging @ (WEX/Main @ 3740665) to //UE4/Main #lockdown Nick.Penwarden #rb none Copying //UE4/WEX-Staging to //UE4/Dev-Main (Source: //WEX/Main/Engine @ 3740665) #lockdown Nick.Penwarden Change 3739326 by Ben.Zeigler Change iteration order of depends nodes so it lists hard management references before soft management references, this is better for the UI when lots of references exist Update text for loading custom asset registry bin to be clearer Change 3739000 by John.Opila Caching optimization for text widget desired size. Change 3713551 by David.Nikdel Allow Set Properties to recognize Json array values as importable. Change 3712485 by Josh.May Added Pete's fix for the PLATFORM_TVOS/PLATFORM_IOS #define conflict introduced by mach-o/loader.h Change 3700174 by Chris.Babcock Fix setFilters crash on some Android devices Change 3691531 by Josh.May Fixed an intermittent crash that occurred when opening the AssetAuditBrower. AssetManagerEditorModule's CurrentRegistrySource was getting set too early, becoming invalid in the event that RegistrySourceMap is resized. Change 3688409 by Gil.Gribb Critical fix for an extremely rare race condition on async IO. Change 3687529 by josh.may Force layout recalculations for single-pass layout SScaleBoxes when their final scale is zero. This tends to occur in calls to SearchForWidgetRecursively before a SScaleBox's AllottedGeometry has been calculated. Change 3684788 by Peter.Sauerbrei fix for archive generation on the build machines Change 3684320 by john.opila Workaround for widgets disappering. Ensuring scale is never 0 so we don't get divide by zero. Change 3684042 by Peter.Sauerbrei more logging to figure out why there is not data in the Applicaiton diretory of the archive Change 3678620 by Ben.Zeigler Minor text changes to size map Change 3678314 by Ben.Zeigler Add Make Collection With References and Audit References to Size Map to easily allow inspecting the specific set of filtered packages in other tools Change 3677875 by Ben.Zeigler Fix crash in size map from keeping reference to node after map was resized, and undo the Name->DisplayName rename as it could affect licensees Change 3676899 by Peter.Sauerbrei narrowed down to the plist data, trying to figure out if it is missing or not Change 3676570 by Peter.Sauerbrei more logging to track down the archive error Change 3676293 by Peter.Sauerbrei fix for compile failure on IOS Change 3676172 by Peter.Sauerbrei potential fix for missing icons in the ipa when run through the build machines Change 3673544 by Ben.Zeigler Sort AllChunksInfo alphabetically so the order is consistent accross build and platforms to facillitate diffing Change 3671597 by Peter.Sauerbrei Merging //UE4/Dev-Mobile/Engine/... to //WEX/Main/Engine/... Change 3670932 by Ben.Zeigler Change it so cooking with the AssetManager writes out AllChunksInfo.csv next to the DevelopmentAssetRegistry, but not the per-chunk csv files as those are not useful. Also made the size counts platform accurate Change 3670906 by Peter.Sauerbrei update WEX for building with Xcode 9 Change 3660026 by Josh.May Moved SWebBrowserView's parent window "searches" to OnPaint. There's definitely something wrong with FindWidgetWindow... Even after deferring SWebBrowserView's calls to FindWidgetWindow until first Tick, the same widget layout artifacts could occur after opening multiple SWebBrowserViews. And, as Nick pointed out in the related email thread, this approach is also more efficient. Change 3655411 by Josh.May Ensure SWebBrowserView's parent window searches are deferred until after Construct. We haven't puzzled through it yet, but calling FindWidgetWindow during Construct seems to corrupt some Slate state. Deferring this search until later gets around the issue and makes sense anyway, given the widget isn't added to the hierarchy until after Construct. Change 3655407 by John.Opila Sneaking in some stats for SpawnActor. Change 3654649 by Ben.Zeigler Refactor SizeMap and ReferenceViewer into the AssetManagerEditor plugin, and delete the old modules. Fix SizeMap crash that I temporarily added. TreeMap is initialized weirdly Change 3648912 by Ben.Zeigler First half of changes to refactor sizemap/reference viewer into the asset manager editor plugin Add GetAllContentBrowserCommandExtenders to ContentBrowserModule that allows registering commands/keybinds to extend the content browser via plugins Add GetSharedMenu/ToolbarExtensibilityManager to AssetEditorToolkit that allows extending the generic asset editor via plugin Move the code to spawn the Reference Viewer and SizeMap into the AssetManagerEditor plugin so these UIs can be tightly bound and share data. This also enables keybinds for Size Map and Audit. Remove size map from the save as dialog, it created a special modal size map window that will not work after my refactor Change 3639419 by Ben.Marsh Use DirectoryInfo instead of DirectoryReference to enumerate projects. Tracking down UHT compile failures on Mac. Change 3638619 by David.Nikdel AsyncLoading: Suggested change by Gil to add lock prior to changing LoadPhase to WaitingForHeader (presumably to make FArchiveAsync2::StartReadingHeader's assumption about locking true) Change 3633562 by Chris.Babcock Update Android virtual keyboard support Change 3630564 by Peter.Sauerbrei fix for the manifest stage problem Change 3629577 by Chris.Babcock Fix merge errors in GameActivity.java Change 3629154 by David.Nikdel Disable debug device output in shipping builds (even if logs are enabled) Change 3626542 by John.Opila Back out changelist 3603452 Undoing the OpenGL load changes as the initial load time was just too damn high! Change 3620472 by David.Nikdel Fix from Nick to fix a BP that crashes on Compile Change 3618090 by Josh.May Reset inertial scrolling for SScrollboxes and STableView-based Slate widgets when scrolling to specific scroll offsets. Change 3613980 by Chris.Babcock Fix issue with Android password keyboard input Change 3603825 by John.Opila Shader change doesn't seem to like standalone PC. Change 3603452 by John.Opila Moving openGL shader compilation into loading instead of at the last minute. Change 3593008 by David.Nikdel Merging CL 3504471 from //Fortnite/Dev-Cinematics/Engine/... to //WEX/Main/Engine/... ---------------------------------------- Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down ================================================================================================= THESE CHANGES TOUCH MULTIPLE PLATFORMS ================================================================================================= Change 3739931 by Ben.Zeigler changes to some asset manager code modified on WEX, and fix several FStringAssetReference->FSoftObjectPath Change 3723451 by Josh.May Exposed OnBeforePopup to UMG and Blueprint for UWebBrowser. This is triggered by the CEFBrowserHandler when attempting to open hyperlinks targeting _blank and, when not handled, would result in the page never loading. Added OnBeforePopup handling for the HTMLNewsWidget, ensuring the URLs are opened in an external browser. Change 3711256 by Dmitriy.Dyomin Fixed: Friend list invalidation panel relative transform caching issues Also fixed issues with and set slate.cacherenderdata=0 for better batching Change 3698695 by Josh.May Made the UMG default font overridable via config, allowing us to replace it with a game-scope localized Font asset. If there's a better place for this mechanism/accessor to live, please let me know. Added a new 'Default' font that replicates '/Engine/EngineFonts/Roboto'. This also has a localized Font asset variant for zh-Hans. Change 3676085 by Josh.May Implemented MulticastBroadcastReceiver, a BroadcastReceiver capable of "multicasting" intents to other receivers. AppsFlyer defines a similar MultiInstallBroadcastReceiver class specific to the INSTALL_REFERRER intent, but it MUST be the very first one defined (cannot be guaranteed in our build pipeline AFAIK). Added MulticastBroadcastReceiver (for INSTALL_REFERRER) to the AndroidManifest generation logic, allowing BOTH Adjust and AppsFlyer to receive the intent. Added dev channel support for AndroidAppsFlyer, enabled conditionally based on shipping/distribution and whether or not a valid AppsFlyerDevChannel name is specified. For WEX, our dev channel is WEX_Dev. Fixed AppsFlyer_EventAttribute's Java class lookups and constructor signature. Change 3670860 by Ben.Zeigler First version of improvements to tools to analyze chunks Size Map and Reference Viewer now support reading cooked asset data and displaying chunks. Changing the platform dropdown in the Asset Audit window switches the other windows as well Asset Audit window now has "Add Chunks" button, and selecting AllTypes in the Primary Asset drop down will add all primary assets Size Map now shows Disk Size by default, and supports a right click context menu Significant UI improvements to all 3 tools, including keybind support Split Manage references into Hard and Soft, where Hard are set explicitly and soft are inherited. This allows determining why an asset was included in a chunk/primary asset When the AssetManager builds management information for the audit browser/cooker, it now precomputes a chunk mapping for relevant assets. PackageChunkType is used to refer to these virtual primary assets Add callback to content browser delegates to handle adding arbitrary FAssetData to an asset view, used to show chunks Several changes to the ITreeMap UI used by size map Change 3670290 by Josh.May Added AppleAppID configs for AppsFlyer. Added AdSupport and iAd frameworks for IOSAppsFlyer. According to the AppsFlyer documentation, these are required for IDFA and Apple Search Ads tracking. Change 3643531 by Peter.Sauerbrei fix for save game location and certain data backed up to the cloud when it shouldn't Change 3629303 by Ben.Zeigler Merge fix for shared ptr corruption in async loading thread from Main, and enable asnyc loading thread for WEX Copy of CL #3623261 and 3625806 Change 3629219 by Peter.Sauerbrei Merging using WEX_Main_to_UE4_WEX_Staging bringing over the files that Stan didn't have access to Change 3629063 by Stanley.Hayes Engine Merge: Merging using WEX_Main_to_UE4_WEX_Staging(flipped) Change 3618988 by Josh.May Reimplemented DevicePerformanceBucket-based WorldMap class selection to account for the WorldMap actor being pre-serialized into the UMAP. On a related note, ChildActorComponents marked as "editor only" now mark their spawned Actors as Transient to prevent them from getting serialized at cook-time. Change 3597981 by Josh.May Converted WExpCampaignDefinition's RegionDefinition refs back to hard references and, to compensate, converted WExpZoneDefinition's ZoneBoss refs to soft references. This moves the RegionDefinitions and ZoneDefinitions from chunk 2 to chunk 1 without pulling in assets for the ZoneBosses. This also allows us to grab the ZoneBoss refs during UWExpAssetManager::GetMainMenuAssetList. Reworked UWExpAssetManager::GetMainMenuAssetList and UWExpAssetManager::GetLevelAssetList to build more "complete" asset lists by expanding lists of PrimaryAssetIds. Tweaked the WorldMap's ZoneBoss spawning to account for the switch to AssetPtrs. Change 3581214 by Josh.Markiewicz added cookie deletion for Google on logout [CL 3750870 by Stanley Hayes in Main branch]
2017-11-10 17:20:53 -05:00
: Size( 0.0 ),
BackgroundBrush( nullptr ),
Color( FLinearColor::White ),
Copying WEX-Staging @ (WEX/Main @ 3740665) to //UE4/Main #lockdown Nick.Penwarden #rb none Copying //UE4/WEX-Staging to //UE4/Dev-Main (Source: //WEX/Main/Engine @ 3740665) #lockdown Nick.Penwarden Change 3739326 by Ben.Zeigler Change iteration order of depends nodes so it lists hard management references before soft management references, this is better for the UI when lots of references exist Update text for loading custom asset registry bin to be clearer Change 3739000 by John.Opila Caching optimization for text widget desired size. Change 3713551 by David.Nikdel Allow Set Properties to recognize Json array values as importable. Change 3712485 by Josh.May Added Pete's fix for the PLATFORM_TVOS/PLATFORM_IOS #define conflict introduced by mach-o/loader.h Change 3700174 by Chris.Babcock Fix setFilters crash on some Android devices Change 3691531 by Josh.May Fixed an intermittent crash that occurred when opening the AssetAuditBrower. AssetManagerEditorModule's CurrentRegistrySource was getting set too early, becoming invalid in the event that RegistrySourceMap is resized. Change 3688409 by Gil.Gribb Critical fix for an extremely rare race condition on async IO. Change 3687529 by josh.may Force layout recalculations for single-pass layout SScaleBoxes when their final scale is zero. This tends to occur in calls to SearchForWidgetRecursively before a SScaleBox's AllottedGeometry has been calculated. Change 3684788 by Peter.Sauerbrei fix for archive generation on the build machines Change 3684320 by john.opila Workaround for widgets disappering. Ensuring scale is never 0 so we don't get divide by zero. Change 3684042 by Peter.Sauerbrei more logging to figure out why there is not data in the Applicaiton diretory of the archive Change 3678620 by Ben.Zeigler Minor text changes to size map Change 3678314 by Ben.Zeigler Add Make Collection With References and Audit References to Size Map to easily allow inspecting the specific set of filtered packages in other tools Change 3677875 by Ben.Zeigler Fix crash in size map from keeping reference to node after map was resized, and undo the Name->DisplayName rename as it could affect licensees Change 3676899 by Peter.Sauerbrei narrowed down to the plist data, trying to figure out if it is missing or not Change 3676570 by Peter.Sauerbrei more logging to track down the archive error Change 3676293 by Peter.Sauerbrei fix for compile failure on IOS Change 3676172 by Peter.Sauerbrei potential fix for missing icons in the ipa when run through the build machines Change 3673544 by Ben.Zeigler Sort AllChunksInfo alphabetically so the order is consistent accross build and platforms to facillitate diffing Change 3671597 by Peter.Sauerbrei Merging //UE4/Dev-Mobile/Engine/... to //WEX/Main/Engine/... Change 3670932 by Ben.Zeigler Change it so cooking with the AssetManager writes out AllChunksInfo.csv next to the DevelopmentAssetRegistry, but not the per-chunk csv files as those are not useful. Also made the size counts platform accurate Change 3670906 by Peter.Sauerbrei update WEX for building with Xcode 9 Change 3660026 by Josh.May Moved SWebBrowserView's parent window "searches" to OnPaint. There's definitely something wrong with FindWidgetWindow... Even after deferring SWebBrowserView's calls to FindWidgetWindow until first Tick, the same widget layout artifacts could occur after opening multiple SWebBrowserViews. And, as Nick pointed out in the related email thread, this approach is also more efficient. Change 3655411 by Josh.May Ensure SWebBrowserView's parent window searches are deferred until after Construct. We haven't puzzled through it yet, but calling FindWidgetWindow during Construct seems to corrupt some Slate state. Deferring this search until later gets around the issue and makes sense anyway, given the widget isn't added to the hierarchy until after Construct. Change 3655407 by John.Opila Sneaking in some stats for SpawnActor. Change 3654649 by Ben.Zeigler Refactor SizeMap and ReferenceViewer into the AssetManagerEditor plugin, and delete the old modules. Fix SizeMap crash that I temporarily added. TreeMap is initialized weirdly Change 3648912 by Ben.Zeigler First half of changes to refactor sizemap/reference viewer into the asset manager editor plugin Add GetAllContentBrowserCommandExtenders to ContentBrowserModule that allows registering commands/keybinds to extend the content browser via plugins Add GetSharedMenu/ToolbarExtensibilityManager to AssetEditorToolkit that allows extending the generic asset editor via plugin Move the code to spawn the Reference Viewer and SizeMap into the AssetManagerEditor plugin so these UIs can be tightly bound and share data. This also enables keybinds for Size Map and Audit. Remove size map from the save as dialog, it created a special modal size map window that will not work after my refactor Change 3639419 by Ben.Marsh Use DirectoryInfo instead of DirectoryReference to enumerate projects. Tracking down UHT compile failures on Mac. Change 3638619 by David.Nikdel AsyncLoading: Suggested change by Gil to add lock prior to changing LoadPhase to WaitingForHeader (presumably to make FArchiveAsync2::StartReadingHeader's assumption about locking true) Change 3633562 by Chris.Babcock Update Android virtual keyboard support Change 3630564 by Peter.Sauerbrei fix for the manifest stage problem Change 3629577 by Chris.Babcock Fix merge errors in GameActivity.java Change 3629154 by David.Nikdel Disable debug device output in shipping builds (even if logs are enabled) Change 3626542 by John.Opila Back out changelist 3603452 Undoing the OpenGL load changes as the initial load time was just too damn high! Change 3620472 by David.Nikdel Fix from Nick to fix a BP that crashes on Compile Change 3618090 by Josh.May Reset inertial scrolling for SScrollboxes and STableView-based Slate widgets when scrolling to specific scroll offsets. Change 3613980 by Chris.Babcock Fix issue with Android password keyboard input Change 3603825 by John.Opila Shader change doesn't seem to like standalone PC. Change 3603452 by John.Opila Moving openGL shader compilation into loading instead of at the last minute. Change 3593008 by David.Nikdel Merging CL 3504471 from //Fortnite/Dev-Cinematics/Engine/... to //WEX/Main/Engine/... ---------------------------------------- Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down ================================================================================================= THESE CHANGES TOUCH MULTIPLE PLATFORMS ================================================================================================= Change 3739931 by Ben.Zeigler changes to some asset manager code modified on WEX, and fix several FStringAssetReference->FSoftObjectPath Change 3723451 by Josh.May Exposed OnBeforePopup to UMG and Blueprint for UWebBrowser. This is triggered by the CEFBrowserHandler when attempting to open hyperlinks targeting _blank and, when not handled, would result in the page never loading. Added OnBeforePopup handling for the HTMLNewsWidget, ensuring the URLs are opened in an external browser. Change 3711256 by Dmitriy.Dyomin Fixed: Friend list invalidation panel relative transform caching issues Also fixed issues with and set slate.cacherenderdata=0 for better batching Change 3698695 by Josh.May Made the UMG default font overridable via config, allowing us to replace it with a game-scope localized Font asset. If there's a better place for this mechanism/accessor to live, please let me know. Added a new 'Default' font that replicates '/Engine/EngineFonts/Roboto'. This also has a localized Font asset variant for zh-Hans. Change 3676085 by Josh.May Implemented MulticastBroadcastReceiver, a BroadcastReceiver capable of "multicasting" intents to other receivers. AppsFlyer defines a similar MultiInstallBroadcastReceiver class specific to the INSTALL_REFERRER intent, but it MUST be the very first one defined (cannot be guaranteed in our build pipeline AFAIK). Added MulticastBroadcastReceiver (for INSTALL_REFERRER) to the AndroidManifest generation logic, allowing BOTH Adjust and AppsFlyer to receive the intent. Added dev channel support for AndroidAppsFlyer, enabled conditionally based on shipping/distribution and whether or not a valid AppsFlyerDevChannel name is specified. For WEX, our dev channel is WEX_Dev. Fixed AppsFlyer_EventAttribute's Java class lookups and constructor signature. Change 3670860 by Ben.Zeigler First version of improvements to tools to analyze chunks Size Map and Reference Viewer now support reading cooked asset data and displaying chunks. Changing the platform dropdown in the Asset Audit window switches the other windows as well Asset Audit window now has "Add Chunks" button, and selecting AllTypes in the Primary Asset drop down will add all primary assets Size Map now shows Disk Size by default, and supports a right click context menu Significant UI improvements to all 3 tools, including keybind support Split Manage references into Hard and Soft, where Hard are set explicitly and soft are inherited. This allows determining why an asset was included in a chunk/primary asset When the AssetManager builds management information for the audit browser/cooker, it now precomputes a chunk mapping for relevant assets. PackageChunkType is used to refer to these virtual primary assets Add callback to content browser delegates to handle adding arbitrary FAssetData to an asset view, used to show chunks Several changes to the ITreeMap UI used by size map Change 3670290 by Josh.May Added AppleAppID configs for AppsFlyer. Added AdSupport and iAd frameworks for IOSAppsFlyer. According to the AppsFlyer documentation, these are required for IDFA and Apple Search Ads tracking. Change 3643531 by Peter.Sauerbrei fix for save game location and certain data backed up to the cloud when it shouldn't Change 3629303 by Ben.Zeigler Merge fix for shared ptr corruption in async loading thread from Main, and enable asnyc loading thread for WEX Copy of CL #3623261 and 3625806 Change 3629219 by Peter.Sauerbrei Merging using WEX_Main_to_UE4_WEX_Staging bringing over the files that Stan didn't have access to Change 3629063 by Stanley.Hayes Engine Merge: Merging using WEX_Main_to_UE4_WEX_Staging(flipped) Change 3618988 by Josh.May Reimplemented DevicePerformanceBucket-based WorldMap class selection to account for the WorldMap actor being pre-serialized into the UMAP. On a related note, ChildActorComponents marked as "editor only" now mark their spawned Actors as Transient to prevent them from getting serialized at cook-time. Change 3597981 by Josh.May Converted WExpCampaignDefinition's RegionDefinition refs back to hard references and, to compensate, converted WExpZoneDefinition's ZoneBoss refs to soft references. This moves the RegionDefinitions and ZoneDefinitions from chunk 2 to chunk 1 without pulling in assets for the ZoneBosses. This also allows us to grab the ZoneBoss refs during UWExpAssetManager::GetMainMenuAssetList. Reworked UWExpAssetManager::GetMainMenuAssetList and UWExpAssetManager::GetLevelAssetList to build more "complete" asset lists by expanding lists of PrimaryAssetIds. Tweaked the WorldMap's ZoneBoss spawning to account for the switch to AssetPtrs. Change 3581214 by Josh.Markiewicz added cookie deletion for Google on logout [CL 3750870 by Stanley Hayes in Main branch]
2017-11-10 17:20:53 -05:00
Parent( NULL )
{
}
Copying WEX-Staging @ (WEX/Main @ 3740665) to //UE4/Main #lockdown Nick.Penwarden #rb none Copying //UE4/WEX-Staging to //UE4/Dev-Main (Source: //WEX/Main/Engine @ 3740665) #lockdown Nick.Penwarden Change 3739326 by Ben.Zeigler Change iteration order of depends nodes so it lists hard management references before soft management references, this is better for the UI when lots of references exist Update text for loading custom asset registry bin to be clearer Change 3739000 by John.Opila Caching optimization for text widget desired size. Change 3713551 by David.Nikdel Allow Set Properties to recognize Json array values as importable. Change 3712485 by Josh.May Added Pete's fix for the PLATFORM_TVOS/PLATFORM_IOS #define conflict introduced by mach-o/loader.h Change 3700174 by Chris.Babcock Fix setFilters crash on some Android devices Change 3691531 by Josh.May Fixed an intermittent crash that occurred when opening the AssetAuditBrower. AssetManagerEditorModule's CurrentRegistrySource was getting set too early, becoming invalid in the event that RegistrySourceMap is resized. Change 3688409 by Gil.Gribb Critical fix for an extremely rare race condition on async IO. Change 3687529 by josh.may Force layout recalculations for single-pass layout SScaleBoxes when their final scale is zero. This tends to occur in calls to SearchForWidgetRecursively before a SScaleBox's AllottedGeometry has been calculated. Change 3684788 by Peter.Sauerbrei fix for archive generation on the build machines Change 3684320 by john.opila Workaround for widgets disappering. Ensuring scale is never 0 so we don't get divide by zero. Change 3684042 by Peter.Sauerbrei more logging to figure out why there is not data in the Applicaiton diretory of the archive Change 3678620 by Ben.Zeigler Minor text changes to size map Change 3678314 by Ben.Zeigler Add Make Collection With References and Audit References to Size Map to easily allow inspecting the specific set of filtered packages in other tools Change 3677875 by Ben.Zeigler Fix crash in size map from keeping reference to node after map was resized, and undo the Name->DisplayName rename as it could affect licensees Change 3676899 by Peter.Sauerbrei narrowed down to the plist data, trying to figure out if it is missing or not Change 3676570 by Peter.Sauerbrei more logging to track down the archive error Change 3676293 by Peter.Sauerbrei fix for compile failure on IOS Change 3676172 by Peter.Sauerbrei potential fix for missing icons in the ipa when run through the build machines Change 3673544 by Ben.Zeigler Sort AllChunksInfo alphabetically so the order is consistent accross build and platforms to facillitate diffing Change 3671597 by Peter.Sauerbrei Merging //UE4/Dev-Mobile/Engine/... to //WEX/Main/Engine/... Change 3670932 by Ben.Zeigler Change it so cooking with the AssetManager writes out AllChunksInfo.csv next to the DevelopmentAssetRegistry, but not the per-chunk csv files as those are not useful. Also made the size counts platform accurate Change 3670906 by Peter.Sauerbrei update WEX for building with Xcode 9 Change 3660026 by Josh.May Moved SWebBrowserView's parent window "searches" to OnPaint. There's definitely something wrong with FindWidgetWindow... Even after deferring SWebBrowserView's calls to FindWidgetWindow until first Tick, the same widget layout artifacts could occur after opening multiple SWebBrowserViews. And, as Nick pointed out in the related email thread, this approach is also more efficient. Change 3655411 by Josh.May Ensure SWebBrowserView's parent window searches are deferred until after Construct. We haven't puzzled through it yet, but calling FindWidgetWindow during Construct seems to corrupt some Slate state. Deferring this search until later gets around the issue and makes sense anyway, given the widget isn't added to the hierarchy until after Construct. Change 3655407 by John.Opila Sneaking in some stats for SpawnActor. Change 3654649 by Ben.Zeigler Refactor SizeMap and ReferenceViewer into the AssetManagerEditor plugin, and delete the old modules. Fix SizeMap crash that I temporarily added. TreeMap is initialized weirdly Change 3648912 by Ben.Zeigler First half of changes to refactor sizemap/reference viewer into the asset manager editor plugin Add GetAllContentBrowserCommandExtenders to ContentBrowserModule that allows registering commands/keybinds to extend the content browser via plugins Add GetSharedMenu/ToolbarExtensibilityManager to AssetEditorToolkit that allows extending the generic asset editor via plugin Move the code to spawn the Reference Viewer and SizeMap into the AssetManagerEditor plugin so these UIs can be tightly bound and share data. This also enables keybinds for Size Map and Audit. Remove size map from the save as dialog, it created a special modal size map window that will not work after my refactor Change 3639419 by Ben.Marsh Use DirectoryInfo instead of DirectoryReference to enumerate projects. Tracking down UHT compile failures on Mac. Change 3638619 by David.Nikdel AsyncLoading: Suggested change by Gil to add lock prior to changing LoadPhase to WaitingForHeader (presumably to make FArchiveAsync2::StartReadingHeader's assumption about locking true) Change 3633562 by Chris.Babcock Update Android virtual keyboard support Change 3630564 by Peter.Sauerbrei fix for the manifest stage problem Change 3629577 by Chris.Babcock Fix merge errors in GameActivity.java Change 3629154 by David.Nikdel Disable debug device output in shipping builds (even if logs are enabled) Change 3626542 by John.Opila Back out changelist 3603452 Undoing the OpenGL load changes as the initial load time was just too damn high! Change 3620472 by David.Nikdel Fix from Nick to fix a BP that crashes on Compile Change 3618090 by Josh.May Reset inertial scrolling for SScrollboxes and STableView-based Slate widgets when scrolling to specific scroll offsets. Change 3613980 by Chris.Babcock Fix issue with Android password keyboard input Change 3603825 by John.Opila Shader change doesn't seem to like standalone PC. Change 3603452 by John.Opila Moving openGL shader compilation into loading instead of at the last minute. Change 3593008 by David.Nikdel Merging CL 3504471 from //Fortnite/Dev-Cinematics/Engine/... to //WEX/Main/Engine/... ---------------------------------------- Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down ================================================================================================= THESE CHANGES TOUCH MULTIPLE PLATFORMS ================================================================================================= Change 3739931 by Ben.Zeigler changes to some asset manager code modified on WEX, and fix several FStringAssetReference->FSoftObjectPath Change 3723451 by Josh.May Exposed OnBeforePopup to UMG and Blueprint for UWebBrowser. This is triggered by the CEFBrowserHandler when attempting to open hyperlinks targeting _blank and, when not handled, would result in the page never loading. Added OnBeforePopup handling for the HTMLNewsWidget, ensuring the URLs are opened in an external browser. Change 3711256 by Dmitriy.Dyomin Fixed: Friend list invalidation panel relative transform caching issues Also fixed issues with and set slate.cacherenderdata=0 for better batching Change 3698695 by Josh.May Made the UMG default font overridable via config, allowing us to replace it with a game-scope localized Font asset. If there's a better place for this mechanism/accessor to live, please let me know. Added a new 'Default' font that replicates '/Engine/EngineFonts/Roboto'. This also has a localized Font asset variant for zh-Hans. Change 3676085 by Josh.May Implemented MulticastBroadcastReceiver, a BroadcastReceiver capable of "multicasting" intents to other receivers. AppsFlyer defines a similar MultiInstallBroadcastReceiver class specific to the INSTALL_REFERRER intent, but it MUST be the very first one defined (cannot be guaranteed in our build pipeline AFAIK). Added MulticastBroadcastReceiver (for INSTALL_REFERRER) to the AndroidManifest generation logic, allowing BOTH Adjust and AppsFlyer to receive the intent. Added dev channel support for AndroidAppsFlyer, enabled conditionally based on shipping/distribution and whether or not a valid AppsFlyerDevChannel name is specified. For WEX, our dev channel is WEX_Dev. Fixed AppsFlyer_EventAttribute's Java class lookups and constructor signature. Change 3670860 by Ben.Zeigler First version of improvements to tools to analyze chunks Size Map and Reference Viewer now support reading cooked asset data and displaying chunks. Changing the platform dropdown in the Asset Audit window switches the other windows as well Asset Audit window now has "Add Chunks" button, and selecting AllTypes in the Primary Asset drop down will add all primary assets Size Map now shows Disk Size by default, and supports a right click context menu Significant UI improvements to all 3 tools, including keybind support Split Manage references into Hard and Soft, where Hard are set explicitly and soft are inherited. This allows determining why an asset was included in a chunk/primary asset When the AssetManager builds management information for the audit browser/cooker, it now precomputes a chunk mapping for relevant assets. PackageChunkType is used to refer to these virtual primary assets Add callback to content browser delegates to handle adding arbitrary FAssetData to an asset view, used to show chunks Several changes to the ITreeMap UI used by size map Change 3670290 by Josh.May Added AppleAppID configs for AppsFlyer. Added AdSupport and iAd frameworks for IOSAppsFlyer. According to the AppsFlyer documentation, these are required for IDFA and Apple Search Ads tracking. Change 3643531 by Peter.Sauerbrei fix for save game location and certain data backed up to the cloud when it shouldn't Change 3629303 by Ben.Zeigler Merge fix for shared ptr corruption in async loading thread from Main, and enable asnyc loading thread for WEX Copy of CL #3623261 and 3625806 Change 3629219 by Peter.Sauerbrei Merging using WEX_Main_to_UE4_WEX_Staging bringing over the files that Stan didn't have access to Change 3629063 by Stanley.Hayes Engine Merge: Merging using WEX_Main_to_UE4_WEX_Staging(flipped) Change 3618988 by Josh.May Reimplemented DevicePerformanceBucket-based WorldMap class selection to account for the WorldMap actor being pre-serialized into the UMAP. On a related note, ChildActorComponents marked as "editor only" now mark their spawned Actors as Transient to prevent them from getting serialized at cook-time. Change 3597981 by Josh.May Converted WExpCampaignDefinition's RegionDefinition refs back to hard references and, to compensate, converted WExpZoneDefinition's ZoneBoss refs to soft references. This moves the RegionDefinitions and ZoneDefinitions from chunk 2 to chunk 1 without pulling in assets for the ZoneBosses. This also allows us to grab the ZoneBoss refs during UWExpAssetManager::GetMainMenuAssetList. Reworked UWExpAssetManager::GetMainMenuAssetList and UWExpAssetManager::GetLevelAssetList to build more "complete" asset lists by expanding lists of PrimaryAssetIds. Tweaked the WorldMap's ZoneBoss spawning to account for the switch to AssetPtrs. Change 3581214 by Josh.Markiewicz added cookie deletion for Google on logout [CL 3750870 by Stanley Hayes in Main branch]
2017-11-10 17:20:53 -05:00
bool operator==(const FTreeMapNodeData& Other) const
{
if (!LogicalName.IsEmpty() || !Other.LogicalName.IsEmpty())
{
return LogicalName == Other.LogicalName;
}
return Name == Other.Name && Name2 == Other.Name2 && CenterText == Other.CenterText;
}
bool operator!=(const FTreeMapNodeData& Other) const
{
return !(*this == Other);
}
/** @return Returns true if this is a leaf node */
bool IsLeafNode() const
{
return Children.Num() == 0;
}
/** @return Copies this node into another node (not children, though. The copied node will have no children.) */
void CopyNodeInto( FTreeMapNodeData& NodeCopy ) const
{
Copying WEX-Staging @ (WEX/Main @ 3740665) to //UE4/Main #lockdown Nick.Penwarden #rb none Copying //UE4/WEX-Staging to //UE4/Dev-Main (Source: //WEX/Main/Engine @ 3740665) #lockdown Nick.Penwarden Change 3739326 by Ben.Zeigler Change iteration order of depends nodes so it lists hard management references before soft management references, this is better for the UI when lots of references exist Update text for loading custom asset registry bin to be clearer Change 3739000 by John.Opila Caching optimization for text widget desired size. Change 3713551 by David.Nikdel Allow Set Properties to recognize Json array values as importable. Change 3712485 by Josh.May Added Pete's fix for the PLATFORM_TVOS/PLATFORM_IOS #define conflict introduced by mach-o/loader.h Change 3700174 by Chris.Babcock Fix setFilters crash on some Android devices Change 3691531 by Josh.May Fixed an intermittent crash that occurred when opening the AssetAuditBrower. AssetManagerEditorModule's CurrentRegistrySource was getting set too early, becoming invalid in the event that RegistrySourceMap is resized. Change 3688409 by Gil.Gribb Critical fix for an extremely rare race condition on async IO. Change 3687529 by josh.may Force layout recalculations for single-pass layout SScaleBoxes when their final scale is zero. This tends to occur in calls to SearchForWidgetRecursively before a SScaleBox's AllottedGeometry has been calculated. Change 3684788 by Peter.Sauerbrei fix for archive generation on the build machines Change 3684320 by john.opila Workaround for widgets disappering. Ensuring scale is never 0 so we don't get divide by zero. Change 3684042 by Peter.Sauerbrei more logging to figure out why there is not data in the Applicaiton diretory of the archive Change 3678620 by Ben.Zeigler Minor text changes to size map Change 3678314 by Ben.Zeigler Add Make Collection With References and Audit References to Size Map to easily allow inspecting the specific set of filtered packages in other tools Change 3677875 by Ben.Zeigler Fix crash in size map from keeping reference to node after map was resized, and undo the Name->DisplayName rename as it could affect licensees Change 3676899 by Peter.Sauerbrei narrowed down to the plist data, trying to figure out if it is missing or not Change 3676570 by Peter.Sauerbrei more logging to track down the archive error Change 3676293 by Peter.Sauerbrei fix for compile failure on IOS Change 3676172 by Peter.Sauerbrei potential fix for missing icons in the ipa when run through the build machines Change 3673544 by Ben.Zeigler Sort AllChunksInfo alphabetically so the order is consistent accross build and platforms to facillitate diffing Change 3671597 by Peter.Sauerbrei Merging //UE4/Dev-Mobile/Engine/... to //WEX/Main/Engine/... Change 3670932 by Ben.Zeigler Change it so cooking with the AssetManager writes out AllChunksInfo.csv next to the DevelopmentAssetRegistry, but not the per-chunk csv files as those are not useful. Also made the size counts platform accurate Change 3670906 by Peter.Sauerbrei update WEX for building with Xcode 9 Change 3660026 by Josh.May Moved SWebBrowserView's parent window "searches" to OnPaint. There's definitely something wrong with FindWidgetWindow... Even after deferring SWebBrowserView's calls to FindWidgetWindow until first Tick, the same widget layout artifacts could occur after opening multiple SWebBrowserViews. And, as Nick pointed out in the related email thread, this approach is also more efficient. Change 3655411 by Josh.May Ensure SWebBrowserView's parent window searches are deferred until after Construct. We haven't puzzled through it yet, but calling FindWidgetWindow during Construct seems to corrupt some Slate state. Deferring this search until later gets around the issue and makes sense anyway, given the widget isn't added to the hierarchy until after Construct. Change 3655407 by John.Opila Sneaking in some stats for SpawnActor. Change 3654649 by Ben.Zeigler Refactor SizeMap and ReferenceViewer into the AssetManagerEditor plugin, and delete the old modules. Fix SizeMap crash that I temporarily added. TreeMap is initialized weirdly Change 3648912 by Ben.Zeigler First half of changes to refactor sizemap/reference viewer into the asset manager editor plugin Add GetAllContentBrowserCommandExtenders to ContentBrowserModule that allows registering commands/keybinds to extend the content browser via plugins Add GetSharedMenu/ToolbarExtensibilityManager to AssetEditorToolkit that allows extending the generic asset editor via plugin Move the code to spawn the Reference Viewer and SizeMap into the AssetManagerEditor plugin so these UIs can be tightly bound and share data. This also enables keybinds for Size Map and Audit. Remove size map from the save as dialog, it created a special modal size map window that will not work after my refactor Change 3639419 by Ben.Marsh Use DirectoryInfo instead of DirectoryReference to enumerate projects. Tracking down UHT compile failures on Mac. Change 3638619 by David.Nikdel AsyncLoading: Suggested change by Gil to add lock prior to changing LoadPhase to WaitingForHeader (presumably to make FArchiveAsync2::StartReadingHeader's assumption about locking true) Change 3633562 by Chris.Babcock Update Android virtual keyboard support Change 3630564 by Peter.Sauerbrei fix for the manifest stage problem Change 3629577 by Chris.Babcock Fix merge errors in GameActivity.java Change 3629154 by David.Nikdel Disable debug device output in shipping builds (even if logs are enabled) Change 3626542 by John.Opila Back out changelist 3603452 Undoing the OpenGL load changes as the initial load time was just too damn high! Change 3620472 by David.Nikdel Fix from Nick to fix a BP that crashes on Compile Change 3618090 by Josh.May Reset inertial scrolling for SScrollboxes and STableView-based Slate widgets when scrolling to specific scroll offsets. Change 3613980 by Chris.Babcock Fix issue with Android password keyboard input Change 3603825 by John.Opila Shader change doesn't seem to like standalone PC. Change 3603452 by John.Opila Moving openGL shader compilation into loading instead of at the last minute. Change 3593008 by David.Nikdel Merging CL 3504471 from //Fortnite/Dev-Cinematics/Engine/... to //WEX/Main/Engine/... ---------------------------------------- Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down ================================================================================================= THESE CHANGES TOUCH MULTIPLE PLATFORMS ================================================================================================= Change 3739931 by Ben.Zeigler changes to some asset manager code modified on WEX, and fix several FStringAssetReference->FSoftObjectPath Change 3723451 by Josh.May Exposed OnBeforePopup to UMG and Blueprint for UWebBrowser. This is triggered by the CEFBrowserHandler when attempting to open hyperlinks targeting _blank and, when not handled, would result in the page never loading. Added OnBeforePopup handling for the HTMLNewsWidget, ensuring the URLs are opened in an external browser. Change 3711256 by Dmitriy.Dyomin Fixed: Friend list invalidation panel relative transform caching issues Also fixed issues with and set slate.cacherenderdata=0 for better batching Change 3698695 by Josh.May Made the UMG default font overridable via config, allowing us to replace it with a game-scope localized Font asset. If there's a better place for this mechanism/accessor to live, please let me know. Added a new 'Default' font that replicates '/Engine/EngineFonts/Roboto'. This also has a localized Font asset variant for zh-Hans. Change 3676085 by Josh.May Implemented MulticastBroadcastReceiver, a BroadcastReceiver capable of "multicasting" intents to other receivers. AppsFlyer defines a similar MultiInstallBroadcastReceiver class specific to the INSTALL_REFERRER intent, but it MUST be the very first one defined (cannot be guaranteed in our build pipeline AFAIK). Added MulticastBroadcastReceiver (for INSTALL_REFERRER) to the AndroidManifest generation logic, allowing BOTH Adjust and AppsFlyer to receive the intent. Added dev channel support for AndroidAppsFlyer, enabled conditionally based on shipping/distribution and whether or not a valid AppsFlyerDevChannel name is specified. For WEX, our dev channel is WEX_Dev. Fixed AppsFlyer_EventAttribute's Java class lookups and constructor signature. Change 3670860 by Ben.Zeigler First version of improvements to tools to analyze chunks Size Map and Reference Viewer now support reading cooked asset data and displaying chunks. Changing the platform dropdown in the Asset Audit window switches the other windows as well Asset Audit window now has "Add Chunks" button, and selecting AllTypes in the Primary Asset drop down will add all primary assets Size Map now shows Disk Size by default, and supports a right click context menu Significant UI improvements to all 3 tools, including keybind support Split Manage references into Hard and Soft, where Hard are set explicitly and soft are inherited. This allows determining why an asset was included in a chunk/primary asset When the AssetManager builds management information for the audit browser/cooker, it now precomputes a chunk mapping for relevant assets. PackageChunkType is used to refer to these virtual primary assets Add callback to content browser delegates to handle adding arbitrary FAssetData to an asset view, used to show chunks Several changes to the ITreeMap UI used by size map Change 3670290 by Josh.May Added AppleAppID configs for AppsFlyer. Added AdSupport and iAd frameworks for IOSAppsFlyer. According to the AppsFlyer documentation, these are required for IDFA and Apple Search Ads tracking. Change 3643531 by Peter.Sauerbrei fix for save game location and certain data backed up to the cloud when it shouldn't Change 3629303 by Ben.Zeigler Merge fix for shared ptr corruption in async loading thread from Main, and enable asnyc loading thread for WEX Copy of CL #3623261 and 3625806 Change 3629219 by Peter.Sauerbrei Merging using WEX_Main_to_UE4_WEX_Staging bringing over the files that Stan didn't have access to Change 3629063 by Stanley.Hayes Engine Merge: Merging using WEX_Main_to_UE4_WEX_Staging(flipped) Change 3618988 by Josh.May Reimplemented DevicePerformanceBucket-based WorldMap class selection to account for the WorldMap actor being pre-serialized into the UMAP. On a related note, ChildActorComponents marked as "editor only" now mark their spawned Actors as Transient to prevent them from getting serialized at cook-time. Change 3597981 by Josh.May Converted WExpCampaignDefinition's RegionDefinition refs back to hard references and, to compensate, converted WExpZoneDefinition's ZoneBoss refs to soft references. This moves the RegionDefinitions and ZoneDefinitions from chunk 2 to chunk 1 without pulling in assets for the ZoneBosses. This also allows us to grab the ZoneBoss refs during UWExpAssetManager::GetMainMenuAssetList. Reworked UWExpAssetManager::GetMainMenuAssetList and UWExpAssetManager::GetLevelAssetList to build more "complete" asset lists by expanding lists of PrimaryAssetIds. Tweaked the WorldMap's ZoneBoss spawning to account for the switch to AssetPtrs. Change 3581214 by Josh.Markiewicz added cookie deletion for Google on logout [CL 3750870 by Stanley Hayes in Main branch]
2017-11-10 17:20:53 -05:00
NodeCopy.LogicalName = this->LogicalName;
NodeCopy.Name = this->Name;
NodeCopy.Name2 = this->Name2;
NodeCopy.CenterText = this->CenterText;
NodeCopy.BackgroundBrush = this->BackgroundBrush;
NodeCopy.Size = this->Size;
NodeCopy.Color = this->Color;
NodeCopy.HashTags = this->HashTags;
for( auto HashIter( this->Attributes.CreateConstIterator() ); HashIter; ++HashIter )
{
FTreeMapAttributeDataRef AttributeDataCopy( new FTreeMapAttributeData() );
AttributeDataCopy->Value = HashIter.Value()->Value;
NodeCopy.Attributes.Add( HashIter.Key(), AttributeDataCopy );
}
NodeCopy.Children.Empty();
NodeCopy.Parent = this->Parent;
}
/** @return Returns a copy of this node; all child nodes are copied, too! */
FTreeMapNodeDataRef CopyNodeRecursively() const
{
FTreeMapNodeDataRef NodeCopy = MakeShareable( new FTreeMapNodeData() );
this->CopyNodeInto( *NodeCopy );
for( const auto& ChildNode : this->Children )
{
const auto& ChildCopy = ChildNode->CopyNodeRecursively();
NodeCopy->Children.Add( ChildCopy );
ChildCopy->Parent = &NodeCopy.Get();
}
return NodeCopy;
}
};
/** Type of tree map */
enum class ETreeMapType
{
/** Plain tree map */
Standard,
/** Squarified tree map */
Squarified,
};
/**
* Configuration for a new tree map
*/
struct FTreeMapOptions
{
/** Width of whole display area */
float DisplayWidth;
/** Height of whole display area */
float DisplayHeight;
/** Type of tree map */
ETreeMapType TreeMapType;
/** Font to use for titles. This is needed so that we can calculate the amount of padding space needed. This font will be used for text
titles at the root-most level of the tree. Nested levels get smaller fonts. This also affects the amount of space reserved for the title area at the top of each node. */
FSlateFontInfo NameFont;
/** Font for second line of text, under the title. Leaf nodes only. Usually a bit smaller. Works just like NameFont */
FSlateFontInfo Name2Font;
/** Font for any text that's centered inside the middle of the node. Leaf nodes only. Usually a bit larger. Works just like NameFont */
FSlateFontInfo CenterTextFont;
/** Number of font sizes to drop with each depth level of the tree */
int32 FontSizeChangeBasedOnDepth;
/** Padding around the outside of top-level container nodes in the tree */
float TopLevelContainerOuterPadding;
/** Padding around the outside of nested container nodes in the tree */
float NestedContainerOuterPadding;
/** Padding around a set of children inside of containers, under the container's title area */
float ContainerInnerPadding;
/** Minimize size of a tree node that will be allowed to have a title and padding. Nodes smaller than this will be a simple rectangle. Doesn't apply to top level nodes. */
float MinimumInteractiveNodeSize;
Copying WEX-Staging @ (WEX/Main @ 3740665) to //UE4/Main #lockdown Nick.Penwarden #rb none Copying //UE4/WEX-Staging to //UE4/Dev-Main (Source: //WEX/Main/Engine @ 3740665) #lockdown Nick.Penwarden Change 3739326 by Ben.Zeigler Change iteration order of depends nodes so it lists hard management references before soft management references, this is better for the UI when lots of references exist Update text for loading custom asset registry bin to be clearer Change 3739000 by John.Opila Caching optimization for text widget desired size. Change 3713551 by David.Nikdel Allow Set Properties to recognize Json array values as importable. Change 3712485 by Josh.May Added Pete's fix for the PLATFORM_TVOS/PLATFORM_IOS #define conflict introduced by mach-o/loader.h Change 3700174 by Chris.Babcock Fix setFilters crash on some Android devices Change 3691531 by Josh.May Fixed an intermittent crash that occurred when opening the AssetAuditBrower. AssetManagerEditorModule's CurrentRegistrySource was getting set too early, becoming invalid in the event that RegistrySourceMap is resized. Change 3688409 by Gil.Gribb Critical fix for an extremely rare race condition on async IO. Change 3687529 by josh.may Force layout recalculations for single-pass layout SScaleBoxes when their final scale is zero. This tends to occur in calls to SearchForWidgetRecursively before a SScaleBox's AllottedGeometry has been calculated. Change 3684788 by Peter.Sauerbrei fix for archive generation on the build machines Change 3684320 by john.opila Workaround for widgets disappering. Ensuring scale is never 0 so we don't get divide by zero. Change 3684042 by Peter.Sauerbrei more logging to figure out why there is not data in the Applicaiton diretory of the archive Change 3678620 by Ben.Zeigler Minor text changes to size map Change 3678314 by Ben.Zeigler Add Make Collection With References and Audit References to Size Map to easily allow inspecting the specific set of filtered packages in other tools Change 3677875 by Ben.Zeigler Fix crash in size map from keeping reference to node after map was resized, and undo the Name->DisplayName rename as it could affect licensees Change 3676899 by Peter.Sauerbrei narrowed down to the plist data, trying to figure out if it is missing or not Change 3676570 by Peter.Sauerbrei more logging to track down the archive error Change 3676293 by Peter.Sauerbrei fix for compile failure on IOS Change 3676172 by Peter.Sauerbrei potential fix for missing icons in the ipa when run through the build machines Change 3673544 by Ben.Zeigler Sort AllChunksInfo alphabetically so the order is consistent accross build and platforms to facillitate diffing Change 3671597 by Peter.Sauerbrei Merging //UE4/Dev-Mobile/Engine/... to //WEX/Main/Engine/... Change 3670932 by Ben.Zeigler Change it so cooking with the AssetManager writes out AllChunksInfo.csv next to the DevelopmentAssetRegistry, but not the per-chunk csv files as those are not useful. Also made the size counts platform accurate Change 3670906 by Peter.Sauerbrei update WEX for building with Xcode 9 Change 3660026 by Josh.May Moved SWebBrowserView's parent window "searches" to OnPaint. There's definitely something wrong with FindWidgetWindow... Even after deferring SWebBrowserView's calls to FindWidgetWindow until first Tick, the same widget layout artifacts could occur after opening multiple SWebBrowserViews. And, as Nick pointed out in the related email thread, this approach is also more efficient. Change 3655411 by Josh.May Ensure SWebBrowserView's parent window searches are deferred until after Construct. We haven't puzzled through it yet, but calling FindWidgetWindow during Construct seems to corrupt some Slate state. Deferring this search until later gets around the issue and makes sense anyway, given the widget isn't added to the hierarchy until after Construct. Change 3655407 by John.Opila Sneaking in some stats for SpawnActor. Change 3654649 by Ben.Zeigler Refactor SizeMap and ReferenceViewer into the AssetManagerEditor plugin, and delete the old modules. Fix SizeMap crash that I temporarily added. TreeMap is initialized weirdly Change 3648912 by Ben.Zeigler First half of changes to refactor sizemap/reference viewer into the asset manager editor plugin Add GetAllContentBrowserCommandExtenders to ContentBrowserModule that allows registering commands/keybinds to extend the content browser via plugins Add GetSharedMenu/ToolbarExtensibilityManager to AssetEditorToolkit that allows extending the generic asset editor via plugin Move the code to spawn the Reference Viewer and SizeMap into the AssetManagerEditor plugin so these UIs can be tightly bound and share data. This also enables keybinds for Size Map and Audit. Remove size map from the save as dialog, it created a special modal size map window that will not work after my refactor Change 3639419 by Ben.Marsh Use DirectoryInfo instead of DirectoryReference to enumerate projects. Tracking down UHT compile failures on Mac. Change 3638619 by David.Nikdel AsyncLoading: Suggested change by Gil to add lock prior to changing LoadPhase to WaitingForHeader (presumably to make FArchiveAsync2::StartReadingHeader's assumption about locking true) Change 3633562 by Chris.Babcock Update Android virtual keyboard support Change 3630564 by Peter.Sauerbrei fix for the manifest stage problem Change 3629577 by Chris.Babcock Fix merge errors in GameActivity.java Change 3629154 by David.Nikdel Disable debug device output in shipping builds (even if logs are enabled) Change 3626542 by John.Opila Back out changelist 3603452 Undoing the OpenGL load changes as the initial load time was just too damn high! Change 3620472 by David.Nikdel Fix from Nick to fix a BP that crashes on Compile Change 3618090 by Josh.May Reset inertial scrolling for SScrollboxes and STableView-based Slate widgets when scrolling to specific scroll offsets. Change 3613980 by Chris.Babcock Fix issue with Android password keyboard input Change 3603825 by John.Opila Shader change doesn't seem to like standalone PC. Change 3603452 by John.Opila Moving openGL shader compilation into loading instead of at the last minute. Change 3593008 by David.Nikdel Merging CL 3504471 from //Fortnite/Dev-Cinematics/Engine/... to //WEX/Main/Engine/... ---------------------------------------- Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down ================================================================================================= THESE CHANGES TOUCH MULTIPLE PLATFORMS ================================================================================================= Change 3739931 by Ben.Zeigler changes to some asset manager code modified on WEX, and fix several FStringAssetReference->FSoftObjectPath Change 3723451 by Josh.May Exposed OnBeforePopup to UMG and Blueprint for UWebBrowser. This is triggered by the CEFBrowserHandler when attempting to open hyperlinks targeting _blank and, when not handled, would result in the page never loading. Added OnBeforePopup handling for the HTMLNewsWidget, ensuring the URLs are opened in an external browser. Change 3711256 by Dmitriy.Dyomin Fixed: Friend list invalidation panel relative transform caching issues Also fixed issues with and set slate.cacherenderdata=0 for better batching Change 3698695 by Josh.May Made the UMG default font overridable via config, allowing us to replace it with a game-scope localized Font asset. If there's a better place for this mechanism/accessor to live, please let me know. Added a new 'Default' font that replicates '/Engine/EngineFonts/Roboto'. This also has a localized Font asset variant for zh-Hans. Change 3676085 by Josh.May Implemented MulticastBroadcastReceiver, a BroadcastReceiver capable of "multicasting" intents to other receivers. AppsFlyer defines a similar MultiInstallBroadcastReceiver class specific to the INSTALL_REFERRER intent, but it MUST be the very first one defined (cannot be guaranteed in our build pipeline AFAIK). Added MulticastBroadcastReceiver (for INSTALL_REFERRER) to the AndroidManifest generation logic, allowing BOTH Adjust and AppsFlyer to receive the intent. Added dev channel support for AndroidAppsFlyer, enabled conditionally based on shipping/distribution and whether or not a valid AppsFlyerDevChannel name is specified. For WEX, our dev channel is WEX_Dev. Fixed AppsFlyer_EventAttribute's Java class lookups and constructor signature. Change 3670860 by Ben.Zeigler First version of improvements to tools to analyze chunks Size Map and Reference Viewer now support reading cooked asset data and displaying chunks. Changing the platform dropdown in the Asset Audit window switches the other windows as well Asset Audit window now has "Add Chunks" button, and selecting AllTypes in the Primary Asset drop down will add all primary assets Size Map now shows Disk Size by default, and supports a right click context menu Significant UI improvements to all 3 tools, including keybind support Split Manage references into Hard and Soft, where Hard are set explicitly and soft are inherited. This allows determining why an asset was included in a chunk/primary asset When the AssetManager builds management information for the audit browser/cooker, it now precomputes a chunk mapping for relevant assets. PackageChunkType is used to refer to these virtual primary assets Add callback to content browser delegates to handle adding arbitrary FAssetData to an asset view, used to show chunks Several changes to the ITreeMap UI used by size map Change 3670290 by Josh.May Added AppleAppID configs for AppsFlyer. Added AdSupport and iAd frameworks for IOSAppsFlyer. According to the AppsFlyer documentation, these are required for IDFA and Apple Search Ads tracking. Change 3643531 by Peter.Sauerbrei fix for save game location and certain data backed up to the cloud when it shouldn't Change 3629303 by Ben.Zeigler Merge fix for shared ptr corruption in async loading thread from Main, and enable asnyc loading thread for WEX Copy of CL #3623261 and 3625806 Change 3629219 by Peter.Sauerbrei Merging using WEX_Main_to_UE4_WEX_Staging bringing over the files that Stan didn't have access to Change 3629063 by Stanley.Hayes Engine Merge: Merging using WEX_Main_to_UE4_WEX_Staging(flipped) Change 3618988 by Josh.May Reimplemented DevicePerformanceBucket-based WorldMap class selection to account for the WorldMap actor being pre-serialized into the UMAP. On a related note, ChildActorComponents marked as "editor only" now mark their spawned Actors as Transient to prevent them from getting serialized at cook-time. Change 3597981 by Josh.May Converted WExpCampaignDefinition's RegionDefinition refs back to hard references and, to compensate, converted WExpZoneDefinition's ZoneBoss refs to soft references. This moves the RegionDefinitions and ZoneDefinitions from chunk 2 to chunk 1 without pulling in assets for the ZoneBosses. This also allows us to grab the ZoneBoss refs during UWExpAssetManager::GetMainMenuAssetList. Reworked UWExpAssetManager::GetMainMenuAssetList and UWExpAssetManager::GetLevelAssetList to build more "complete" asset lists by expanding lists of PrimaryAssetIds. Tweaked the WorldMap's ZoneBoss spawning to account for the switch to AssetPtrs. Change 3581214 by Josh.Markiewicz added cookie deletion for Google on logout [CL 3750870 by Stanley Hayes in Main branch]
2017-11-10 17:20:53 -05:00
/** Minimize size of a tree node that will be drawn at all, below this size it is invisible */
float MinimumVisibleNodeSize;
/** Default constructor for FTreeMapOptions that initializes good defaults */
FTreeMapOptions()
: DisplayWidth( 1.0f ),
DisplayHeight( 1.0f ),
TreeMapType( ETreeMapType::Standard ),
NameFont( FCoreStyle::Get().GetFontStyle( TEXT( "NormalText" ) ) ),
Name2Font( FCoreStyle::Get().GetFontStyle( TEXT( "NormalText" ) ) ),
CenterTextFont( FCoreStyle::Get().GetFontStyle( TEXT( "NormalText" ) ) ),
FontSizeChangeBasedOnDepth( 1 ),
TopLevelContainerOuterPadding( 0.0f ),
NestedContainerOuterPadding( 0.0f ),
ContainerInnerPadding( 0.0f ),
Copying WEX-Staging @ (WEX/Main @ 3740665) to //UE4/Main #lockdown Nick.Penwarden #rb none Copying //UE4/WEX-Staging to //UE4/Dev-Main (Source: //WEX/Main/Engine @ 3740665) #lockdown Nick.Penwarden Change 3739326 by Ben.Zeigler Change iteration order of depends nodes so it lists hard management references before soft management references, this is better for the UI when lots of references exist Update text for loading custom asset registry bin to be clearer Change 3739000 by John.Opila Caching optimization for text widget desired size. Change 3713551 by David.Nikdel Allow Set Properties to recognize Json array values as importable. Change 3712485 by Josh.May Added Pete's fix for the PLATFORM_TVOS/PLATFORM_IOS #define conflict introduced by mach-o/loader.h Change 3700174 by Chris.Babcock Fix setFilters crash on some Android devices Change 3691531 by Josh.May Fixed an intermittent crash that occurred when opening the AssetAuditBrower. AssetManagerEditorModule's CurrentRegistrySource was getting set too early, becoming invalid in the event that RegistrySourceMap is resized. Change 3688409 by Gil.Gribb Critical fix for an extremely rare race condition on async IO. Change 3687529 by josh.may Force layout recalculations for single-pass layout SScaleBoxes when their final scale is zero. This tends to occur in calls to SearchForWidgetRecursively before a SScaleBox's AllottedGeometry has been calculated. Change 3684788 by Peter.Sauerbrei fix for archive generation on the build machines Change 3684320 by john.opila Workaround for widgets disappering. Ensuring scale is never 0 so we don't get divide by zero. Change 3684042 by Peter.Sauerbrei more logging to figure out why there is not data in the Applicaiton diretory of the archive Change 3678620 by Ben.Zeigler Minor text changes to size map Change 3678314 by Ben.Zeigler Add Make Collection With References and Audit References to Size Map to easily allow inspecting the specific set of filtered packages in other tools Change 3677875 by Ben.Zeigler Fix crash in size map from keeping reference to node after map was resized, and undo the Name->DisplayName rename as it could affect licensees Change 3676899 by Peter.Sauerbrei narrowed down to the plist data, trying to figure out if it is missing or not Change 3676570 by Peter.Sauerbrei more logging to track down the archive error Change 3676293 by Peter.Sauerbrei fix for compile failure on IOS Change 3676172 by Peter.Sauerbrei potential fix for missing icons in the ipa when run through the build machines Change 3673544 by Ben.Zeigler Sort AllChunksInfo alphabetically so the order is consistent accross build and platforms to facillitate diffing Change 3671597 by Peter.Sauerbrei Merging //UE4/Dev-Mobile/Engine/... to //WEX/Main/Engine/... Change 3670932 by Ben.Zeigler Change it so cooking with the AssetManager writes out AllChunksInfo.csv next to the DevelopmentAssetRegistry, but not the per-chunk csv files as those are not useful. Also made the size counts platform accurate Change 3670906 by Peter.Sauerbrei update WEX for building with Xcode 9 Change 3660026 by Josh.May Moved SWebBrowserView's parent window "searches" to OnPaint. There's definitely something wrong with FindWidgetWindow... Even after deferring SWebBrowserView's calls to FindWidgetWindow until first Tick, the same widget layout artifacts could occur after opening multiple SWebBrowserViews. And, as Nick pointed out in the related email thread, this approach is also more efficient. Change 3655411 by Josh.May Ensure SWebBrowserView's parent window searches are deferred until after Construct. We haven't puzzled through it yet, but calling FindWidgetWindow during Construct seems to corrupt some Slate state. Deferring this search until later gets around the issue and makes sense anyway, given the widget isn't added to the hierarchy until after Construct. Change 3655407 by John.Opila Sneaking in some stats for SpawnActor. Change 3654649 by Ben.Zeigler Refactor SizeMap and ReferenceViewer into the AssetManagerEditor plugin, and delete the old modules. Fix SizeMap crash that I temporarily added. TreeMap is initialized weirdly Change 3648912 by Ben.Zeigler First half of changes to refactor sizemap/reference viewer into the asset manager editor plugin Add GetAllContentBrowserCommandExtenders to ContentBrowserModule that allows registering commands/keybinds to extend the content browser via plugins Add GetSharedMenu/ToolbarExtensibilityManager to AssetEditorToolkit that allows extending the generic asset editor via plugin Move the code to spawn the Reference Viewer and SizeMap into the AssetManagerEditor plugin so these UIs can be tightly bound and share data. This also enables keybinds for Size Map and Audit. Remove size map from the save as dialog, it created a special modal size map window that will not work after my refactor Change 3639419 by Ben.Marsh Use DirectoryInfo instead of DirectoryReference to enumerate projects. Tracking down UHT compile failures on Mac. Change 3638619 by David.Nikdel AsyncLoading: Suggested change by Gil to add lock prior to changing LoadPhase to WaitingForHeader (presumably to make FArchiveAsync2::StartReadingHeader's assumption about locking true) Change 3633562 by Chris.Babcock Update Android virtual keyboard support Change 3630564 by Peter.Sauerbrei fix for the manifest stage problem Change 3629577 by Chris.Babcock Fix merge errors in GameActivity.java Change 3629154 by David.Nikdel Disable debug device output in shipping builds (even if logs are enabled) Change 3626542 by John.Opila Back out changelist 3603452 Undoing the OpenGL load changes as the initial load time was just too damn high! Change 3620472 by David.Nikdel Fix from Nick to fix a BP that crashes on Compile Change 3618090 by Josh.May Reset inertial scrolling for SScrollboxes and STableView-based Slate widgets when scrolling to specific scroll offsets. Change 3613980 by Chris.Babcock Fix issue with Android password keyboard input Change 3603825 by John.Opila Shader change doesn't seem to like standalone PC. Change 3603452 by John.Opila Moving openGL shader compilation into loading instead of at the last minute. Change 3593008 by David.Nikdel Merging CL 3504471 from //Fortnite/Dev-Cinematics/Engine/... to //WEX/Main/Engine/... ---------------------------------------- Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down ================================================================================================= THESE CHANGES TOUCH MULTIPLE PLATFORMS ================================================================================================= Change 3739931 by Ben.Zeigler changes to some asset manager code modified on WEX, and fix several FStringAssetReference->FSoftObjectPath Change 3723451 by Josh.May Exposed OnBeforePopup to UMG and Blueprint for UWebBrowser. This is triggered by the CEFBrowserHandler when attempting to open hyperlinks targeting _blank and, when not handled, would result in the page never loading. Added OnBeforePopup handling for the HTMLNewsWidget, ensuring the URLs are opened in an external browser. Change 3711256 by Dmitriy.Dyomin Fixed: Friend list invalidation panel relative transform caching issues Also fixed issues with and set slate.cacherenderdata=0 for better batching Change 3698695 by Josh.May Made the UMG default font overridable via config, allowing us to replace it with a game-scope localized Font asset. If there's a better place for this mechanism/accessor to live, please let me know. Added a new 'Default' font that replicates '/Engine/EngineFonts/Roboto'. This also has a localized Font asset variant for zh-Hans. Change 3676085 by Josh.May Implemented MulticastBroadcastReceiver, a BroadcastReceiver capable of "multicasting" intents to other receivers. AppsFlyer defines a similar MultiInstallBroadcastReceiver class specific to the INSTALL_REFERRER intent, but it MUST be the very first one defined (cannot be guaranteed in our build pipeline AFAIK). Added MulticastBroadcastReceiver (for INSTALL_REFERRER) to the AndroidManifest generation logic, allowing BOTH Adjust and AppsFlyer to receive the intent. Added dev channel support for AndroidAppsFlyer, enabled conditionally based on shipping/distribution and whether or not a valid AppsFlyerDevChannel name is specified. For WEX, our dev channel is WEX_Dev. Fixed AppsFlyer_EventAttribute's Java class lookups and constructor signature. Change 3670860 by Ben.Zeigler First version of improvements to tools to analyze chunks Size Map and Reference Viewer now support reading cooked asset data and displaying chunks. Changing the platform dropdown in the Asset Audit window switches the other windows as well Asset Audit window now has "Add Chunks" button, and selecting AllTypes in the Primary Asset drop down will add all primary assets Size Map now shows Disk Size by default, and supports a right click context menu Significant UI improvements to all 3 tools, including keybind support Split Manage references into Hard and Soft, where Hard are set explicitly and soft are inherited. This allows determining why an asset was included in a chunk/primary asset When the AssetManager builds management information for the audit browser/cooker, it now precomputes a chunk mapping for relevant assets. PackageChunkType is used to refer to these virtual primary assets Add callback to content browser delegates to handle adding arbitrary FAssetData to an asset view, used to show chunks Several changes to the ITreeMap UI used by size map Change 3670290 by Josh.May Added AppleAppID configs for AppsFlyer. Added AdSupport and iAd frameworks for IOSAppsFlyer. According to the AppsFlyer documentation, these are required for IDFA and Apple Search Ads tracking. Change 3643531 by Peter.Sauerbrei fix for save game location and certain data backed up to the cloud when it shouldn't Change 3629303 by Ben.Zeigler Merge fix for shared ptr corruption in async loading thread from Main, and enable asnyc loading thread for WEX Copy of CL #3623261 and 3625806 Change 3629219 by Peter.Sauerbrei Merging using WEX_Main_to_UE4_WEX_Staging bringing over the files that Stan didn't have access to Change 3629063 by Stanley.Hayes Engine Merge: Merging using WEX_Main_to_UE4_WEX_Staging(flipped) Change 3618988 by Josh.May Reimplemented DevicePerformanceBucket-based WorldMap class selection to account for the WorldMap actor being pre-serialized into the UMAP. On a related note, ChildActorComponents marked as "editor only" now mark their spawned Actors as Transient to prevent them from getting serialized at cook-time. Change 3597981 by Josh.May Converted WExpCampaignDefinition's RegionDefinition refs back to hard references and, to compensate, converted WExpZoneDefinition's ZoneBoss refs to soft references. This moves the RegionDefinitions and ZoneDefinitions from chunk 2 to chunk 1 without pulling in assets for the ZoneBosses. This also allows us to grab the ZoneBoss refs during UWExpAssetManager::GetMainMenuAssetList. Reworked UWExpAssetManager::GetMainMenuAssetList and UWExpAssetManager::GetLevelAssetList to build more "complete" asset lists by expanding lists of PrimaryAssetIds. Tweaked the WorldMap's ZoneBoss spawning to account for the switch to AssetPtrs. Change 3581214 by Josh.Markiewicz added cookie deletion for Google on logout [CL 3750870 by Stanley Hayes in Main branch]
2017-11-10 17:20:53 -05:00
MinimumInteractiveNodeSize( 0.0f ),
MinimumVisibleNodeSize( 0.0f )
{
NameFont.Size = 12;
Name2Font.Size = 8;
CenterTextFont.Size = 24;
}
};
/**
* Visual ID for a node, generated by the tree map system
*/
struct FTreeMapNodeVisualInfo
{
/** Pointer back to the node data this visual was originally created from */
class FTreeMapNodeData* NodeData;
/** Position for this node */
FVector2D Position;
/** Size for this node */
FVector2D Size;
/** Node color */
FLinearColor Color;
/** Node fonts */
FSlateFontInfo NameFont;
FSlateFontInfo Name2Font;
FSlateFontInfo CenterTextFont;
/** True if the node is 'interactive'. That is, we have space for the node's title and for it to be clicked on. */
bool bIsInteractive;
};
/**
* Public tree map interface
*/
class ITreeMap
{
public:
/**
* Gets the visuals for this tree map. Be careful not to destroy the original tree while still using the visual objects, otherwise
* the back pointers to the original tree nodes will be trash! Visuals are ordered such that nested visuals appear later in the list
* than their parents (so they can be drawn back to front, etc.)
*
* @return List of visuals
*/
virtual TArray<FTreeMapNodeVisualInfo> GetVisuals() = 0;
/**
* Static: Creates a tree map object, given tree node source data
*
* @param Options Configuration options for this tree map
* @param RootNodeData The source data for the root of the tree
*
* @return The newly-created ITreeMap instance
*/
static TSharedRef<ITreeMap> CreateTreeMap( const FTreeMapOptions& Options, const FTreeMapNodeDataRef& RootNodeData );
/**
* Parses an OPML XML document and converts the outliner content to tree map node data
*
* @param OPMLFilePath Path to the OPML file on disk
* @param OutErrorMessage Error message string in the case that something went wrong
*
* @return The root tree node for the parsed data, or an invalid pointer if something went wrong
*/
static FTreeMapNodeDataPtr ParseOPMLToTreeMapData( const FString& OPMLFilePath, FString& OutErrorMessage );
/** Virtual destructor */
virtual ~ITreeMap() {}
};