Files
UnrealEngineUWP/Engine/Source/Editor/RewindDebuggerInterface/Private/RewindDebuggerInterface.cpp
roland munguia f30e2a5b41 Adds ability to watch properties in Rewind Debugger. (Property Watch Track)
**New**
- Added `FPropertiesTrack` as the root track that handles the watched properties via Rewind Debugger.
- Added `FPropertyTrack` used to for watched property tracks via Rewind Debugger.
- Added `FPropertyWatchManager` used to keep track of watched traced properties.
- Added `FPropertyTracks` type specializations:`FBoolPropertyTrack` and `FNumericPropertyTrack`.
- Added `ReadObjectPropertiesStorage` method in `IGameplayProvider`. Used to access container where traced object properties are stored.
- Added `FindPropertyValueFromStorageIndex` method in `IGameplayProvider`. Used to access a traced property given its id.
- Added context menu building support via `FPropertyTrack` and `SPropertiesDebugViewBase`.
- Added a delegate for mouse button down on an `SVariantValueView`.
- Added `SPropertyTrackView` to show a single `FPropertyTrack` variable information in the Rewind Debugger details panel.
- Improved traced property variables displaying. Friendly display names. Specialization for bools, vector, vector2d and quaternions.
- Added a log category for Rewind Debugger. `LogRewindDebugger`.

**Changed**
- Updated `FObjectPropertyValue` to keep track of its unique name id, and unique parent id.
- Updated `FRewindDebugger` to handle menu registration for `ComponentContextMenu`.
- Updated `FVariantTreeNode` to support storing a trace property id. Used for details context menu to support having a menu entry to watch property.
- Updated `SPropertiesDebugViewBase` to have the ability to create a context menu.
- Updated `SObjectPropertiesView` to better display traced properties.
- Updated object property tracing to handle updated `FObjectPropertyValue`. Create unique named ids for properties.
- Updated `FGameAnalyzer` to handle new version of `FObjectPropertyValue`.
- Updated `FRewindDebuggerTrack` to support a building context menu.
- Updated `UComponentContextMenuContext` to stored the current Rewind Debugger selected track.

**Removed**
- Removed usage of `FObjectPropertiesViewCreator`. Now using `FPropertiesTrackCreator`.

#jira UE-159126
#preflight 634f0394dd0d2ceafae78188

[CL 22610498 by roland munguia in ue5-main branch]
2022-10-18 16:44:57 -04:00

34 lines
941 B
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "IRewindDebugger.h"
#include "IRewindDebuggerDoubleClickHandler.h"
#include "IRewindDebuggerExtension.h"
#include "IRewindDebuggerTrackCreator.h"
#include "IRewindDebuggerViewCreator.h"
#include "UObject/NameTypes.h"
DEFINE_LOG_CATEGORY(LogRewindDebugger)
const FName IRewindDebuggerExtension::ModularFeatureName = "RewindDebuggerExtension";
const FName IRewindDebuggerViewCreator::ModularFeatureName = "RewindDebuggerViewCreator";
const FName IRewindDebuggerDoubleClickHandler::ModularFeatureName = "RewindDebuggerDoubleClickHandler";
namespace RewindDebugger
{
const FName IRewindDebuggerTrackCreator::ModularFeatureName = "RewindDebuggerTrackCreator";
}
IRewindDebugger* IRewindDebugger::InternalInstance = nullptr;
IRewindDebugger::~IRewindDebugger()
{
}
IRewindDebugger::IRewindDebugger()
{
}
IRewindDebugger* IRewindDebugger::Instance()
{
return InternalInstance;
}