Nice try on WingPropHandle

This commit is contained in:
2026-04-03 19:07:39 -04:00
parent daa9216ddf
commit 297586f351
61 changed files with 108 additions and 112 deletions

View File

@@ -25,16 +25,16 @@ class UWing_ActorComponent_Add : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Blueprint package path"))
UPROPERTY(EditAnywhere, meta=(Description="Blueprint package path"))
FString Blueprint;
UPROPERTY(meta=(Description="Component class name (e.g. StaticMeshComponent, SceneComponent)"))
UPROPERTY(EditAnywhere, meta=(Description="Component class name (e.g. StaticMeshComponent, SceneComponent)"))
FString Class;
UPROPERTY(meta=(Description="Component name for the new component"))
UPROPERTY(EditAnywhere, meta=(Description="Component name for the new component"))
FString Component;
UPROPERTY(meta=(Description="Name of the parent component to attach to"))
UPROPERTY(EditAnywhere, meta=(Description="Name of the parent component to attach to"))
FString Parent;
virtual void Register() override

View File

@@ -18,7 +18,7 @@ class UWing_ActorComponent_Remove : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Path to the component (e.g. '/Game/MyBP,component:MyComp')"))
UPROPERTY(EditAnywhere, meta=(Description="Path to the component (e.g. '/Game/MyBP,component:MyComp')"))
FString Component;
virtual void Register() override

View File

@@ -22,10 +22,10 @@ class UWing_ActorComponent_Reparent : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Path to the component (e.g. '/Game/MyBP,component:MyComp')"))
UPROPERTY(EditAnywhere, meta=(Description="Path to the component (e.g. '/Game/MyBP,component:MyComp')"))
FString Component;
UPROPERTY(meta=(Description="New parent component name."))
UPROPERTY(EditAnywhere, meta=(Description="New parent component name."))
FString Parent;
virtual void Register() override

View File

@@ -20,7 +20,7 @@ class UWing_Asset_Backup : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Asset to back up"))
UPROPERTY(EditAnywhere, meta=(Description="Asset to back up"))
FString Asset;
virtual void Register() override

View File

@@ -20,7 +20,7 @@ class UWing_Asset_ContentBrowse : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Content browser path to list, e.g. /Game or /Game/Maps"))
UPROPERTY(EditAnywhere, meta=(Description="Content browser path to list, e.g. /Game or /Game/Maps"))
FString Path;
virtual void Register() override

View File

@@ -23,7 +23,7 @@ class UWing_Asset_Delete : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Asset to delete"))
UPROPERTY(EditAnywhere, meta=(Description="Asset to delete"))
FString Asset;
UPROPERTY(meta=(Optional, Description="If true, skip reference check and force delete"))

View File

@@ -19,7 +19,7 @@ class UWing_Asset_FindReferences : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Asset to find references for"))
UPROPERTY(EditAnywhere, meta=(Description="Asset to find references for"))
FString Asset;
virtual void Register() override

View File

@@ -20,10 +20,10 @@ class UWing_Asset_Rename : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Asset to rename"))
UPROPERTY(EditAnywhere, meta=(Description="Asset to rename"))
FString Asset;
UPROPERTY(meta=(Description="New package path or just a new name"))
UPROPERTY(EditAnywhere, meta=(Description="New package path or just a new name"))
FString NewPath;
virtual void Register() override

View File

@@ -21,7 +21,7 @@ class UWing_Asset_Restore : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Asset to restore"))
UPROPERTY(EditAnywhere, meta=(Description="Asset to restore"))
FString Asset;
virtual void Register() override

View File

@@ -23,13 +23,13 @@ class UWing_BlueprintGraph_Create : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Blueprint name or package path"))
UPROPERTY(EditAnywhere, meta=(Description="Blueprint name or package path"))
FString Blueprint;
UPROPERTY(meta=(Description="Name for the new graph"))
UPROPERTY(EditAnywhere, meta=(Description="Name for the new graph"))
FString Graph;
UPROPERTY(meta=(Description="Type of graph: function or macro"))
UPROPERTY(EditAnywhere, meta=(Description="Type of graph: function or macro"))
FString GraphType;
UPROPERTY(meta=(Optional, Description="Input variables, one per line"))

View File

@@ -21,7 +21,7 @@ class UWing_BlueprintGraph_Delete : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Path to the graph, e.g. /Game/MyBP,graph:MyFunction"))
UPROPERTY(EditAnywhere, meta=(Description="Path to the graph, e.g. /Game/MyBP,graph:MyFunction"))
FString Graph;
virtual void Register() override

View File

@@ -21,10 +21,10 @@ class UWing_Blueprint_AddInterface : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Blueprint package path"))
UPROPERTY(EditAnywhere, meta=(Description="Blueprint package path"))
FString Blueprint;
UPROPERTY(meta=(Description="Native UInterface class name or Blueprint Interface package path"))
UPROPERTY(EditAnywhere, meta=(Description="Native UInterface class name or Blueprint Interface package path"))
FString Interface;
virtual void Register() override

View File

@@ -21,10 +21,10 @@ class UWing_Blueprint_RemoveInterface : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Blueprint name or package path"))
UPROPERTY(EditAnywhere, meta=(Description="Blueprint name or package path"))
FString Blueprint;
UPROPERTY(meta=(Description="Interface name to remove"))
UPROPERTY(EditAnywhere, meta=(Description="Interface name to remove"))
FString Interface;
UPROPERTY(meta=(Optional, Description="If true, keep the function graphs as regular functions"))

View File

@@ -21,7 +21,7 @@ class UWing_Blueprint_Compile : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Blueprint to compile"))
UPROPERTY(EditAnywhere, meta=(Description="Blueprint to compile"))
FString Blueprint;
virtual void Register() override

View File

@@ -31,7 +31,7 @@ class UWing_Blueprint_Dump : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Blueprint path"))
UPROPERTY(EditAnywhere, meta=(Description="Blueprint path"))
FString Blueprint;
virtual void Register() override

View File

@@ -22,10 +22,10 @@ class UWing_Blueprint_Reparent : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Blueprint package path"))
UPROPERTY(EditAnywhere, meta=(Description="Blueprint package path"))
FString Blueprint;
UPROPERTY(meta=(Description="New parent class"))
UPROPERTY(EditAnywhere, meta=(Description="New parent class"))
FString Parent;
virtual void Register() override

View File

@@ -21,7 +21,7 @@ class UWing_Create_Blueprint : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Full asset path for the new asset (e.g. '/Game/MyFolder/MyAsset')"))
UPROPERTY(EditAnywhere, meta=(Description="Full asset path for the new asset (e.g. '/Game/MyFolder/MyAsset')"))
FString Path;
UPROPERTY(meta=(Optional, Description="The parent class for the new blueprint"))

View File

@@ -15,7 +15,7 @@ class UWing_Create_UsingFactory : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Full asset path for the new asset (e.g. '/Game/MyFolder/MyAsset')"))
UPROPERTY(EditAnywhere, meta=(Description="Full asset path for the new asset (e.g. '/Game/MyFolder/MyAsset')"))
FString Path;
virtual void Register() override
@@ -31,7 +31,7 @@ public:
if (!CDO->CanCreateNew() || !CDO->ShouldShowInNewMenu()) continue;
WingPropHandle Props;
TArray<TSharedPtr<IPropertyHandle>> ConfigProps = Props.AllProperties(CDO, true, CPF_Edit);
TArray<TSharedPtr<IPropertyHandle>> ConfigProps = Props.AllProperties(CDO, true);
if (ConfigProps.Num() > 0) continue;
FString FactoryName = WingFactories::DeriveFactoryName(Class);

View File

@@ -14,7 +14,7 @@ class UWing_Details_Dump : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Target object"))
UPROPERTY(EditAnywhere, meta=(Description="Target object"))
FString Object;
UPROPERTY(meta=(Optional, Description="Substring filter for property names"))

View File

@@ -14,10 +14,10 @@ class UWing_Details_Get : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Target object"))
UPROPERTY(EditAnywhere, meta=(Description="Target object"))
FString Object;
UPROPERTY(meta=(Description="Property name"))
UPROPERTY(EditAnywhere, meta=(Description="Property name"))
FString Property;
virtual void Register() override

View File

@@ -14,13 +14,13 @@ class UWing_Details_Set : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Target object"))
UPROPERTY(EditAnywhere, meta=(Description="Target object"))
FString Object;
UPROPERTY(meta=(Description="Property name"))
UPROPERTY(EditAnywhere, meta=(Description="Property name"))
FString Property;
UPROPERTY(meta=(Description="New value in Unreal text format"))
UPROPERTY(EditAnywhere, meta=(Description="New value in Unreal text format"))
FString Value;
virtual void Register() override

View File

@@ -14,10 +14,10 @@ class UWing_Details_SetMany : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Target object"))
UPROPERTY(EditAnywhere, meta=(Description="Target object"))
FString Object;
UPROPERTY(meta=(Description="Object mapping property names to new values in Unreal text format"))
UPROPERTY(EditAnywhere, meta=(Description="Object mapping property names to new values in Unreal text format"))
FWingJsonObject Properties;
virtual void Register() override

View File

@@ -19,7 +19,7 @@ class UWing_Editor_OpenAsset : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Asset to open"))
UPROPERTY(EditAnywhere, meta=(Description="Asset to open"))
FString Asset;
virtual void Register() override

View File

@@ -21,13 +21,13 @@ class UWing_EventDispatcher_Create : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Blueprint name or package path"))
UPROPERTY(EditAnywhere, meta=(Description="Blueprint name or package path"))
FString Blueprint;
UPROPERTY(meta=(Description="Name of the new event dispatcher"))
UPROPERTY(EditAnywhere, meta=(Description="Name of the new event dispatcher"))
FString Dispatcher;
UPROPERTY(meta=(Description="Input Variables, one per line, expressed as: type var = value"))
UPROPERTY(EditAnywhere, meta=(Description="Input Variables, one per line, expressed as: type var = value"))
FString InputVariables;
virtual void Register() override

View File

@@ -20,10 +20,10 @@ class UWing_EventDispatcher_Delete : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Blueprint name or package path"))
UPROPERTY(EditAnywhere, meta=(Description="Blueprint name or package path"))
FString Blueprint;
UPROPERTY(meta=(Description="Name of the event dispatcher to delete"))
UPROPERTY(EditAnywhere, meta=(Description="Name of the event dispatcher to delete"))
FString Dispatcher;
virtual void Register() override

View File

@@ -19,10 +19,10 @@ class UWing_GraphNode_ChooseMenu : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Target node"))
UPROPERTY(EditAnywhere, meta=(Description="Target node"))
FString Node;
UPROPERTY(meta=(Description="Menu item as shown by GraphNode_ShowMenu"))
UPROPERTY(EditAnywhere, meta=(Description="Menu item as shown by GraphNode_ShowMenu"))
FString Item;
virtual void Register() override

View File

@@ -39,10 +39,10 @@ class UWing_GraphNode_Create : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Target graph"))
UPROPERTY(EditAnywhere, meta=(Description="Target graph"))
FString Graph;
UPROPERTY(meta=(Description="Array of {Type, posX, posY} objects. Use GraphNode_SearchTypes to find types."))
UPROPERTY(EditAnywhere, meta=(Description="Array of {Type, posX, posY} objects. Use GraphNode_SearchTypes to find types."))
FWingJsonArray Nodes;
virtual void Register() override

View File

@@ -23,7 +23,7 @@ class UWing_GraphNode_Delete : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Node to delete"))
UPROPERTY(EditAnywhere, meta=(Description="Node to delete"))
FString Node;
virtual void Register() override

View File

@@ -18,7 +18,7 @@ class UWing_GraphNode_Dump : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Target node"))
UPROPERTY(EditAnywhere, meta=(Description="Target node"))
FString Node;
virtual void Register() override

View File

@@ -19,7 +19,7 @@ class UWing_GraphNode_GetComment : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Target node"))
UPROPERTY(EditAnywhere, meta=(Description="Target node"))
FString Node;
virtual void Register() override

View File

@@ -19,10 +19,10 @@ class UWing_GraphNode_Rename : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Target node"))
UPROPERTY(EditAnywhere, meta=(Description="Target node"))
FString Node;
UPROPERTY(meta=(Description="New name for the node"))
UPROPERTY(EditAnywhere, meta=(Description="New name for the node"))
FString Name;
virtual void Register() override

View File

@@ -21,13 +21,13 @@ class UWing_GraphNode_SearchTypes : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Query string, can contain *"))
UPROPERTY(EditAnywhere, meta=(Description="Query string, can contain *"))
FString Query;
UPROPERTY(meta=(Optional, Description="Maximum number of results (default 50)"))
int32 MaxResults = 50;
UPROPERTY(meta=(Description="Target graph"))
UPROPERTY(EditAnywhere, meta=(Description="Target graph"))
FString Graph;
virtual void Register() override

View File

@@ -19,10 +19,10 @@ class UWing_GraphNode_SetComment : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Target node"))
UPROPERTY(EditAnywhere, meta=(Description="Target node"))
FString Node;
UPROPERTY(meta=(Description="Comment text to set"))
UPROPERTY(EditAnywhere, meta=(Description="Comment text to set"))
FString Comment;
virtual void Register() override

View File

@@ -38,10 +38,10 @@ class UWing_GraphNode_SetDefaults : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Target graph"))
UPROPERTY(EditAnywhere, meta=(Description="Target graph"))
FString Graph;
UPROPERTY(meta=(Description="Array of {node, name, value} objects"))
UPROPERTY(EditAnywhere, meta=(Description="Array of {node, name, value} objects"))
FWingJsonArray Pins;
virtual void Register() override

View File

@@ -36,10 +36,10 @@ class UWing_GraphNode_SetPositions : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Target graph"))
UPROPERTY(EditAnywhere, meta=(Description="Target graph"))
FString Graph;
UPROPERTY(meta=(Description="Array of {node, x, y} objects"))
UPROPERTY(EditAnywhere, meta=(Description="Array of {node, x, y} objects"))
FWingJsonArray Nodes;
virtual void Register() override

View File

@@ -20,7 +20,7 @@ class UWing_GraphNode_ShowMenu : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Target node"))
UPROPERTY(EditAnywhere, meta=(Description="Target node"))
FString Node;
virtual void Register() override

View File

@@ -36,10 +36,10 @@ class UWing_GraphPin_Connect : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Target graph"))
UPROPERTY(EditAnywhere, meta=(Description="Target graph"))
FString Graph;
UPROPERTY(meta=(Description="Array of {sourcePin, targetPin} objects"))
UPROPERTY(EditAnywhere, meta=(Description="Array of {sourcePin, targetPin} objects"))
FWingJsonArray Connections;
virtual void Register() override

View File

@@ -35,10 +35,10 @@ class UWing_GraphPin_Disconnect : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Target graph"))
UPROPERTY(EditAnywhere, meta=(Description="Target graph"))
FString Graph;
UPROPERTY(meta=(Description="Array of {pin, targetPin?} objects. If targetPin is omitted, all connections on the pin are broken."))
UPROPERTY(EditAnywhere, meta=(Description="Array of {pin, targetPin?} objects. If targetPin is omitted, all connections on the pin are broken."))
FWingJsonArray Disconnections;
virtual void Register() override

View File

@@ -23,7 +23,7 @@ class UWing_Graph_Dump : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Path to graph"))
UPROPERTY(EditAnywhere, meta=(Description="Path to graph"))
FString Graph;
UPROPERTY(meta=(Optional, Description="True to include less-significant details"))

View File

@@ -21,16 +21,16 @@ class UWing_MaterialInstance_ClearParameter : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Target material instance"))
UPROPERTY(EditAnywhere, meta=(Description="Target material instance"))
FString MaterialInstance;
UPROPERTY(meta=(Description="Parameter name to clear"))
UPROPERTY(EditAnywhere, meta=(Description="Parameter name to clear"))
FString Parameter;
UPROPERTY(meta=(Description="Parameter association: 'Global', 'Layer', or 'Blend'. Default: 'Global'", Optional))
UPROPERTY(EditAnywhere, meta=(Description="Parameter association: 'Global', 'Layer', or 'Blend'. Default: 'Global'", Optional))
FString ParameterAssociation = TEXT("Global");
UPROPERTY(meta=(Description="Layer/blend index (0-based). Only used when ParameterAssociation is 'Layer' or 'Blend'", Optional))
UPROPERTY(EditAnywhere, meta=(Description="Layer/blend index (0-based). Only used when ParameterAssociation is 'Layer' or 'Blend'", Optional))
int32 ParameterLayer = INDEX_NONE;
virtual void Register() override

View File

@@ -21,7 +21,7 @@ class UWing_MaterialInstance_DumpParameters : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Target material instance"))
UPROPERTY(EditAnywhere, meta=(Description="Target material instance"))
FString MaterialInstance;
virtual void Register() override

View File

@@ -22,19 +22,19 @@ class UWing_MaterialInstance_SetParameter : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Target material instance"))
UPROPERTY(EditAnywhere, meta=(Description="Target material instance"))
FString MaterialInstance;
UPROPERTY(meta=(Description="Parameter name to set"))
UPROPERTY(EditAnywhere, meta=(Description="Parameter name to set"))
FString Parameter;
UPROPERTY(meta=(Description="Parameter association: 'Global', 'Layer', or 'Blend'. Default: 'Global'", Optional))
UPROPERTY(EditAnywhere, meta=(Description="Parameter association: 'Global', 'Layer', or 'Blend'. Default: 'Global'", Optional))
FString ParameterAssociation = TEXT("Global");
UPROPERTY(meta=(Description="Layer/blend index (0-based). Only used when ParameterAssociation is 'Layer' or 'Blend'", Optional))
UPROPERTY(EditAnywhere, meta=(Description="Layer/blend index (0-based). Only used when ParameterAssociation is 'Layer' or 'Blend'", Optional))
int32 ParameterLayer = INDEX_NONE;
UPROPERTY(meta=(Description="Value to set (uses Unreal text format, e.g. '0.5' for scalar, '(R=1,G=0,B=0,A=1)' for vector)"))
UPROPERTY(EditAnywhere, meta=(Description="Value to set (uses Unreal text format, e.g. '0.5' for scalar, '(R=1,G=0,B=0,A=1)' for vector)"))
FString Value;
virtual void Register() override

View File

@@ -19,7 +19,7 @@ class UWing_Material_Compile : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Material name or package path"))
UPROPERTY(EditAnywhere, meta=(Description="Material name or package path"))
FString Material;
virtual void Register() override

View File

@@ -20,7 +20,7 @@ class UWing_Material_DumpParameters : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Material path"))
UPROPERTY(EditAnywhere, meta=(Description="Material path"))
FString Material;
virtual void Register() override

View File

@@ -17,7 +17,7 @@ class UWing_Test_Sanitizer : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="The string to sanitize"))
UPROPERTY(EditAnywhere, meta=(Description="The string to sanitize"))
FString Input;
virtual void Register() override

View File

@@ -17,7 +17,7 @@ class UWing_Test_Tokenizer : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="The string to tokenize"))
UPROPERTY(EditAnywhere, meta=(Description="The string to tokenize"))
FString Input;
virtual void Register() override

View File

@@ -17,7 +17,7 @@ class UWing_Test_TypeToText : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="The type name to parse, e.g. 'Array<Vector>'"))
UPROPERTY(EditAnywhere, meta=(Description="The type name to parse, e.g. 'Array<Vector>'"))
FString Input;
virtual void Register() override

View File

@@ -17,7 +17,7 @@ class UWing_Test_Unsanitize : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="The sanitized identifier to unsanitize"))
UPROPERTY(EditAnywhere, meta=(Description="The sanitized identifier to unsanitize"))
FString Input;
virtual void Register() override

View File

@@ -23,7 +23,7 @@ class UWing_TypeName_Search : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Substring filter for type names"))
UPROPERTY(EditAnywhere, meta=(Description="Substring filter for type names"))
FString Query;
UPROPERTY(meta=(Optional, Description="Maximum number of results"))

View File

@@ -18,7 +18,7 @@ class UWing_Variables_Create : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Path to a blueprint, graph, or custom event node"))
UPROPERTY(EditAnywhere, meta=(Description="Path to a blueprint, graph, or custom event node"))
FString Object;
UPROPERTY(meta=(Optional, Description="Blueprint variables, one per line"))

View File

@@ -18,7 +18,7 @@ class UWing_Variables_Dump : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Path to a blueprint, graph, or custom event node"))
UPROPERTY(EditAnywhere, meta=(Description="Path to a blueprint, graph, or custom event node"))
FString Object;
virtual void Register() override

View File

@@ -18,7 +18,7 @@ class UWing_Variables_Modify : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Path to a blueprint, graph, or custom event node"))
UPROPERTY(EditAnywhere, meta=(Description="Path to a blueprint, graph, or custom event node"))
FString Object;
UPROPERTY(meta=(Optional, Description="Blueprint variables, one per line"))

View File

@@ -18,7 +18,7 @@ class UWing_Variables_Remove : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Path to a blueprint, graph, or custom event node"))
UPROPERTY(EditAnywhere, meta=(Description="Path to a blueprint, graph, or custom event node"))
FString Object;
UPROPERTY(meta=(Optional, Description="Blueprint variable names to remove, comma-separated"))

View File

@@ -24,13 +24,13 @@ class UWing_Widget_Create : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Widget blueprint to add the widget to"))
UPROPERTY(EditAnywhere, meta=(Description="Widget blueprint to add the widget to"))
FString Blueprint;
UPROPERTY(meta=(Description="Widget type, from Widget_SearchTypes"))
UPROPERTY(EditAnywhere, meta=(Description="Widget type, from Widget_SearchTypes"))
FString Type;
UPROPERTY(meta=(Description="Name for the new widget"))
UPROPERTY(EditAnywhere, meta=(Description="Name for the new widget"))
FString Name;
UPROPERTY(meta=(Optional, Description="Parent widget name. If omitted, sets as root."))

View File

@@ -22,7 +22,7 @@ class UWing_Widget_Delete : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Path to the widget, eg /Game/Widgets/WB_Test,widget:MyButton"))
UPROPERTY(EditAnywhere, meta=(Description="Path to the widget, eg /Game/Widgets/WB_Test,widget:MyButton"))
FString Widget;
virtual void Register() override

View File

@@ -22,10 +22,10 @@ class UWing_Widget_Reparent : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Path to the widget, eg /Game/Widgets/WB_Test,widget:MyButton"))
UPROPERTY(EditAnywhere, meta=(Description="Path to the widget, eg /Game/Widgets/WB_Test,widget:MyButton"))
FString Widget;
UPROPERTY(meta=(Description="Name of the new parent widget. Must be a panel."))
UPROPERTY(EditAnywhere, meta=(Description="Name of the new parent widget. Must be a panel."))
FString Parent;
virtual void Register() override

View File

@@ -17,7 +17,7 @@ class UWing_Widget_SearchTypes : public UWingHandler
GENERATED_BODY()
public:
UPROPERTY(meta=(Description="Query string, can contain *"))
UPROPERTY(EditAnywhere, meta=(Description="Query string, can contain *"))
FString Query;
UPROPERTY(meta=(Optional, Description="Maximum number of results (default 50)"))

View File

@@ -128,7 +128,7 @@ WingPropHandle::FlatTree WingPropHandle::AllTreeNodes(Root& Root)
//
/////////////////////////////////////////////////////////////////////////////
WingPropHandle::Handles WingPropHandle::AllProperties(Root& Root, bool RootFilter, EPropertyFlags Filter)
WingPropHandle::Handles WingPropHandle::AllProperties(Root& Root, bool RootFilter)
{
Handles Result;
for (IDetailTreeNode* Node : AllTreeNodes(Root))
@@ -136,8 +136,6 @@ WingPropHandle::Handles WingPropHandle::AllProperties(Root& Root, bool RootFilte
TSharedPtr<IPropertyHandle> Handle = Node->CreatePropertyHandle();
if (Handle.IsValid() && Handle->GetProperty())
{
if (Filter != CPF_None && !Handle->GetProperty()->HasAllPropertyFlags(Filter))
continue;
if (RootFilter && !IsInsideRootObject(Root, *Handle))
continue;
Result.Add(Handle);
@@ -146,16 +144,16 @@ WingPropHandle::Handles WingPropHandle::AllProperties(Root& Root, bool RootFilte
return Result;
}
WingPropHandle::Handles WingPropHandle::AllProperties(UObject* Obj, bool RootFilter, EPropertyFlags Filter)
WingPropHandle::Handles WingPropHandle::AllProperties(UObject* Obj, bool RootFilter)
{
if (!Obj) return {};
return AllProperties(GetRootForObject(Obj), RootFilter, Filter);
return AllProperties(GetRootForObject(Obj), RootFilter);
}
WingPropHandle::Handles WingPropHandle::AllProperties(const UStruct* ScriptStruct, uint8* Data, bool RootFilter, EPropertyFlags Filter)
WingPropHandle::Handles WingPropHandle::AllProperties(const UStruct* ScriptStruct, uint8* Data, bool RootFilter)
{
if (!ScriptStruct || !Data) return {};
return AllProperties(GetRootForStruct(ScriptStruct, Data), RootFilter, Filter);
return AllProperties(GetRootForStruct(ScriptStruct, Data), RootFilter);
}
/////////////////////////////////////////////////////////////////////////////
@@ -213,7 +211,6 @@ TSharedPtr<IPropertyHandle> WingPropHandle::NamedProperty(const UStruct* ScriptS
WingPropHandle::Handles WingPropHandle::GetDetails(UObject* Obj, bool Mutable)
{
bool RootFilter = false;
EPropertyFlags PropFlags = CPF_Edit;
if (!Obj) return {};
@@ -248,14 +245,14 @@ WingPropHandle::Handles WingPropHandle::GetDetails(UObject* Obj, bool Mutable)
if (Cast<AActor>(Obj)) RootFilter = true;
// Fetch the handles.
Handles Result = AllProperties(Obj, RootFilter, PropFlags);
Handles Result = AllProperties(Obj, RootFilter);
// Material graph nodes: also collect expression properties.
if (UMaterialGraphNode* MatNode = Cast<UMaterialGraphNode>(Obj))
{
if (UMaterialExpression* Expr = MatNode->MaterialExpression)
{
Result.Append(AllProperties(Expr, true, CPF_Edit));
Result.Append(AllProperties(Expr, true));
}
}
@@ -268,7 +265,7 @@ WingPropHandle::Handles WingPropHandle::GetDetails(UObject* Obj, bool Mutable)
// });
// if (UPanelSlot* Slot = Widget->Slot)
// {
// Result.Append(AllProperties(Slot, false, CPF_Edit));
// Result.Append(AllProperties(Slot, false));
// }
// }

View File

@@ -329,7 +329,7 @@ void UWingServer::TryCallHandler(const FString &Line)
// Populate the handler object with the request parameters.
WingPropHandle Props;
WingPropHandle::Handles Handles = Props.AllProperties(HandlerObj.Get(), true, CPF_None);
WingPropHandle::Handles Handles = Props.AllProperties(HandlerObj.Get(), true);
if (!WingPropHandle::PopulateFromJson(Handles, *Request, false))
{
UWingServer::SuggestManual(WingManual::Section::HandlerHelp);

View File

@@ -27,15 +27,13 @@ public:
WingPropHandle() {}
// Get all properties of a UObject. Returns the handles.
// Only properties that have all the specified flags are included.
// If RootFilter is true, only properties inside the root object are returned.
Handles AllProperties(UObject* Obj, bool RootFilter, EPropertyFlags Filter);
Handles AllProperties(UObject* Obj, bool RootFilter);
// Get all properties of a struct. Does not copy — the data
// pointer must remain valid for the lifetime of this object.
// Only properties that have all the specified flags are included.
// If RootFilter is true, only properties inside the root object are returned.
Handles AllProperties(const UStruct* ScriptStruct, uint8* Data, bool RootFilter, EPropertyFlags Filter);
Handles AllProperties(const UStruct* ScriptStruct, uint8* Data, bool RootFilter);
// Get a single named property from a UObject.
// If RootFilter is true, only properties inside the root object are returned.
@@ -75,7 +73,7 @@ public:
// If not, the Json must supply all of them, excepting properties that
// are explicitly marked Optional.
static bool PopulateFromJson(TArray<TSharedPtr<IPropertyHandle>>& Props, const FJsonObject& Json, bool AllOptional);
// Print a single property in a standardized format:
// editable|readonly Type Name = Value
static void Print(IPropertyHandle& Handle, FStringBuilderBase& Out);
@@ -99,6 +97,6 @@ private:
static void AllTreeNodesRecursive(const TSharedRef<IDetailTreeNode>& Node, FlatTree& Out);
static FlatTree AllTreeNodes(Root& Root);
Handles AllProperties(Root& Root, bool RootFilter, EPropertyFlags Filter);
Handles AllProperties(Root& Root, bool RootFilter);
static TSharedPtr<IPropertyHandle> TryNamedProperty(Root& Root, FName Name, bool RootFilter);
};

View File

@@ -142,6 +142,7 @@ public:
{
if (Collection.Contains(InternalID))
{ CheckExactlyOneNamed(2, Kind, InternalID); return false; }
Collection.Add(InternalID);
return true;
}