diff options
author | Jocelyn Turcotte <jocelyn.turcotte@digia.com> | 2014-07-07 18:12:15 +0200 |
---|---|---|
committer | Jocelyn Turcotte <jocelyn.turcotte@digia.com> | 2014-08-04 08:45:25 +0200 |
commit | 1c2a4da1c73bfc2456c59146ce615b7e2122e90e (patch) | |
tree | 7690eee799b00b177dc03e1e64706a108bb99abd /src/webengine | |
parent | ddd8ab311271b59514ce0748301e634ca988b62b (diff) |
Don't inherit from Qt private types
Do the d_ptr magic ourselves to avoid having to include private
headers from qtcore, qtgui and qtdeclarative.
It is hackish to hide QObject's d_ptr member to have the macros
working in a public class, but if anything goes wrong we just
need to replace the private macro convenience while maintaining
the binary compatibility of the stored extra opaque pointer.
Change-Id: Idb92f4f902826bef9068a5c2ef6ea31fc3fa15b2
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Diffstat (limited to 'src/webengine')
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 8 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview_p.h | 2 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview_p_p.h | 4 | ||||
-rw-r--r-- | src/webengine/render_widget_host_view_qt_delegate_quick.cpp | 1 |
4 files changed, 10 insertions, 5 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index cbd45842d..ad57f24ba 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -384,8 +384,9 @@ QObject *QQuickWebEngineViewPrivate::accessibilityParentObject() void QQuickWebEngineViewPrivate::setDevicePixelRatio(qreal devicePixelRatio) { + Q_Q(QQuickWebEngineView); this->devicePixelRatio = devicePixelRatio; - QScreen *screen = window ? window->screen() : QGuiApplication::primaryScreen(); + QScreen *screen = q->window() ? q->window()->screen() : QGuiApplication::primaryScreen(); m_dpiScale = devicePixelRatio / screen->devicePixelRatio(); } @@ -463,10 +464,11 @@ void QQuickWebEngineViewPrivate::adoptWebContents(WebContentsAdapter *webContent } QQuickWebEngineView::QQuickWebEngineView(QQuickItem *parent) - : QQuickItem(*(new QQuickWebEngineViewPrivate), parent) + : QQuickItem(parent) + , d_ptr(new QQuickWebEngineViewPrivate) { Q_D(QQuickWebEngineView); - d->e->q_ptr = this; + d->e->q_ptr = d->q_ptr = this; d->adapter->initialize(d); this->setActiveFocusOnTab(true); this->setFlag(QQuickItem::ItemIsFocusScope); diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h index c03f1ec59..12b9ee163 100644 --- a/src/webengine/api/qquickwebengineview_p.h +++ b/src/webengine/api/qquickwebengineview_p.h @@ -132,6 +132,8 @@ protected: private: Q_DECLARE_PRIVATE(QQuickWebEngineView) + QScopedPointer<QQuickWebEngineViewPrivate> d_ptr; + friend class QQuickWebEngineViewExperimental; friend class QQuickWebEngineViewExperimentalExtension; friend class QQuickWebEngineNewViewRequest; diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h index e4a315d1a..25b20a0e8 100644 --- a/src/webengine/api/qquickwebengineview_p_p.h +++ b/src/webengine/api/qquickwebengineview_p_p.h @@ -49,7 +49,6 @@ #include <QSharedData> #include <QString> #include <QtCore/qcompilerdetection.h> -#include <QtQuick/private/qquickitem_p.h> #include <QtGui/qaccessibleobject.h> class WebContentsAdapter; @@ -128,10 +127,11 @@ private: Q_DECLARE_PUBLIC(QQuickWebEngineView) }; -class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineViewPrivate : public QQuickItemPrivate, public WebContentsAdapterClient +class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineViewPrivate : public WebContentsAdapterClient { public: Q_DECLARE_PUBLIC(QQuickWebEngineView) + QQuickWebEngineView *q_ptr; QQuickWebEngineViewPrivate(); ~QQuickWebEngineViewPrivate(); diff --git a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp index 26afda08f..e968f450b 100644 --- a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp +++ b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp @@ -48,6 +48,7 @@ #include <QQuickWindow> #include <QVariant> #include <QWindow> +#include <QtQuick/private/qquickwindow_p.h> RenderWidgetHostViewQtDelegateQuick::RenderWidgetHostViewQtDelegateQuick(RenderWidgetHostViewQtDelegateClient *client, bool isPopup) : m_client(client) |