Files
UnrealEngineUWP/Engine/Source/Editor/LocalizationDashboard/Private/SLocalizationTargetStatusButton.cpp
Lauren Barnes 6248f8d412 Replacing legacy EditorStyle calls with AppStyle
#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]
2022-05-09 13:12:28 -04:00

103 lines
2.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "SLocalizationTargetStatusButton.h"
#include "HAL/PlatformProcess.h"
#include "Widgets/Images/SImage.h"
#include "Styling/AppStyle.h"
#include "LocalizationTargetTypes.h"
#include "LocalizationConfigurationScript.h"
#define LOCTEXT_NAMESPACE "LocalizationTargetStatusButton"
void SLocalizationTargetStatusButton::Construct(const FArguments& InArgs, ULocalizationTarget& InTarget)
{
Target = &InTarget;
SButton::Construct(
SButton::FArguments()
.ButtonStyle( FAppStyle::Get(), TEXT("HoverHintOnly") )
.OnClicked(this, &SLocalizationTargetStatusButton::OnClicked)
);
ChildSlot
.HAlign(HAlign_Center)
.VAlign(VAlign_Center)
[
SNew(SImage)
.Image(this, &SLocalizationTargetStatusButton::GetImageBrush)
.ColorAndOpacity(this, &SLocalizationTargetStatusButton::GetColorAndOpacity)
.ToolTipText(this, &SLocalizationTargetStatusButton::GetToolTipText)
];
}
const FSlateBrush* SLocalizationTargetStatusButton::GetImageBrush() const
{
switch (Target->Settings.ConflictStatus)
{
default:
case ELocalizationTargetConflictStatus::Unknown:
return FAppStyle::GetBrush("Icons.Warning");
break;
case ELocalizationTargetConflictStatus::Clear:
return FAppStyle::GetBrush("Symbols.Check");
break;
case ELocalizationTargetConflictStatus::ConflictsPresent:
return FAppStyle::GetBrush("Symbols.X");
break;
}
}
FSlateColor SLocalizationTargetStatusButton::GetColorAndOpacity() const
{
switch (Target->Settings.ConflictStatus)
{
default:
case ELocalizationTargetConflictStatus::Unknown:
return FLinearColor::White;
break;
case ELocalizationTargetConflictStatus::Clear:
return FLinearColor::Green;
break;
case ELocalizationTargetConflictStatus::ConflictsPresent:
return FLinearColor::Red;
break;
}
}
FText SLocalizationTargetStatusButton::GetToolTipText() const
{
switch (Target->Settings.ConflictStatus)
{
default:
case ELocalizationTargetConflictStatus::Unknown:
return LOCTEXT("StatusToolTip_Unknown", "Conflict report file not detected. Perform a gather to generate a conflict report file.");
break;
case ELocalizationTargetConflictStatus::Clear:
return LOCTEXT("StatusToolTip_Clear", "No conflicts detected.");
break;
case ELocalizationTargetConflictStatus::ConflictsPresent:
return LOCTEXT("StatusToolTip_ConflictsPresent", "Conflicts detected. Click to open the conflict report.");
break;
}
}
FReply SLocalizationTargetStatusButton::OnClicked()
{
switch (Target->Settings.ConflictStatus)
{
case ELocalizationTargetConflictStatus::Unknown:
// Do nothing.
break;
case ELocalizationTargetConflictStatus::Clear:
// Do nothing.
break;
case ELocalizationTargetConflictStatus::ConflictsPresent:
FPlatformProcess::LaunchFileInDefaultExternalApplication(*FPaths::ConvertRelativePathToFull(LocalizationConfigurationScript::GetConflictReportPath(Target)), nullptr, ELaunchVerb::Open);
break;
}
return FReply::Handled();
}
#undef LOCTEXT_NAMESPACE