diff options
author | Fabian Kosmale <fabian.kosmale@qt.io> | 2021-04-27 14:56:35 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-04-27 15:06:17 +0000 |
commit | 2574c0cba6a243b90c161b4e91c91cfa15502e98 (patch) | |
tree | fcbf76d7f2c4f31f0e722ef26ff70fc6f3d3f591 /src | |
parent | 5e6028e88b74dea1f46a4807da898ad83584b3d5 (diff) |
QQmlComponentPrivate::setInitialProperty: improve error message
We can discern between the case where the property does not exist at
all, and the case where we cannot set it.
Change-Id: Ia2e8f4cc077a00b90d720db01bff1542a812dea0
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit 7275328b967582010abfd59c9a93feef4cb1379f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/qml/qqmlcomponent.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/qml/qml/qqmlcomponent.cpp b/src/qml/qml/qqmlcomponent.cpp index f35c3011d3..b44ad83b6e 100644 --- a/src/qml/qml/qqmlcomponent.cpp +++ b/src/qml/qml/qqmlcomponent.cpp @@ -375,10 +375,15 @@ bool QQmlComponentPrivate::setInitialProperty(QObject *component, const QString& { QQmlProperty prop = QQmlComponentPrivate::removePropertyFromRequired(component, name, requiredProperties()); QQmlPropertyPrivate *privProp = QQmlPropertyPrivate::get(prop); - if (!prop.isValid() || !privProp->writeValueProperty(value, {})) { + const bool isValid = prop.isValid(); + if (!isValid || !privProp->writeValueProperty(value, {})) { QQmlError error{}; error.setUrl(url); - error.setDescription(QLatin1String("Could not set property %1").arg(name)); + if (isValid) + error.setDescription(QLatin1String("Could not set initial property %1").arg(name)); + else + error.setDescription(QLatin1String("Setting initial properties failed: %2 does not have a property called %1").arg(name, + QQmlMetaType::prettyTypeName(component))); state.errors.push_back(error); return false; } else |