diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/qmltyperegistrar/qmltypesclassdescription.cpp | 10 | ||||
-rw-r--r-- | src/qmltyperegistrar/qmltypesclassdescription.h | 1 | ||||
-rw-r--r-- | src/qmltyperegistrar/qmltypescreator.cpp | 3 |
3 files changed, 12 insertions, 2 deletions
diff --git a/src/qmltyperegistrar/qmltypesclassdescription.cpp b/src/qmltyperegistrar/qmltypesclassdescription.cpp index 2214758f38..2529951d7e 100644 --- a/src/qmltyperegistrar/qmltypesclassdescription.cpp +++ b/src/qmltyperegistrar/qmltypesclassdescription.cpp @@ -179,8 +179,14 @@ void QmlTypesClassDescription::collect(const QJsonObject *classDef, if (className.isEmpty() && mode == TopLevel) className = classDef->value(QLatin1String("qualifiedClassName")).toString(); - // If it's not a QObject, it's not creatable - isCreatable = isCreatable && classDef->value(QLatin1String("object")).toBool(); + if (classDef->value(QLatin1String("object")).toBool()) { + accessSemantics = QLatin1String("reference"); + } else { + isCreatable = false; + accessSemantics = classDef->value(QLatin1String("gadget")).toBool() + ? QLatin1String("value") + : QLatin1String("none"); + } } void QmlTypesClassDescription::collectAttached(const QString &attached, diff --git a/src/qmltyperegistrar/qmltypesclassdescription.h b/src/qmltyperegistrar/qmltypesclassdescription.h index ed4ba49592..60f7c92893 100644 --- a/src/qmltyperegistrar/qmltypesclassdescription.h +++ b/src/qmltyperegistrar/qmltypesclassdescription.h @@ -44,6 +44,7 @@ struct QmlTypesClassDescription QString defaultProp; QString superClass; QString attachedType; + QString accessSemantics; QList<QTypeRevision> revisions; QTypeRevision addedInRevision; QTypeRevision removedInRevision; diff --git a/src/qmltyperegistrar/qmltypescreator.cpp b/src/qmltyperegistrar/qmltypescreator.cpp index a9885b03fa..d74d59062f 100644 --- a/src/qmltyperegistrar/qmltypescreator.cpp +++ b/src/qmltyperegistrar/qmltypescreator.cpp @@ -50,6 +50,9 @@ void QmlTypesCreator::writeClassProperties(const QmlTypesClassDescription &colle m_qml.writeScriptBinding(QLatin1String("file"), enquote(collector.file)); m_qml.writeScriptBinding(QLatin1String("name"), enquote(collector.className)); + if (!collector.accessSemantics.isEmpty()) + m_qml.writeScriptBinding(QLatin1String("accessSemantics"), enquote(collector.accessSemantics)); + if (!collector.defaultProp.isEmpty()) m_qml.writeScriptBinding(QLatin1String("defaultProperty"), enquote(collector.defaultProp)); |