aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/qmltyperegistrar/qmltypesclassdescription.cpp10
-rw-r--r--src/qmltyperegistrar/qmltypesclassdescription.h1
-rw-r--r--src/qmltyperegistrar/qmltypescreator.cpp3
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));