diff options
author | Fabian Kosmale <fabian.kosmale@qt.io> | 2019-08-05 16:03:58 +0200 |
---|---|---|
committer | Fabian Kosmale <fabian.kosmale@qt.io> | 2019-08-19 11:38:24 +0000 |
commit | 1c59558b03715c6be46650489547c5f9d60d3464 (patch) | |
tree | ed259466b692e52fd102cc0cbf2320361d3c9169 /src/quick/items | |
parent | 06f5b386e69a9e8c8ad3dfbdea44d18d912c23ea (diff) |
Introduce functions to set properties during creation
Change-Id: Idd4c8ab9e34b9bc3e00f21d7cf1e4f1a70586e7f
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/quick/items')
-rw-r--r-- | src/quick/items/qquickview.cpp | 18 | ||||
-rw-r--r-- | src/quick/items/qquickview.h | 1 | ||||
-rw-r--r-- | src/quick/items/qquickview_p.h | 2 |
3 files changed, 20 insertions, 1 deletions
diff --git a/src/quick/items/qquickview.cpp b/src/quick/items/qquickview.cpp index 61477360bf..17fc16d44b 100644 --- a/src/quick/items/qquickview.cpp +++ b/src/quick/items/qquickview.cpp @@ -240,6 +240,22 @@ void QQuickView::setSource(const QUrl& url) } /*! + Sets the initial properties with which the QML component gets initialized after + calling \l QQuickView::setSource. + + + Note that you can only use this function to initialize toplevel properties. + + \sa QQmlComponent::createWithInitialProperties + \since 5.14 +*/ +void QQuickView::setInitialProperties(const QVariantMap &initialProperties) +{ + Q_D(QQuickView); + d->initialProperties = initialProperties; +} + +/*! \internal Set the source \a url, \a component and content \a item (root of the QML object hierarchy) directly. @@ -471,7 +487,7 @@ void QQuickView::continueExecute() return; } - QObject *obj = d->component->create(); + QObject *obj = d->initialProperties.empty() ? d->component->create() : d->component->createWithInitialProperties(d->initialProperties); if (d->component->isError()) { const QList<QQmlError> errorList = d->component->errors(); diff --git a/src/quick/items/qquickview.h b/src/quick/items/qquickview.h index ecae25e90b..4122fcac79 100644 --- a/src/quick/items/qquickview.h +++ b/src/quick/items/qquickview.h @@ -88,6 +88,7 @@ public: public Q_SLOTS: void setSource(const QUrl&); + void setInitialProperties(const QVariantMap &initialProperties); void setContent(const QUrl& url, QQmlComponent *component, QObject *item); Q_SIGNALS: diff --git a/src/quick/items/qquickview_p.h b/src/quick/items/qquickview_p.h index 3f284c0519..b1ab8d8e8c 100644 --- a/src/quick/items/qquickview_p.h +++ b/src/quick/items/qquickview_p.h @@ -108,6 +108,8 @@ public: QQuickView::ResizeMode resizeMode; QSize initialSize; QElapsedTimer frameTimer; + + QVariantMap initialProperties; }; QT_END_NAMESPACE |