diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-12-09 10:12:33 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-01-08 12:32:29 +0000 |
commit | bfd1df3015404725d37a54bcb4ac3c24a87ce8c8 (patch) | |
tree | da8adae436c1dfde8bd8a20c6def3f86ae7cd6c7 | |
parent | c0250b67e42afc20734e39045966c97a6d421e5a (diff) |
QQuickView: add a constructor for QQuickRenderControl
With a plain QQuickWindow one had to do quite a bit of extra work in
terms of setting up the QML engine, creating a QML component, creating
an instance and reparenting it, and setting an incubation controller
on the view.
Change-Id: Icb77ad9491473d4dfca64d23de4fa0d429c7a227
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
-rw-r--r-- | src/quick/items/qquickview.cpp | 10 | ||||
-rw-r--r-- | src/quick/items/qquickview.h | 1 | ||||
-rw-r--r-- | src/quick/items/qquickwindow.cpp | 10 | ||||
-rw-r--r-- | src/quick/items/qquickwindow.h | 1 |
4 files changed, 21 insertions, 1 deletions
diff --git a/src/quick/items/qquickview.cpp b/src/quick/items/qquickview.cpp index fca1805fc9..9a29d6c2ca 100644 --- a/src/quick/items/qquickview.cpp +++ b/src/quick/items/qquickview.cpp @@ -198,6 +198,16 @@ QQuickView::QQuickView(QQmlEngine* engine, QWindow *parent) } /*! + \internal +*/ +QQuickView::QQuickView(const QUrl &source, QQuickRenderControl *control) + : QQuickWindow(*(new QQuickViewPrivate), control) +{ + d_func()->init(); + setSource(source); +} + +/*! Destroys the QQuickView. */ QQuickView::~QQuickView() diff --git a/src/quick/items/qquickview.h b/src/quick/items/qquickview.h index 014d02e7f5..006a691387 100644 --- a/src/quick/items/qquickview.h +++ b/src/quick/items/qquickview.h @@ -62,6 +62,7 @@ public: explicit QQuickView(QWindow *parent = nullptr); QQuickView(QQmlEngine* engine, QWindow *parent); explicit QQuickView(const QUrl &source, QWindow *parent = nullptr); + QQuickView(const QUrl &source, QQuickRenderControl *renderControl); virtual ~QQuickView(); QUrl source() const; diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index caae188ed8..20a37e3dd9 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -1288,7 +1288,15 @@ QQuickWindow::QQuickWindow(QQuickRenderControl *control) d->init(this, control); } - +/*! + \internal +*/ +QQuickWindow::QQuickWindow(QQuickWindowPrivate &dd, QQuickRenderControl *control) + : QWindow(dd, 0) +{ + Q_D(QQuickWindow); + d->init(this, control); +} /*! Destroys the window. diff --git a/src/quick/items/qquickwindow.h b/src/quick/items/qquickwindow.h index e5b54c8fb9..06af7bbf02 100644 --- a/src/quick/items/qquickwindow.h +++ b/src/quick/items/qquickwindow.h @@ -204,6 +204,7 @@ public Q_SLOTS: protected: QQuickWindow(QQuickWindowPrivate &dd, QWindow *parent = nullptr); + QQuickWindow(QQuickWindowPrivate &dd, QQuickRenderControl *control); void exposeEvent(QExposeEvent *) override; void resizeEvent(QResizeEvent *) override; |