diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2021-03-23 11:56:40 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2021-03-23 16:09:50 +0100 |
commit | 43df51c2c6589a5fee6be0ef34121bb7186f270e (patch) | |
tree | 698f332988cf9b64c424277c42c622d3f204a666 /src/qmltyperegistrar | |
parent | 4efdc5a7f3b6ad6173e59a3c1256b2dc3f8a1657 (diff) |
qmltyperegistrar: Do not generate read, write, bindable for privates
If the methods are defined on the private class we can in fact not
access them. We'd need a way to retrieve the private class from the
public one.
Change-Id: I654e320a0eb6208a418591e74a7bdd56529daf9d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qmltyperegistrar')
-rw-r--r-- | src/qmltyperegistrar/qmltypescreator.cpp | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/qmltyperegistrar/qmltypescreator.cpp b/src/qmltyperegistrar/qmltypescreator.cpp index a88288585b..4e58ffcf4d 100644 --- a/src/qmltyperegistrar/qmltypescreator.cpp +++ b/src/qmltyperegistrar/qmltypescreator.cpp @@ -174,19 +174,26 @@ void QmlTypesCreator::writeProperties(const QJsonArray &properties, QSet<QString const auto it = obj.find(QLatin1String("revision")); if (it != obj.end()) m_qml.writeScriptBinding(QLatin1String("revision"), QString::number(it.value().toInt())); - const auto bindable = obj.constFind(QLatin1String("bindable")); - if (bindable != obj.constEnd()) - m_qml.writeScriptBinding(QLatin1String("bindable"), enquote(bindable->toString())); - writeType(obj, QLatin1String("type"), !obj.contains(QLatin1String("write")) && !obj.contains(QLatin1String("member")), true); - const auto read = obj.constFind(QLatin1String("read")); - if (read != obj.constEnd()) - m_qml.writeScriptBinding(QLatin1String("read"), enquote(read->toString())); - const auto write = obj.constFind(QLatin1String("write")); - if (write != obj.constEnd()) - m_qml.writeScriptBinding(QLatin1String("write"), enquote(write->toString())); + + writeType(obj, QLatin1String("type"), !obj.contains(QLatin1String("write")) + && !obj.contains(QLatin1String("member")), true); + + if (!obj.contains(QStringLiteral("privateClass"))) { + const auto bindable = obj.constFind(QLatin1String("bindable")); + if (bindable != obj.constEnd()) + m_qml.writeScriptBinding(QLatin1String("bindable"), enquote(bindable->toString())); + const auto read = obj.constFind(QLatin1String("read")); + if (read != obj.constEnd()) + m_qml.writeScriptBinding(QLatin1String("read"), enquote(read->toString())); + const auto write = obj.constFind(QLatin1String("write")); + if (write != obj.constEnd()) + m_qml.writeScriptBinding(QLatin1String("write"), enquote(write->toString())); + } + const auto required = obj.constFind(QLatin1String("required")); if (required != obj.constEnd() && required->toBool()) m_qml.writeScriptBinding(QLatin1String("isRequired"), QLatin1String("true")); + m_qml.writeEndObject(); const QString notify = obj[QLatin1String("notify")].toString(); |