diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2021-05-12 13:58:33 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2021-05-12 23:44:39 +0200 |
commit | 7690240e00b185327b9a6f660366a698f99b78db (patch) | |
tree | 14b53e2f6e1a4ba8e1a5e5f35c2008057b857661 /src/qmltyperegistrar | |
parent | d760cc22b38e7b96da5ac3507f6ee2eba71f8375 (diff) |
qmltyperegistrar: Refactor generation of readonly attribute
It only makes sense for properties. There is no need to pass false to
all the writeType() calls.
Change-Id: Ib49a033d0bddbbeb4391ce27197134d8f024654f
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qmltyperegistrar')
-rw-r--r-- | src/qmltyperegistrar/qmltypescreator.cpp | 15 | ||||
-rw-r--r-- | src/qmltyperegistrar/qmltypescreator.h | 3 |
2 files changed, 8 insertions, 10 deletions
diff --git a/src/qmltyperegistrar/qmltypescreator.cpp b/src/qmltyperegistrar/qmltypescreator.cpp index ce67db1a2e..302689dfb7 100644 --- a/src/qmltyperegistrar/qmltypescreator.cpp +++ b/src/qmltyperegistrar/qmltypescreator.cpp @@ -112,8 +112,7 @@ void QmlTypesCreator::writeClassProperties(const QmlTypesClassDescription &colle m_qml.writeScriptBinding(QLatin1String("attachedType"), enquote(collector.attachedType)); } -void QmlTypesCreator::writeType(const QJsonObject &property, const QString &key, bool isReadonly, - bool parsePointer) +void QmlTypesCreator::writeType(const QJsonObject &property, const QString &key, bool parsePointer) { auto it = property.find(key); if (it == property.end()) @@ -161,8 +160,6 @@ void QmlTypesCreator::writeType(const QJsonObject &property, const QString &key, const QLatin1String trueString("true"); if (isList) m_qml.writeScriptBinding(QLatin1String("isList"), trueString); - if (isReadonly) - m_qml.writeScriptBinding(QLatin1String("isReadonly"), trueString); if (isPointer) m_qml.writeScriptBinding(QLatin1String("isPointer"), trueString); } @@ -178,8 +175,7 @@ void QmlTypesCreator::writeProperties(const QJsonArray &properties) if (it != obj.end()) m_qml.writeScriptBinding(QLatin1String("revision"), QString::number(it.value().toInt())); - writeType(obj, QLatin1String("type"), !obj.contains(QLatin1String("write")) - && !obj.contains(QLatin1String("member")), true); + writeType(obj, QLatin1String("type"), true); if (!obj.contains(QStringLiteral("privateClass"))) { const auto bindable = obj.constFind(QLatin1String("bindable")); @@ -193,6 +189,9 @@ void QmlTypesCreator::writeProperties(const QJsonArray &properties) m_qml.writeScriptBinding(QLatin1String("write"), enquote(write->toString())); } + if (!obj.contains(QLatin1String("write")) && !obj.contains(QLatin1String("member"))) + m_qml.writeScriptBinding(QLatin1String("isReadonly"), QLatin1String("true")); + const auto required = obj.constFind(QLatin1String("required")); if (required != obj.constEnd() && required->toBool()) m_qml.writeScriptBinding(QLatin1String("isRequired"), QLatin1String("true")); @@ -216,7 +215,7 @@ void QmlTypesCreator::writeMethods(const QJsonArray &methods, const QString &typ m_qml.writeScriptBinding(QLatin1String("name"), enquote(name)); if (revision != obj.end()) m_qml.writeScriptBinding(QLatin1String("revision"), QString::number(revision.value().toInt())); - writeType(obj, QLatin1String("returnType"), false, false); + writeType(obj, QLatin1String("returnType"), false); const auto isConstructor = obj.find(QLatin1String("isConstructor")); if (isConstructor != obj.constEnd() && isConstructor->toBool()) m_qml.writeScriptBinding(QLatin1String("isConstructor"), QLatin1String("true")); @@ -226,7 +225,7 @@ void QmlTypesCreator::writeMethods(const QJsonArray &methods, const QString &typ const QString name = obj[QLatin1String("name")].toString(); if (!name.isEmpty()) m_qml.writeScriptBinding(QLatin1String("name"), enquote(name)); - writeType(obj, QLatin1String("type"), false, true); + writeType(obj, QLatin1String("type"), true); m_qml.writeEndObject(); } m_qml.writeEndObject(); diff --git a/src/qmltyperegistrar/qmltypescreator.h b/src/qmltyperegistrar/qmltypescreator.h index 045707af0a..0908a1e047 100644 --- a/src/qmltyperegistrar/qmltypescreator.h +++ b/src/qmltyperegistrar/qmltypescreator.h @@ -50,8 +50,7 @@ public: private: void writeClassProperties(const QmlTypesClassDescription &collector); - void writeType(const QJsonObject &property, const QString &key, bool isReadonly, - bool parsePointer); + void writeType(const QJsonObject &property, const QString &key, bool parsePointer); void writeProperties(const QJsonArray &properties); void writeMethods(const QJsonArray &methods, const QString &type); void writeEnums(const QJsonArray &enums); |