diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/quick/items/qquickview.cpp | 25 | ||||
-rw-r--r-- | src/quick/items/qquickview.h | 2 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/quick/items/qquickview.cpp b/src/quick/items/qquickview.cpp index 7182e74c0c..befba37515 100644 --- a/src/quick/items/qquickview.cpp +++ b/src/quick/items/qquickview.cpp @@ -236,6 +236,31 @@ void QQuickView::setSource(const QUrl& url) } /*! + \internal + + Set the source \a url, \a component and content \a item (root of the QML object hierarchy) directly. + */ +void QQuickView::setContent(const QUrl& url, QQmlComponent *component, QObject* item) +{ + Q_D(QQuickView); + d->source = url; + d->component = component; + + if (d->component && d->component->isError()) { + QList<QQmlError> errorList = d->component->errors(); + foreach (const QQmlError &error, errorList) { + QMessageLogger(error.url().toString().toLatin1().constData(), error.line(), 0).warning() + << error; + } + emit statusChanged(status()); + return; + } + + d->setRootObject(item); + emit statusChanged(status()); +} + +/*! Returns the source URL, if set. \sa setSource() diff --git a/src/quick/items/qquickview.h b/src/quick/items/qquickview.h index 756890e7ec..4a885bc993 100644 --- a/src/quick/items/qquickview.h +++ b/src/quick/items/qquickview.h @@ -54,6 +54,7 @@ class QQmlEngine; class QQmlContext; class QQmlError; class QQuickItem; +class QQmlComponent; class QQuickViewPrivate; class Q_QUICK_EXPORT QQuickView : public QQuickWindow @@ -90,6 +91,7 @@ public: public Q_SLOTS: void setSource(const QUrl&); + void setContent(const QUrl& url, QQmlComponent *component, QObject *item); Q_SIGNALS: void statusChanged(QQuickView::Status); |