Files
UnrealEngine/Engine/Source/Developer/AutomationWindow/Private/SAutomationWindowCommandBar.cpp
2025-05-18 13:04:45 +08:00

85 lines
2.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "SAutomationWindowCommandBar.h"
#include "Widgets/SBoxPanel.h"
#include "Widgets/Input/SButton.h"
#include "SAutomationExportMenu.h"
#define LOCTEXT_NAMESPACE "SAutomationWindowCommandBar"
/* SAutomationWindowCommandBar interface
*****************************************************************************/
void SAutomationWindowCommandBar::Construct( const FArguments& InArgs, const TSharedRef< SNotificationList >& InNotificationList )
{
OnCopyLogClicked = InArgs._OnCopyLogClicked;
ChildSlot
[
SNew(SHorizontalBox)
+SHorizontalBox::Slot()
.FillWidth(1.0f)
+SHorizontalBox::Slot()
.AutoWidth()
.HAlign(HAlign_Right)
[
SNew(SAutomationExportMenu, InNotificationList)
.Visibility(this, &SAutomationWindowCommandBar::GetExportMenuVisibility)
]
+ SHorizontalBox::Slot()
.AutoWidth()
.Padding(4.0f, 0.0f, 0.0f, 0.0f)
[
// copy button
SAssignNew(CopyButton, SButton)
.Visibility(this, &SAutomationWindowCommandBar::GetCopyButtonVisibility)
.ContentPadding(FMargin(6.0, 2.0))
.IsEnabled(false)
.Text(LOCTEXT("AutomationCopyButtonText", "Copy"))
.ToolTipText(LOCTEXT("AutomationCopyButtonTooltip", "Copy the selected log messages to the clipboard"))
.OnClicked(this, &SAutomationWindowCommandBar::HandleCopyButtonClicked)
]
];
}
void SAutomationWindowCommandBar::SetCopyButtonVisibility(EVisibility InVisibility)
{
CopyButtonVisibility = (InVisibility == EVisibility::Visible) ? EVisibility::Visible : EVisibility::Collapsed;
}
EVisibility SAutomationWindowCommandBar::GetCopyButtonVisibility() const
{
return CopyButtonVisibility;
}
EVisibility SAutomationWindowCommandBar::GetExportMenuVisibility() const
{
return (CopyButtonVisibility == EVisibility::Visible) ? EVisibility::Hidden : EVisibility::Visible;
}
FReply SAutomationWindowCommandBar::HandleCopyButtonClicked( )
{
if (OnCopyLogClicked.IsBound())
{
OnCopyLogClicked.Execute();
}
return FReply::Handled();
}
void SAutomationWindowCommandBar::SetNumLogMessages( int32 Count )
{
CopyButton->SetEnabled(Count > 0);
}
#undef LOCTEXT_NAMESPACE