Description

EditInlineNew properties on components can't be properly set if the component name has whitespace in it. This appears to be a problem with resolving the property name in SPropertyEditorEditInline::OnClassPicked.

Steps to Reproduce
  1. Copy/paste the stripped-down code below which expose an EditInlineNew and Instanced variable in an ActorComponent.
  2. In the editor (not in code!), create a new Actor class, and add an EditInlineNewObjectComponent in it.
  3. Select the component, and observe the variable EditInlineNewObject. You can edit it at this point, without any trouble.
  4. Rename the component name by adding one or several whitespaces in it. The default name should be "EditInlineNewObject". Just adding a space in it should do it [Image Removed] .
  5. Now, try and edit the variable EditInlineNewObject. You'll observe the issue: it is always reset to None, no matter which class you pick...
UCLASS(DefaultToInstanced, EditInlineNew)
class UEditInlineNewObject : public UObject
{
	GENERATED_BODY()
}; 

UCLASS(BlueprintType, meta = (BlueprintSpawnableComponent))
class UEditInlineNewObjectComponent : public UActorComponent
{
	GENERATED_BODY() 

public:	
        UPROPERTY(EditAnywhere, Instanced)
	UEditInlineNewObject* EditInlineNewObject;
};

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-140914 in the post.

1
Login to Vote

Backlogged
ComponentUE - Gameplay - Blueprint Editor
Affects Versions4.275.05.1
CreatedFeb 1, 2022
UpdatedSep 22, 2022