Hey guys,
I have been trying to get Details Customization to work for a USTRUCT. So far I’ve followed this guide for creating an EditorModule and this guide for customizing the details panel.
It compiles and the EditorModule prints logs, so that is working.
However, the customization does not print the log I’ve put in CustomizeHeader.
The struct I’m trying to customize(FWeaponDataTableRow) is inside my game module, while the customization is inside the EditorModule.
I’ve been trying to get it to work all day, does anybody have any ideas?
EditorModule code:
void FMyGameEditorModule::StartupModule()
{
UE_LOG( MyGameEditor, Warning, TEXT( "MyGameEditor: Log Started" ) );
FPropertyEditorModule& PropertyModule = FModuleManager::LoadModuleChecked<FPropertyEditorModule>( "PropertyEditor" );
PropertyModule.RegisterCustomPropertyTypeLayout( "WeaponDataTableRow", FOnGetPropertyTypeCustomizationInstance::CreateStatic( &FWeaponDataTableRowCustomization::MakeInstance ) );
PropertyModule.NotifyCustomizationModuleChanged();
}
Customization header:
class FWeaponDataTableRowCustomization : public IPropertyTypeCustomization
{
public:
static TSharedRef<IPropertyTypeCustomization> MakeInstance();
virtual void CustomizeHeader( TSharedRef<IPropertyHandle> PropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& CustomizationUtils ) override;
virtual void CustomizeChildren( TSharedRef<IPropertyHandle> PropertyHandle, IDetailChildrenBuilder& ChildBuilder, IPropertyTypeCustomizationUtils& CustomizationUtils ) override;
private:
TSharedPtr<IPropertyHandle> TestHandle;
// property handles
};
Customization cpp:
#define LOCTEXT_NAMESPACE "WeaponDataTableRowCustomization"
TSharedRef<IPropertyTypeCustomization> FWeaponDataTableRowCustomization::MakeInstance()
{
return MakeShareable( new FWeaponDataTableRowCustomization() );
}
void FWeaponDataTableRowCustomization::CustomizeHeader( TSharedRef<IPropertyHandle> PropertyHandle, FDetailWidgetRow & HeaderRow, IPropertyTypeCustomizationUtils & CustomizationUtils )
{
UE_LOG( LogTemp, Error, TEXT( "Customization Registered!" ) );
}
void FWeaponDataTableRowCustomization::CustomizeChildren( TSharedRef<IPropertyHandle> PropertyHandle, IDetailChildrenBuilder & ChildBuilder, IPropertyTypeCustomizationUtils & CustomizationUtils )
{
}
#undef LOCTEXT_NAMESPACE