aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickview.cpp
diff options
context:
space:
mode:
authorRobin Burchell <robin.burchell@viroteck.net>2015-02-02 22:17:41 +0100
committerRobin Burchell <robin.burchell@viroteck.net>2015-02-23 12:43:06 +0000
commit59f6a78b5fddf71f2c98e8b67e093b7e8d1cb3d3 (patch)
treebc15cfb2c2ebe45af2958e12358b7d565d4e8fdc /src/quick/items/qquickview.cpp
parent4db31cbd4e29cf5387f4332537f8ea9e0e9f62ae (diff)
QQuickView/QQuickWidget: Report an error if rootObject ends up null.
This can happen when trying to use a non-QQuickItem item as the root item in a QQuickView, for instance, a Window or ApplicationWindow item. This generates a warning (correctly), but does not set an error state on the view, so automated tooling and the like does not know that the scene was not successfully loaded. Change-Id: I1dc4191ef07187e9b1929995aedb01c155b0957c Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Diffstat (limited to 'src/quick/items/qquickview.cpp')
-rw-r--r--src/quick/items/qquickview.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/quick/items/qquickview.cpp b/src/quick/items/qquickview.cpp
index 5b5413a4ba..a463f0a554 100644
--- a/src/quick/items/qquickview.cpp
+++ b/src/quick/items/qquickview.cpp
@@ -345,6 +345,9 @@ QQuickView::Status QQuickView::status() const
if (!d->component)
return QQuickView::Null;
+ if (d->component->status() == QQmlComponent::Ready && !d->root)
+ return QQuickView::Error;
+
return QQuickView::Status(d->component->status());
}
@@ -364,6 +367,10 @@ QList<QQmlError> QQuickView::errors() const
QQmlError error;
error.setDescription(QLatin1String("QQuickView: invalid qml engine."));
errs << error;
+ } else if (d->component->status() == QQmlComponent::Ready && !d->root) {
+ QQmlError error;
+ error.setDescription(QLatin1String("QQuickView: invalid root object."));
+ errs << error;
}
return errs;