aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmltyperegistrar
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2021-03-23 11:56:40 +0100
committerUlf Hermann <ulf.hermann@qt.io>2021-03-23 16:09:50 +0100
commit43df51c2c6589a5fee6be0ef34121bb7186f270e (patch)
tree698f332988cf9b64c424277c42c622d3f204a666 /src/qmltyperegistrar
parent4efdc5a7f3b6ad6173e59a3c1256b2dc3f8a1657 (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.cpp27
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();