Files
UnrealEngineUWP/Engine/Source/Editor/ReferenceViewer/Private/ReferenceViewer.cpp
Mike Fricker 403a84fcfa Asset Size Mapper tool
- New "Size Map" feature that shows the resource size for selected assets in Content Browser
- Select assets in Content Browser, right click and choose "Size Map..." to show sizes for those assets
- Select actors and press Alt+Shift+M to show sizes of assets used by those actors
- Select assets in Reference Viewer, right click and choose "Size Map..." to show sizes for those assets
- Also added a new "Tree Map" general purpose Slate widget (STreeMap)

[CL 2521609 by Mike Fricker in Main branch]
2015-04-22 15:58:21 -04:00

80 lines
2.3 KiB
C++

// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
#include "ReferenceViewerPrivatePCH.h"
#include "ReferenceViewer.h"
#include "EdGraphUtilities.h"
#include "SDockTab.h"
#define LOCTEXT_NAMESPACE "ReferenceViewer"
//DEFINE_LOG_CATEGORY(LogReferenceViewer);
class FGraphPanelNodeFactory_ReferenceViewer : public FGraphPanelNodeFactory
{
virtual TSharedPtr<class SGraphNode> CreateNode(UEdGraphNode* Node) const override
{
if ( UEdGraphNode_Reference* DependencyNode = Cast<UEdGraphNode_Reference>(Node) )
{
return SNew(SReferenceNode, DependencyNode);
}
return NULL;
}
};
class FReferenceViewerModule : public IReferenceViewerModule
{
public:
FReferenceViewerModule()
: ReferenceViewerTabId("ReferenceViewer")
{
}
virtual void StartupModule() override
{
GraphPanelNodeFactory = MakeShareable( new FGraphPanelNodeFactory_ReferenceViewer() );
FEdGraphUtilities::RegisterVisualNodeFactory(GraphPanelNodeFactory);
FGlobalTabmanager::Get()->RegisterNomadTabSpawner(ReferenceViewerTabId, FOnSpawnTab::CreateRaw( this, &FReferenceViewerModule::SpawnReferenceViewerTab ) )
.SetDisplayName( LOCTEXT("ReferenceViewerTitle", "Reference Viewer") )
.SetMenuType( ETabSpawnerMenuType::Hidden );
}
virtual void ShutdownModule() override
{
if ( GraphPanelNodeFactory.IsValid() )
{
FEdGraphUtilities::UnregisterVisualNodeFactory(GraphPanelNodeFactory);
GraphPanelNodeFactory.Reset();
}
FGlobalTabmanager::Get()->UnregisterNomadTabSpawner(ReferenceViewerTabId);
}
virtual void InvokeReferenceViewerTab(const TArray<FName>& GraphRootPackageNames) override
{
TSharedRef<SDockTab> NewTab = FGlobalTabmanager::Get()->InvokeTab( ReferenceViewerTabId );
TSharedRef<SReferenceViewer> ReferenceViewer = StaticCastSharedRef<SReferenceViewer>( NewTab->GetContent() );
ReferenceViewer->SetGraphRootPackageNames(GraphRootPackageNames);
}
private:
TSharedRef<SDockTab> SpawnReferenceViewerTab( const FSpawnTabArgs& SpawnTabArgs )
{
TSharedRef<SDockTab> NewTab = SNew(SDockTab)
.TabRole(ETabRole::NomadTab);
NewTab->SetContent( SNew(SReferenceViewer) );
return NewTab;
}
private:
TSharedPtr<FGraphPanelNodeFactory> GraphPanelNodeFactory;
FName ReferenceViewerTabId;
};
IMPLEMENT_MODULE( FReferenceViewerModule, ReferenceViewer )
#undef LOCTEXT_NAMESPACE