102 lines
2.6 KiB
C++
102 lines
2.6 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "SourceControlViewportUtils.h"
|
|
#include "Settings/EditorStyleSettings.h"
|
|
#include "LevelEditorViewport.h"
|
|
|
|
namespace SourceControlViewportUtils
|
|
{
|
|
|
|
bool GetOverlaySetting(FViewportClient* ViewportClient, ESourceControlStatus Status)
|
|
{
|
|
FString CVarName;
|
|
switch (Status)
|
|
{
|
|
case ESourceControlStatus::CheckedOutByOtherUser:
|
|
CVarName = TEXT("RevisionControl.Overlays.CheckedOutByOtherUser.Enable");
|
|
break;
|
|
case ESourceControlStatus::NotAtHeadRevision:
|
|
CVarName = TEXT("RevisionControl.Overlays.NotAtHeadRevision.Enable");
|
|
break;
|
|
case ESourceControlStatus::CheckedOut:
|
|
CVarName = TEXT("RevisionControl.Overlays.CheckedOut.Enable");
|
|
break;
|
|
case ESourceControlStatus::OpenForAdd:
|
|
CVarName = TEXT("RevisionControl.Overlays.OpenForAdd.Enable");
|
|
break;
|
|
default:
|
|
checkNoEntry();
|
|
break;
|
|
}
|
|
|
|
if (IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(*CVarName); ensure(CVar))
|
|
{
|
|
return CVar->GetBool();
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
void SetOverlaySetting(FViewportClient* ViewportClient, ESourceControlStatus Status, bool bEnabled)
|
|
{
|
|
FString CVarName;
|
|
switch (Status)
|
|
{
|
|
case ESourceControlStatus::CheckedOutByOtherUser:
|
|
CVarName = TEXT("RevisionControl.Overlays.CheckedOutByOtherUser.Enable");
|
|
break;
|
|
case ESourceControlStatus::NotAtHeadRevision:
|
|
CVarName = TEXT("RevisionControl.Overlays.NotAtHeadRevision.Enable");
|
|
break;
|
|
case ESourceControlStatus::CheckedOut:
|
|
CVarName = TEXT("RevisionControl.Overlays.CheckedOut.Enable");
|
|
break;
|
|
case ESourceControlStatus::OpenForAdd:
|
|
CVarName = TEXT("RevisionControl.Overlays.OpenForAdd.Enable");
|
|
break;
|
|
default:
|
|
checkNoEntry();
|
|
break;
|
|
}
|
|
|
|
if (IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(*CVarName); ensure(CVar))
|
|
{
|
|
CVar->Set(bEnabled);
|
|
}
|
|
}
|
|
|
|
bool GetFeedbackEnabled(FViewportClient* ViewportClient, ESourceControlStatus Status)
|
|
{
|
|
return GetOverlaySetting(ViewportClient, Status);
|
|
}
|
|
|
|
void SetFeedbackEnabled(FViewportClient* ViewportClient, ESourceControlStatus Status, bool bEnabled)
|
|
{
|
|
SetOverlaySetting(ViewportClient, Status, bEnabled);
|
|
|
|
GEditor->RedrawLevelEditingViewports();
|
|
}
|
|
|
|
uint8 GetFeedbackOpacity(FViewportClient* ViewportClient)
|
|
{
|
|
uint8 Opacity = 0;
|
|
|
|
if (IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("RevisionControl.Overlays.Alpha")); ensure(CVar))
|
|
{
|
|
Opacity = CVar->GetInt();
|
|
}
|
|
|
|
return Opacity;
|
|
}
|
|
|
|
void SetFeedbackOpacity(FViewportClient* ViewportClient, uint8 Opacity)
|
|
{
|
|
if (IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("RevisionControl.Overlays.Alpha")); ensure(CVar))
|
|
{
|
|
CVar->Set(Opacity);
|
|
}
|
|
|
|
GEditor->RedrawLevelEditingViewports();
|
|
}
|
|
|
|
} |