Files
UnrealEngineUWP/Engine/Plugins/Runtime/ModelViewViewModel/Source/ModelViewViewModelDebugger/Public/MVVMDebugViewClass.h
patrick boutot fa42c9b609 MVVM: Rework for the view runtime data. The new format allows for better error detection and new features in progress. The view owns the bindings and events. The source has a list of the bindings. That saves runtime of memory, the delegate doesn't store the binding id. All bindings, events, sources are now sorted for better incremental build performance.
Add a different "key" structures to prevent mistakes with indexes.
Unregister the delay bindings when the source is released.
Store the FieldId, in the source itself. That reduces the amount of work when loading the view.
Add option to delay the events initialization (like we do for bindings).
The binding to evaluate "long path" view models are now separated from regular bindings.
#jira UE-194167
#rb editor-ui-systems

[CL 30042205 by patrick boutot in ue5-main branch]
2023-12-01 11:13:35 -05:00

48 lines
991 B
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "AssetRegistry/AssetData.h"
#include "UObject/ObjectMacros.h"
#include "MVVMDebugViewClass.generated.h"
class UMVVMViewClass;
USTRUCT()
struct FMVVMViewBindingDebugEntry
{
GENERATED_BODY()
UPROPERTY(VisibleAnywhere, Category = "Viewmodel")
FGuid BlueprintViewBindingId;
UPROPERTY(VisibleAnywhere, Category = "Viewmodel")
FString SourceFieldPath;
UPROPERTY(VisibleAnywhere, Category = "Viewmodel")
FString DestinationFieldPath;
UPROPERTY(VisibleAnywhere, Category = "Viewmodel")
FString ConversionFunctionFieldPath;
UPROPERTY(VisibleAnywhere, Category = "Viewmodel")
int32 CompiledBindingIndex = INDEX_NONE;
};
USTRUCT()
struct FMVVMViewClassDebugEntry
{
GENERATED_BODY()
UPROPERTY(VisibleAnywhere, Category = "Viewmodel")
TArray<FMVVMViewBindingDebugEntry> Bindings;
UPROPERTY()
FGuid ViewClassDebugId;
TWeakObjectPtr<const UMVVMViewClass> LiveViewClass;
};