Overview
I have a class (deriving from AActor
) which makes use of PostEditChangeChainProperty
to keep up with changes made to a TArray
of objects in the editor.
As nice as this is, I also need a way to discard changes made this way BEFORE my data has actually been changed, and possibly even a way to revert the details panel to it’s prior state, letting users know that such a change is not allowed.
I took a look around and found the PropagatePreEditChange
and PropagatePostEditChange
methods.
After reviewing the source code, it would seem that these methods are exactly what I’m looking for, but I can’t seem to find a way to override or implement them into my class. The original method definitions aren’t marked as virtual
, and in UObject.h
it comments Non virtual functions, not intended to be overridden
above them.
Google was useless in researching these methods, so it appears I’m at a loss with them.
I also noticed PreEditChange
, which is actually called from PropagatePreEditChange
. The issue I find with this method is that it only seems to notify you when a property is about to change, but doesn’t seem to provide a way to prevent or revert changes. I’m assuming that PreEditUndo
is tied to this, but I can’t find enough information.
Question (TL;DR)
So, does anyone know the proper way to monitor and revert property changes made to an array in the editor details panel?