diff --git a/src/corelib/kernel/qproperty_p.h b/src/corelib/kernel/qproperty_p.h index f4fee1befba..1e6dab4c643 100644 --- a/src/corelib/kernel/qproperty_p.h +++ b/src/corelib/kernel/qproperty_p.h @@ -504,6 +504,16 @@ public: } } + void removeBindingUnlessInWrapper() + { + QBindingStorage *storage = qGetBindingStorage(owner()); + auto *bd = storage->bindingData(this); + // make sure we don't remove the binding if called from the bindingWrapper + const bool inWrapper = inBindingWrapper(storage); + if (bd && !inWrapper) + bd->removeBinding(); + } + QPropertyBinding binding() const { auto *bd = qGetBindingStorage(owner())->bindingData(this);