You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
#preflight 6272a74d2f6d177be3c6fdda #rb Matt.Kuhlenschmidt #ROBOMERGE-OWNER: Lauren.Barnes #ROBOMERGE-AUTHOR: lauren.barnes #ROBOMERGE-SOURCE: CL 20057269 via CL 20070159 via CL 20072035 via CL 20072203 #ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690) #ROBOMERGE-CONFLICT from-shelf [CL 20105363 by Lauren Barnes in ue5-main branch]
204 lines
6.5 KiB
C++
204 lines
6.5 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "DerivedDataEditorModule.h"
|
|
#include "DerivedDataInformation.h"
|
|
#include "SDerivedDataStatusBar.h"
|
|
#include "SDerivedDataDialogs.h"
|
|
#include "SDerivedDataCacheSettings.h"
|
|
#include "SVirtualAssetsStatistics.h"
|
|
#include "ZenServerInterface.h"
|
|
#include "DerivedDataCacheNotifications.h"
|
|
#include "Modules/ModuleManager.h"
|
|
#include "Framework/Application/SlateApplication.h"
|
|
#include "Widgets/DeclarativeSyntaxSupport.h"
|
|
#include "Widgets/Docking/SDockTab.h"
|
|
#include "Styling/AppStyle.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"));
|
|
static const FName VirtualAssetsStatisticsTabName = FName(TEXT("VirtualAssetsStatistics"));
|
|
|
|
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);
|
|
|
|
const FSlateIcon VirtaulAssetsStatisticsIcon(FAppStyle::GetAppStyleSetName(), "DerivedData.Cache.Statistics");
|
|
|
|
FGlobalTabmanager::Get()->RegisterNomadTabSpawner(VirtualAssetsStatisticsTabName, FOnSpawnTab::CreateRaw(this, &FDerivedDataEditorModule::CreateVirtualAssetsStatisticsTab))
|
|
.SetDisplayName(LOCTEXT("VirtualAssetsStatisticsTabTitle", "Virtual Assets"))
|
|
.SetTooltipText(LOCTEXT("VirtualAssetsStatisticsTabToolTipText", "Virtual Assets Statistics"))
|
|
.SetGroup(WorkspaceMenu::GetMenuStructure().GetDeveloperToolsAuditCategory())
|
|
.SetIcon(CacheStatisticsIcon);
|
|
|
|
|
|
#if WITH_RELOAD
|
|
// This code attempts to relaunch the tabs when you reload this module
|
|
if (IsReloadActive() && FSlateApplication::IsInitialized())
|
|
{
|
|
ShowCacheStatisticsTab();
|
|
ShowVirtualAssetsStatisticsTab();
|
|
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();
|
|
}
|
|
|
|
FGlobalTabmanager::Get()->UnregisterNomadTabSpawner(VirtualAssetsStatisticsTabName);
|
|
|
|
if (VirtualAssetsStatisticsTab.IsValid())
|
|
{
|
|
VirtualAssetsStatisticsTab.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));
|
|
}
|
|
|
|
|
|
TSharedPtr<SWidget> FDerivedDataEditorModule::CreateVirtualAssetsStatisticsDialog()
|
|
{
|
|
return SNew(SVirtualAssetsStatisticsDialog);
|
|
}
|
|
|
|
TSharedRef<SDockTab> FDerivedDataEditorModule::CreateVirtualAssetsStatisticsTab(const FSpawnTabArgs& Args)
|
|
{
|
|
return SAssignNew(ResourceUsageTab, SDockTab)
|
|
.TabRole(ETabRole::NomadTab)
|
|
[
|
|
CreateVirtualAssetsStatisticsDialog().ToSharedRef()
|
|
];
|
|
}
|
|
|
|
void FDerivedDataEditorModule::ShowVirtualAssetsStatisticsTab()
|
|
{
|
|
FGlobalTabmanager::Get()->TryInvokeTab(FTabId(VirtualAssetsStatisticsTabName));
|
|
}
|
|
|
|
void FDerivedDataEditorModule::ShowSettingsDialog()
|
|
{
|
|
if (SettingsWindow.IsValid())
|
|
{
|
|
SettingsWindow->BringToFront();
|
|
}
|
|
else
|
|
{
|
|
// Create the window
|
|
SettingsWindow = SNew(SWindow)
|
|
.Title(LOCTEXT("DerrivedDataCacheSettingsWindowTitle", "Cache Settings"))
|
|
.HasCloseButton(true)
|
|
.SupportsMaximize(false)
|
|
.SupportsMinimize(true)
|
|
.SizingRule(ESizingRule::Autosized);
|
|
|
|
// Set the closed callback
|
|
SettingsWindow->SetOnWindowClosed(FOnWindowClosed::CreateRaw(this,&FDerivedDataEditorModule::OnSettingsDialogClosed));
|
|
|
|
// Setup the content for the created window.
|
|
SettingsWindow->SetContent(SAssignNew(SettingsDialog, SDerivedDataCacheSettingsDialog));
|
|
|
|
TSharedPtr<SWindow> RootWindow = FGlobalTabmanager::Get()->GetRootWindow();
|
|
if (RootWindow.IsValid())
|
|
{
|
|
FSlateApplication::Get().AddWindowAsNativeChild(SettingsWindow.ToSharedRef(), RootWindow.ToSharedRef());
|
|
}
|
|
else
|
|
{
|
|
FSlateApplication::Get().AddWindow(SettingsWindow.ToSharedRef());
|
|
}
|
|
}
|
|
}
|
|
|
|
void FDerivedDataEditorModule::OnSettingsDialogClosed(const TSharedRef<SWindow>& InWindow)
|
|
{
|
|
SettingsWindow = nullptr;
|
|
SettingsDialog = nullptr;
|
|
}
|
|
|
|
#undef LOCTEXT_NAMESPACE
|