diff options
Diffstat (limited to 'src/quick/designer/qquickdesignercustomobjectdata.cpp')
-rw-r--r-- | src/quick/designer/qquickdesignercustomobjectdata.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/quick/designer/qquickdesignercustomobjectdata.cpp b/src/quick/designer/qquickdesignercustomobjectdata.cpp index 59e086b5a3..8989de711e 100644 --- a/src/quick/designer/qquickdesignercustomobjectdata.cpp +++ b/src/quick/designer/qquickdesignercustomobjectdata.cpp @@ -148,7 +148,19 @@ void QQuickDesignerCustomObjectData::populateResetHashes() const QQuickDesignerSupport::PropertyNameList propertyNameList = QQuickDesignerSupportProperties::propertyNameListForWritableProperties(object()); + const QMetaObject *mo = object()->metaObject(); + QByteArrayList deferredPropertyNames; + const int namesIndex = mo->indexOfClassInfo("DeferredPropertyNames"); + if (namesIndex != -1) { + QMetaClassInfo classInfo = mo->classInfo(namesIndex); + deferredPropertyNames = QByteArray(classInfo.value()).split(','); + } + for (const QQuickDesignerSupport::PropertyName &propertyName : propertyNameList) { + + if (deferredPropertyNames.contains(propertyName)) + continue; + QQmlProperty property(object(), QString::fromUtf8(propertyName), QQmlEngine::contextForObject(object())); QQmlAbstractBinding::Ptr binding = QQmlAbstractBinding::Ptr(QQmlPropertyPrivate::binding(property)); |