Navigation
API > API/Runtime > API/Runtime/Core > API/Runtime/Core/Misc
Inheritance Hierarchy
References
| Module | Core |
| Header | /Engine/Source/Runtime/Core/Public/Misc/Change.h |
| Include | #include "Misc/Change.h" |
Syntax
class FChange
Remarks
FChange modifies a UObject and is meant to be used to implement undo/redo. The change is embedded in an FTransaction which executes it instead of the standard serialization transaction (cannot be combined - see FTransaction).
The original FChange style (used by MeshEditor) was that calling Execute() would return a new FChange that applies the opposite action, and FTransaction would swap the two at each undo/redo step (eg a "DeleteObject" FChange would return a "CreateObject" FChange)
The alternative "Command Pattern"-style FChange calls Apply() and Revert() on a single FChange.
FChange may eventually be deprecated. You should subclass FSwapChange and FCommandChange to implement these different styles.
Constructors
| Type | Name | Description | |
|---|---|---|---|
FChange () |
Protected default constructor |
Destructors
| Type | Name | Description | |
|---|---|---|---|
~FChange () |
Virtual destructor |
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | AddReferencedObjects
(
FReferenceCollector& Collector |
Used by GC to collect referenced objects. | |
| void | Apply
(
UObject* Object |
Makes the change to the object | |
| TUniquePtr< FChange > | Execute
(
UObject* Object |
Makes the change to the object, returning a new change that can be used to perfectly roll back this change | |
| EChangeStyle | What style of change is this | ||
| bool | HasExpired
(
UObject* Object |
||
| void | PrintToLog
(
FFeedbackContext& FeedbackContext, |
Prints this change to the log, including sub-changes if there are any. | |
| void | Revert
(
UObject* Object |
Reverts change to the object | |
| FString | ToString () |
Describes this change (for debugging) |
Enums
| Type | Name | Description | |
|---|---|---|---|
| EChangeStyle |