Files
UnrealEngineUWP/Engine/Plugins/Runtime/Metasound/Source/MetasoundEditor/Private/MetasoundDetailCustomization.cpp
Rob Gay 6fb458fd4f Checkpoint on more input/output work
- Expose I/O arrays to UI (TODO: fix rename. We currently have two places we're caching input/output names and no easy way to snatch I/O metadata from I/O node.  Could we add function to reference name from description instead of caching on node?)
- Stub in json import exposition to UI
- Fix crash with removing inputs/outputs
- Various clean-up
#rb ethan.geller
#jira UEAU-527

[CL 13937505 by Rob Gay in ue5-main branch]
2020-07-23 16:39:56 -04:00

43 lines
2.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "MetasoundDetailCustomization.h"
#include "CoreMinimal.h"
#include "DetailCategoryBuilder.h"
#include "DetailLayoutBuilder.h"
#include "IDetailGroup.h"
#include "Metasound.h"
#include "PropertyEditorDelegates.h"
#include "PropertyHandle.h"
#include "Templates/Casts.h"
#include "Templates/SharedPointer.h"
#define LOCTEXT_NAMESPACE "MetasoundEditor"
void FMetasoundDetailCustomization::CustomizeDetails(IDetailLayoutBuilder& DetailLayout)
{
// General Category
IDetailCategoryBuilder& GeneralCategoryBuilder = DetailLayout.EditCategory("General");
TSharedPtr<IPropertyHandle> AuthorHandle = DetailLayout.GetProperty("RootMetasoundDocument.RootClass.Metadata.AuthorName");
TSharedPtr<IPropertyHandle> DescHandle = DetailLayout.GetProperty("RootMetasoundDocument.RootClass.Metadata.MetasoundDescription");
TSharedPtr<IPropertyHandle> NodeTypeHandle = DetailLayout.GetProperty("RootMetasoundDocument.RootClass.Metadata.NodeType");
GeneralCategoryBuilder.AddProperty(NodeTypeHandle);
GeneralCategoryBuilder.AddProperty(AuthorHandle);
GeneralCategoryBuilder.AddProperty(DescHandle);
IDetailCategoryBuilder& ParametersCategoryBuilder = DetailLayout.EditCategory("Parameters");
IDetailGroup& InputDetailGroup = ParametersCategoryBuilder.AddGroup("Inputs", LOCTEXT("MetasoundDetailsGroupInputs", "Inputs"), false /* bForAdvanced */, true /* bStartExpanded */);
TSharedPtr<IPropertyHandle> InputsHandle = DetailLayout.GetProperty("RootMetasoundDocument.RootClass.Inputs");
InputDetailGroup.AddPropertyRow(InputsHandle.ToSharedRef());
IDetailGroup& OutputDetailGroup = ParametersCategoryBuilder.AddGroup("Inputs", LOCTEXT("MetasoundDetailsGroupOutputs", "Outputs"), false /* bForAdvanced */, true /* bStartExpanded */);
TSharedPtr<IPropertyHandle> OutputsHandle = DetailLayout.GetProperty("RootMetasoundDocument.RootClass.Outputs");
OutputDetailGroup.AddPropertyRow(OutputsHandle.ToSharedRef());
// Hack to hide parent structs for nested metadata properties
DetailLayout.HideCategory("Hidden");
}
#undef LOCTEXT_NAMESPACE