aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-12-09 10:12:33 +0100
committerLiang Qi <liang.qi@qt.io>2018-01-08 12:32:29 +0000
commitbfd1df3015404725d37a54bcb4ac3c24a87ce8c8 (patch)
treeda8adae436c1dfde8bd8a20c6def3f86ae7cd6c7
parentc0250b67e42afc20734e39045966c97a6d421e5a (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.cpp10
-rw-r--r--src/quick/items/qquickview.h1
-rw-r--r--src/quick/items/qquickwindow.cpp10
-rw-r--r--src/quick/items/qquickwindow.h1
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;