UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TransactionObjectEvent.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6#include "Misc/Guid.h"
7#include "UObject/NameTypes.h"
10
12
57
62{
63public:
65
67 {
69 }
70
80
82
92
94 {
95 Exchange(ObjectPackageName, Other.ObjectPackageName);
96 Exchange(ObjectName, Other.ObjectName);
97 Exchange(ObjectPathName, Other.ObjectPathName);
98 Exchange(ObjectOuterPathName, Other.ObjectOuterPathName);
99 Exchange(ObjectExternalPackageName, Other.ObjectExternalPackageName);
100 Exchange(ObjectClassPathName, Other.ObjectClassPathName);
101 }
102
104 {
105 // The other fields are subsets of this data
106 return LHS.ObjectPathName == RHS.ObjectPathName
107 && LHS.ObjectExternalPackageName == RHS.ObjectExternalPackageName
108 && LHS.ObjectClassPathName == RHS.ObjectClassPathName;
109 }
110
112 {
113 return !(LHS == RHS);
114 }
115
117 {
118 return GetTypeHash(Id.ObjectPathName);
119 }
120
123
126
129
132
135
138};
139
152
161
164{
166 UndoRedo,
168 Finalized,
170 Snapshot,
171};
172
181{
182public:
184
186 : TransactionId(InTransactionId)
187 , OperationId(InOperationId)
188 , EventType(InEventType)
189 , ObjectChangeCreatedBy(InObjectChangeCreatedBy)
190 , ObjectChange(InObjectChange)
191 , Annotation(InAnnotation)
192 {
193 check(TransactionId.IsValid());
194 check(OperationId.IsValid());
195 }
196
198 const FGuid& GetTransactionId() const
199 {
200 return TransactionId;
201 }
202
204 const FGuid& GetOperationId() const
205 {
206 return OperationId;
207 }
208
211 {
212 return EventType;
213 }
214
217 {
218 return ObjectChangeCreatedBy;
219 }
220
223 {
224 return ObjectChange.DeltaChange.bHasPendingKillChange;
225 }
226
228 bool HasNameChange() const
229 {
230 return ObjectChange.DeltaChange.bHasNameChange;
231 }
232
235 {
236 return ObjectChange.OriginalId;
237 }
238
241 {
242 return ObjectChange.OriginalObjectFlags;
243 }
244
247 {
248 return ObjectChange.OriginalId.ObjectPackageName;
249 }
250
253 {
254 return ObjectChange.OriginalId.ObjectName;
255 }
256
259 {
260 return ObjectChange.OriginalId.ObjectPathName;
261 }
262
264 {
265 return ObjectChange.OriginalId.ObjectClassPathName;
266 }
267
269 bool HasOuterChange() const
270 {
271 return ObjectChange.DeltaChange.bHasOuterChange;
272 }
273
276 {
277 return ObjectChange.DeltaChange.bHasExternalPackageChange;
278 }
279
282 {
283 return ObjectChange.OriginalId.ObjectOuterPathName;
284 }
285
291
294 {
295 return ObjectChange.DeltaChange.bHasNameChange || ObjectChange.DeltaChange.bHasOuterChange || ObjectChange.DeltaChange.bHasExternalPackageChange || ObjectChange.DeltaChange.bHasPendingKillChange;
296 }
297
299 bool HasNonPropertyChanges(const bool InSerializationOnly = false) const
300 {
302 }
303
306 {
307 return ObjectChange.DeltaChange.ChangedProperties.Num() > 0;
308 }
309
312 {
313 return ObjectChange.DeltaChange.ChangedProperties;
314 }
315
318 {
319 return Annotation;
320 }
321
324 {
326 {
327 EventType = InOther.EventType;
328 }
329
330 ObjectChange.DeltaChange.Merge(InOther.ObjectChange.DeltaChange);
331 }
332
333private:
334 FGuid TransactionId;
335 FGuid OperationId;
338 FTransactionObjectChange ObjectChange;
340};
341
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EObjectFlags
Definition ObjectMacros.h:552
@ RF_NoFlags
No flags, used to avoid a cast.
Definition ObjectMacros.h:555
ETransactionObjectChangeCreatedBy
Definition TransactionObjectEvent.h:155
ETransactionObjectEventType
Definition TransactionObjectEvent.h:164
UE_REWRITE constexpr void Exchange(T &A, T &B)
Definition UnrealTemplate.h:627
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NameTypes.h:617
Definition TransactionObjectEvent.h:181
FName GetOriginalObjectPathName() const
Definition TransactionObjectEvent.h:258
bool HasPendingKillChange() const
Definition TransactionObjectEvent.h:222
const FTransactionObjectId & GetOriginalObjectId() const
Definition TransactionObjectEvent.h:234
void Merge(const FTransactionObjectEvent &InOther)
Definition TransactionObjectEvent.h:323
bool HasExternalPackageChange() const
Definition TransactionObjectEvent.h:275
bool HasNameChange() const
Definition TransactionObjectEvent.h:228
FName GetOriginalObjectExternalPackageName() const
Definition TransactionObjectEvent.h:287
bool HasPropertyChanges() const
Definition TransactionObjectEvent.h:305
FName GetOriginalObjectName() const
Definition TransactionObjectEvent.h:252
FName GetOriginalObjectOuterPathName() const
Definition TransactionObjectEvent.h:281
ETransactionObjectEventType GetEventType() const
Definition TransactionObjectEvent.h:210
bool HasNonPropertyChanges(const bool InSerializationOnly=false) const
Definition TransactionObjectEvent.h:299
FTransactionObjectEvent(const FGuid &InTransactionId, const FGuid &InOperationId, const ETransactionObjectEventType InEventType, const ETransactionObjectChangeCreatedBy InObjectChangeCreatedBy, const FTransactionObjectChange &InObjectChange, const TSharedPtr< ITransactionObjectAnnotation > &InAnnotation)
Definition TransactionObjectEvent.h:185
bool HasOuterChange() const
Definition TransactionObjectEvent.h:269
ETransactionObjectChangeCreatedBy GetObjectChangeCreatedBy() const
Definition TransactionObjectEvent.h:216
FName GetOriginalObjectClassPathName() const
Definition TransactionObjectEvent.h:263
EObjectFlags GetOriginalObjectFlags() const
Definition TransactionObjectEvent.h:240
TSharedPtr< ITransactionObjectAnnotation > GetAnnotation() const
Definition TransactionObjectEvent.h:317
bool HasIdOrPendingKillChanges() const
Definition TransactionObjectEvent.h:293
FTransactionObjectEvent()=default
const TArray< FName > & GetChangedProperties() const
Definition TransactionObjectEvent.h:311
FName GetOriginalObjectPackageName() const
Definition TransactionObjectEvent.h:246
const FGuid & GetOperationId() const
Definition TransactionObjectEvent.h:204
const FGuid & GetTransactionId() const
Definition TransactionObjectEvent.h:198
Definition ITransactionObjectAnnotation.h:19
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_FORCEINLINE_HINT SizeType AddUnique(ElementType &&Item)
Definition Array.h:2993
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition Object.h:95
@ false
Definition radaudio_common.h:23
Definition Guid.h:109
bool IsValid() const
Definition Guid.h:318
Definition TransactionObjectEvent.h:346
FGuid TransactionId
Definition TransactionObjectEvent.h:347
FString TransactionTitle
Definition TransactionObjectEvent.h:348
TMap< FName, TSharedPtr< FTransactionObjectEvent > > DiffMap
Definition TransactionObjectEvent.h:349
Definition TransactionObjectEvent.h:142
FTransactionObjectDeltaChange DeltaChange
Definition TransactionObjectEvent.h:150
FTransactionObjectId OriginalId
Definition TransactionObjectEvent.h:144
EObjectFlags OriginalObjectFlags
Definition TransactionObjectEvent.h:147
Definition TransactionObjectEvent.h:15
void Merge(const FTransactionObjectDeltaChange &InOther)
Definition TransactionObjectEvent.h:30
bool HasChanged() const
Definition TransactionObjectEvent.h:25
bool bHasPendingKillChange
Definition TransactionObjectEvent.h:51
bool bHasNameChange
Definition TransactionObjectEvent.h:45
bool bHasNonPropertyChanges
Definition TransactionObjectEvent.h:53
TArray< FName > ChangedProperties
Definition TransactionObjectEvent.h:55
bool bHasExternalPackageChange
Definition TransactionObjectEvent.h:49
FTransactionObjectDeltaChange()
Definition TransactionObjectEvent.h:16
bool bHasOuterChange
Definition TransactionObjectEvent.h:47
Definition TransactionObjectEvent.h:62
FName ObjectPackageName
Definition TransactionObjectEvent.h:122
FName ObjectName
Definition TransactionObjectEvent.h:125
FTransactionObjectId(const FName InObjectPackageName, const FName InObjectName, const FName InObjectPathName, const FName InObjectOuterPathName, const FName InObjectExternalPackageName, const FName InObjectClassPathName)
Definition TransactionObjectEvent.h:71
friend bool operator==(const FTransactionObjectId &LHS, const FTransactionObjectId &RHS)
Definition TransactionObjectEvent.h:103
FTransactionObjectId()=default
FName ObjectExternalPackageName
Definition TransactionObjectEvent.h:134
FTransactionObjectId(const UObject *Object)
Definition TransactionObjectEvent.h:66
FName ObjectClassPathName
Definition TransactionObjectEvent.h:137
FName ObjectOuterPathName
Definition TransactionObjectEvent.h:131
friend uint32 GetTypeHash(const FTransactionObjectId &Id)
Definition TransactionObjectEvent.h:116
COREUOBJECT_API void SetObject(const UObject *Object)
Definition TransactionObjectEvent.cpp:9
FName ObjectPathName
Definition TransactionObjectEvent.h:128
void Swap(FTransactionObjectId &Other)
Definition TransactionObjectEvent.h:93
friend bool operator!=(const FTransactionObjectId &LHS, const FTransactionObjectId &RHS)
Definition TransactionObjectEvent.h:111
void Reset()
Definition TransactionObjectEvent.h:83