Dataflow : Node renaming

#rb none
#fyi Gustav.Melich
#preflight 6358a5b2a2609c2faea02146

[CL 22773619 by Brice Criswell in ue5-main branch]
This commit is contained in:
Brice Criswell
2022-10-25 23:17:24 -04:00
parent 0924eb7100
commit a930fb858c
8 changed files with 83 additions and 8 deletions

View File

@@ -4,6 +4,7 @@
#include "Dataflow/DataflowEdNode.h"
#include "Dataflow/DataflowNodeFactory.h"
#include "Dataflow/DataflowObject.h"
#include "EdGraph/EdGraphNode.h"
#include "IStructureDetailsView.h"
#include "EdGraphNode_Comment.h"
@@ -120,6 +121,59 @@ void FDataflowEditorCommands::EvaluateNode(Dataflow::FContext& Context, Dataflow
}
}
bool FDataflowEditorCommands::OnNodeVerifyTitleCommit(const FText& NewText, UEdGraphNode* GraphNode, FText& OutErrorMessage)
{
if (GraphNode)
{
if (UDataflowEdNode* DataflowNode = Cast<UDataflowEdNode>(GraphNode))
{
if (TSharedPtr<Dataflow::FGraph> Graph = DataflowNode->GetDataflowGraph())
{
if( Graph->FindBaseNode(FName(NewText.ToString())).Get()==nullptr )
{
return true;
}
}
}
else if( Cast<UEdGraphNode_Comment>(GraphNode))
{
return true;
}
}
OutErrorMessage = FText::FromString(FString::Printf(TEXT("Non-unique name for graph node (%s)"), *NewText.ToString()));
return false;
}
void FDataflowEditorCommands::OnNodeTitleCommitted(const FText& InNewText, ETextCommit::Type InCommitType, UEdGraphNode* GraphNode)
{
if (InCommitType == ETextCommit::OnCleared)
{
return;
}
if (GraphNode)
{
if (UDataflowEdNode* DataflowNode = Cast<UDataflowEdNode>(GraphNode))
{
if (TSharedPtr<Dataflow::FGraph> Graph = DataflowNode->GetDataflowGraph())
{
if (TSharedPtr<FDataflowNode> Node = Graph->FindBaseNode(DataflowNode->GetDataflowNodeGuid()))
{
GraphNode->Rename(*InNewText.ToString());
Node->SetName(FName(InNewText.ToString()));
}
}
}
else if (UEdGraphNode_Comment* CommentNode = Cast<UEdGraphNode_Comment>(GraphNode))
{
GraphNode->NodeComment = InNewText.ToString();
}
}
}
void FDataflowEditorCommands::OnPropertyValueChanged(UDataflow* OutDataflow, TSharedPtr<Dataflow::FEngineContext>& Context, Dataflow::FTimestamp& OutLastNodeTimestamp, const FPropertyChangedEvent& InPropertyChangedEvent)
{
if (InPropertyChangedEvent.ChangeType == EPropertyChangeType::ValueSet)

View File

@@ -7,7 +7,7 @@
#include "Dataflow/DataflowSNodeFactories.h"
#include "BoneDragDropOp.h"
#include "IStructureDetailsView.h"
#include "Dataflow/DataflowCommentNode.h"
#include "Dataflow/DataflowSCommentNode.h"
#include "Dataflow/DataflowNodeParameters.h"
#include "Dataflow/DataflowSchema.h"

View File

@@ -1,6 +1,6 @@
// Copyright Epic Games, Inc. All Rights Reserved.
#include "Dataflow/DataflowCommentNode.h"
#include "Dataflow/DataflowSCommentNode.h"
#include "EdGraphNode_Comment.h"
#include "Dataflow/DataflowEdNode.h"
@@ -27,7 +27,7 @@ TSharedPtr<FAssetSchemaAction_Dataflow_CreateCommentNode_DataflowEdNode> FAssetS
//
UEdGraphNode* FAssetSchemaAction_Dataflow_CreateCommentNode_DataflowEdNode::PerformAction(class UEdGraph* ParentGraph, UEdGraphPin* FromPin, const FVector2D Location, bool bSelectNewNode)
{
UEdGraphNode_Comment* CommentTemplate = NewObject<UEdGraphNode_Comment>();
UEdGraphNode_Comment* CommentTemplate = NewObject<UEdGraphNode_Comment>(ParentGraph, FName("Comment"));
FVector2D SpawnLocation = Location;
FSlateRect Bounds;

View File

@@ -4,7 +4,7 @@
#include "Dataflow/DataflowSNode.h"
#include "Dataflow/DataflowEdNode.h"
#include "EdGraphNode_Comment.h"
#include "Dataflow/DataflowCommentNode.h"
#include "Dataflow/DataflowSCommentNode.h"
#include "Dataflow/DataflowSchema.h"
TSharedPtr<class SGraphNode> FDataflowSNodeFactory::CreateNode(UEdGraphNode* InNode) const

View File

@@ -12,6 +12,7 @@ class IStructureDetailsView;
class UDataflow;
class UDataflowEdNode;
struct FDataflowNode;
class UEdGraphNode;
typedef TSet<class UObject*> FGraphPanelSelectionSet;
@@ -68,7 +69,17 @@ public:
* DeleteNodes
*/
static void DeleteNodes(UDataflow* Graph, const FGraphPanelSelectionSet& SelectedNodes);
/*
* OnNodeVerifyTitleCommit
*/
static bool OnNodeVerifyTitleCommit(const FText& NewText, UEdGraphNode* GraphNode, FText& OutErrorMessage);
/*
* OnNodeTitleCommitted
*/
static void OnNodeTitleCommitted(const FText& InNewText, ETextCommit::Type InCommitType, UEdGraphNode* GraphNode);
/*
* OnPropertyValueChanged
*/

View File

@@ -6,7 +6,7 @@
#include "SGraphNode.h"
#include "SGraphNodeComment.h"
#include "DataflowCommentNode.generated.h"
#include "DataflowSCommentNode.generated.h"
//
// SDataflowEdNodeComment

View File

@@ -12,11 +12,19 @@
#include "EdGraph/EdGraphPin.h"
#endif
#define LOCTEXT_NAMESPACE "DataflowEdNode"
DEFINE_LOG_CATEGORY_STATIC(DATAFLOWNODE_LOG, Error, All);
UDataflowEdNode::UDataflowEdNode(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
#if WITH_EDITOR && !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
bCanRenameNode = true;
#endif // WITH_EDITOR && !UE_BUILD_SHIPPING
}
void UDataflowEdNode::AllocateDefaultPins()
{
UE_LOG(DATAFLOWNODE_LOG, Verbose, TEXT("UDataflowEdNode::AllocateDefaultPins()"));

View File

@@ -24,11 +24,13 @@ namespace Dataflow { class FGraph; }
UCLASS()
class DATAFLOWENGINE_API UDataflowEdNode : public UEdGraphNode
{
GENERATED_BODY()
GENERATED_UCLASS_BODY()
FGuid DataflowNodeGuid;
TSharedPtr<Dataflow::FGraph> DataflowGraph;
public:
// UEdGraphNode interface
virtual void AllocateDefaultPins();
virtual FText GetNodeTitle(ENodeTitleType::Type TitleType) const;