Files
UnrealEngineUWP/Engine/Source/Editor/DerivedDataEditor/Private/DerivedDataEditorModule.cpp

124 lines
4.0 KiB
C++
Raw Normal View History

// Copyright Epic Games, Inc. All Rights Reserved.
#include "DerivedDataEditorModule.h"
#include "DerivedDataCacheNotifications.h"
#include "DerivedDataInformation.h"
#include "Experimental/ZenServerInterface.h"
#include "Framework/Application/SlateApplication.h"
#include "Modules/ModuleManager.h"
#include "SDerivedDataDialogs.h"
#include "SDerivedDataStatusBar.h"
#include "Styling/AppStyle.h"
#include "Widgets/DeclarativeSyntaxSupport.h"
#include "Widgets/Docking/SDockTab.h"
#include "WorkspaceMenuStructure.h"
#include "WorkspaceMenuStructureModule.h"
#define LOCTEXT_NAMESPACE "DerivedDataEditor"
IMPLEMENT_MODULE(FDerivedDataEditorModule, DerivedDataEditor );
static const FName DerivedDataResourceUsageTabName = FName(TEXT("DerivedDataResourceUsage"));
static const FName DerivedDataCacheStatisticsTabName = FName(TEXT("DerivedDataCacheStatistics"));
void FDerivedDataEditorModule::StartupModule()
{
const FSlateIcon ResourceUsageIcon(FAppStyle::GetAppStyleSetName(), "DerivedData.ResourceUsage");
FGlobalTabmanager::Get()->RegisterNomadTabSpawner(DerivedDataResourceUsageTabName, FOnSpawnTab::CreateRaw(this, &FDerivedDataEditorModule::CreateResourceUsageTab))
.SetDisplayName(LOCTEXT("DerivedDataResourceUsageTabTitle", "Resource Usage"))
.SetTooltipText(LOCTEXT("DerivedDataResourceUsageTabToolTipText", "Derived Data Resource Usage"))
.SetGroup(WorkspaceMenu::GetMenuStructure().GetToolsCategory())
.SetIcon(ResourceUsageIcon);
const FSlateIcon CacheStatisticsIcon(FAppStyle::GetAppStyleSetName(), "DerivedData.Cache.Statistics");
FGlobalTabmanager::Get()->RegisterNomadTabSpawner(DerivedDataCacheStatisticsTabName, FOnSpawnTab::CreateRaw(this, &FDerivedDataEditorModule::CreateCacheStatisticsTab))
.SetDisplayName(LOCTEXT("DerivedDataCacheStatisticsTabTitle", "Cache Statistics"))
.SetTooltipText(LOCTEXT("DerivedDataCacheStatisticsTabToolTipText", "Derived Data Cache Statistics"))
.SetGroup(WorkspaceMenu::GetMenuStructure().GetToolsCategory())
.SetIcon(CacheStatisticsIcon);
#if WITH_RELOAD
// This code attempts to relaunch the tabs when you reload this module
if (IsReloadActive() && FSlateApplication::IsInitialized())
{
ShowCacheStatisticsTab();
ShowResourceUsageTab();
}
#endif // WITH_RELOAD
FDerivedDataStatusBarMenuCommands::Register();
DerivedDataCacheNotifications.Reset(new FDerivedDataCacheNotifications);
}
void FDerivedDataEditorModule::ShutdownModule()
{
if (FSlateApplication::IsInitialized())
{
FGlobalTabmanager::Get()->UnregisterNomadTabSpawner(DerivedDataResourceUsageTabName);
if (ResourceUsageTab.IsValid())
{
ResourceUsageTab.Pin()->RequestCloseTab();
}
FGlobalTabmanager::Get()->UnregisterNomadTabSpawner(DerivedDataCacheStatisticsTabName);
if (CacheStatisticsTab.IsValid())
{
CacheStatisticsTab.Pin()->RequestCloseTab();
}
}
FDerivedDataStatusBarMenuCommands::Unregister();
}
TSharedRef<SWidget> FDerivedDataEditorModule::CreateStatusBarWidget()
{
return SNew(SDerivedDataStatusBarWidget);
}
TSharedPtr<SWidget> FDerivedDataEditorModule::CreateResourceUsageDialog()
{
return SNew(SDerivedDataResourceUsageDialog);
}
TSharedRef<SDockTab> FDerivedDataEditorModule::CreateResourceUsageTab(const FSpawnTabArgs& Args)
{
return SAssignNew(ResourceUsageTab, SDockTab)
.TabRole(ETabRole::NomadTab)
[
CreateResourceUsageDialog().ToSharedRef()
];
}
void FDerivedDataEditorModule::ShowResourceUsageTab()
{
FGlobalTabmanager::Get()->TryInvokeTab(FTabId(DerivedDataResourceUsageTabName));
}
TSharedPtr<SWidget> FDerivedDataEditorModule::CreateCacheStatisticsDialog()
{
return SNew(SDerivedDataCacheStatisticsDialog);
}
TSharedRef<SDockTab> FDerivedDataEditorModule::CreateCacheStatisticsTab(const FSpawnTabArgs& Args)
{
return SAssignNew(CacheStatisticsTab, SDockTab)
.TabRole(ETabRole::NomadTab)
[
CreateCacheStatisticsDialog().ToSharedRef()
];
}
void FDerivedDataEditorModule::ShowCacheStatisticsTab()
{
FGlobalTabmanager::Get()->TryInvokeTab(FTabId(DerivedDataCacheStatisticsTabName));
}
#undef LOCTEXT_NAMESPACE