diff options
Diffstat (limited to 'src/quick/designer/qquickdesignersupportitems.cpp')
-rw-r--r-- | src/quick/designer/qquickdesignersupportitems.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/quick/designer/qquickdesignersupportitems.cpp b/src/quick/designer/qquickdesignersupportitems.cpp index 9fadbb2122..82474827aa 100644 --- a/src/quick/designer/qquickdesignersupportitems.cpp +++ b/src/quick/designer/qquickdesignersupportitems.cpp @@ -94,11 +94,24 @@ static void allSubObjects(QObject *object, QObjectList &objectList) objectList.append(object); + const QMetaObject *mo = object->metaObject(); + + QStringList deferredPropertyNames; + const int namesIndex = mo->indexOfClassInfo("DeferredPropertyNames"); + if (namesIndex != -1) { + QMetaClassInfo classInfo = mo->classInfo(namesIndex); + deferredPropertyNames = QString::fromUtf8(classInfo.value()).split(QLatin1Char(',')); + } + for (int index = QObject::staticMetaObject.propertyOffset(); index < object->metaObject()->propertyCount(); index++) { + QMetaProperty metaProperty = object->metaObject()->property(index); + if (deferredPropertyNames.contains(metaProperty.name())) + continue; + // search recursive in property objects if (metaProperty.isReadable() && metaProperty.isWritable() |