2024-01-31 08:31:41 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
|
|
#include "SourceControlViewportModule.h"
|
2024-03-29 07:24:47 -04:00
|
|
|
#include "SourceControlViewportMenu.h"
|
2024-02-01 04:25:05 -05:00
|
|
|
#include "SourceControlViewportToolTips.h"
|
2024-03-29 07:24:47 -04:00
|
|
|
#include "HAL/IConsoleManager.h"
|
|
|
|
|
|
|
|
|
|
TAutoConsoleVariable<bool> CVarSourceControlEnableViewportStatus(
|
|
|
|
|
TEXT("SourceControl.ViewportStatus.Enable"),
|
|
|
|
|
false,
|
|
|
|
|
TEXT("Enables source control viewport status features."),
|
|
|
|
|
ECVF_Default);
|
2024-01-31 08:31:41 -05:00
|
|
|
|
|
|
|
|
void FSourceControlViewportModule::StartupModule()
|
|
|
|
|
{
|
2024-03-29 07:24:47 -04:00
|
|
|
ViewportMenu = MakeShared<FSourceControlViewportMenu>();
|
|
|
|
|
ViewportMenu->Init();
|
2024-02-01 04:25:05 -05:00
|
|
|
ViewportToolTips = MakeShared<FSourceControlViewportToolTips>();
|
|
|
|
|
ViewportToolTips->Init();
|
2024-03-29 07:24:47 -04:00
|
|
|
|
|
|
|
|
if (IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("SourceControl.ViewportStatus.Enable")); ensure(CVar))
|
|
|
|
|
{
|
|
|
|
|
CVar->OnChangedDelegate().AddRaw(this, &FSourceControlViewportModule::HandleCVarChanged);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("TEDS.RevisionControl.AutoPopulateState")); ensure(CVar))
|
|
|
|
|
{
|
|
|
|
|
CVar->OnChangedDelegate().AddRaw(this, &FSourceControlViewportModule::HandleCVarChanged);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UpdateSettings();
|
2024-01-31 08:31:41 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FSourceControlViewportModule::ShutdownModule()
|
|
|
|
|
{
|
2024-03-29 07:24:47 -04:00
|
|
|
if (IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("TEDS.RevisionControl.AutoPopulateState")); ensure(CVar))
|
|
|
|
|
{
|
|
|
|
|
CVar->OnChangedDelegate().RemoveAll(this);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("SourceControl.ViewportStatus.Enable")); ensure(CVar))
|
|
|
|
|
{
|
|
|
|
|
CVar->OnChangedDelegate().RemoveAll(this);
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-01 04:25:05 -05:00
|
|
|
ViewportToolTips.Reset();
|
2024-03-29 07:24:47 -04:00
|
|
|
ViewportMenu.Reset();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FSourceControlViewportModule::HandleCVarChanged(IConsoleVariable* Variable)
|
|
|
|
|
{
|
|
|
|
|
UpdateSettings();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FSourceControlViewportModule::UpdateSettings()
|
|
|
|
|
{
|
|
|
|
|
// Are both CVar's enabled?
|
|
|
|
|
bool bEnabled = true;
|
|
|
|
|
|
|
|
|
|
if (IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("SourceControl.ViewportStatus.Enable")); ensure(CVar))
|
|
|
|
|
{
|
|
|
|
|
bEnabled &= CVar->GetBool();
|
|
|
|
|
}
|
|
|
|
|
if (IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("TEDS.RevisionControl.AutoPopulateState")); ensure(CVar))
|
|
|
|
|
{
|
|
|
|
|
bEnabled &= CVar->GetBool();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Propagate resulting value.
|
|
|
|
|
ViewportMenu->SetEnabled(bEnabled);
|
|
|
|
|
ViewportToolTips->SetEnabled(bEnabled);
|
|
|
|
|
|
2024-07-31 13:31:53 -04:00
|
|
|
if (IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("RevisionControl.Overlays.Enable")); ensure(CVar))
|
2024-03-29 07:24:47 -04:00
|
|
|
{
|
|
|
|
|
CVar->Set(bEnabled);
|
|
|
|
|
}
|
2024-01-31 08:31:41 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
IMPLEMENT_MODULE( FSourceControlViewportModule, SourceControlViewport );
|