// 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(InBlueprint)) {} TSharedPtr FGraphVariableDetailsCustomization::MakeInstance(TSharedPtr InBlueprintEditor) { const TArray* Objects = (InBlueprintEditor.IsValid() ? InBlueprintEditor->GetObjectsCurrentlyBeingEdited() : nullptr); if (Objects) { TOptional FinalBlueprint; for (UObject* Object : *Objects) { UWidgetBlueprint* Blueprint = Cast(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