Files
UnrealEngineUWP/Engine/Source/Editor/UMGEditor/Private/Graph/GraphVariableDetailsCustomization.cpp
patrick boutot 42692ed9f7 FieldNotify: Only show the FieldNotify option in BP when the class is a WidgetBP.
#rb sebastien.nordgren

#ROBOMERGE-AUTHOR: patrick.boutot
#ROBOMERGE-SOURCE: CL 19719571 via CL 19719572 via CL 19719574
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v938-19570697)

[CL 19720850 by patrick boutot in ue5-main branch]
2022-04-12 10:35:01 -04:00

51 lines
1.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Graph/GraphVariableDetailsCustomization.h"
#include "FieldNotification/CustomizationHelper.h"
#include "DetailLayoutBuilder.h"
#include "BlueprintEditorModule.h"
#include "Engine/BlueprintGeneratedClass.h"
#include "WidgetBlueprint.h"
#define LOCTEXT_NAMESPACE "GraphVariableDetailsCustomization"
FGraphVariableDetailsCustomization::FGraphVariableDetailsCustomization(UWidgetBlueprint* InBlueprint)
: Helper(MakePimpl<UE::FieldNotification::FCustomizationHelper>(InBlueprint))
{}
TSharedPtr<IDetailCustomization> FGraphVariableDetailsCustomization::MakeInstance(TSharedPtr<IBlueprintEditor> InBlueprintEditor)
{
const TArray<UObject*>* Objects = (InBlueprintEditor.IsValid() ? InBlueprintEditor->GetObjectsCurrentlyBeingEdited() : nullptr);
if (Objects)
{
TOptional<UWidgetBlueprint*> FinalBlueprint;
for (UObject* Object : *Objects)
{
UWidgetBlueprint* Blueprint = Cast<UWidgetBlueprint>(Object);
if (Blueprint == nullptr)
{
return nullptr;
}
if (FinalBlueprint.IsSet() && FinalBlueprint.GetValue() != Blueprint)
{
return nullptr;
}
FinalBlueprint = Blueprint;
}
if (FinalBlueprint.IsSet())
{
return MakeShareable(new FGraphVariableDetailsCustomization(FinalBlueprint.GetValue()));
}
}
return nullptr;
}
void FGraphVariableDetailsCustomization::CustomizeDetails(IDetailLayoutBuilder& DetailLayout)
{
Helper->CustomizeVariableDetails(DetailLayout);
}
#undef LOCTEXT_NAMESPACE