From bfd1df3015404725d37a54bcb4ac3c24a87ce8c8 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Fri, 9 Dec 2016 10:12:33 +0100 Subject: 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 --- src/quick/items/qquickview.cpp | 10 ++++++++++ src/quick/items/qquickview.h | 1 + src/quick/items/qquickwindow.cpp | 10 +++++++++- src/quick/items/qquickwindow.h | 1 + 4 files changed, 21 insertions(+), 1 deletion(-) (limited to 'src/quick/items') 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 @@ -197,6 +197,16 @@ QQuickView::QQuickView(QQmlEngine* engine, QWindow *parent) d_func()->init(engine); } +/*! + \internal +*/ +QQuickView::QQuickView(const QUrl &source, QQuickRenderControl *control) + : QQuickWindow(*(new QQuickViewPrivate), control) +{ + d_func()->init(); + setSource(source); +} + /*! Destroys the 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; -- cgit v1.2.3