diff options
author | Michal Klocek <michal.klocek@qt.io> | 2020-10-19 09:57:50 +0200 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2020-11-13 09:26:22 +0100 |
commit | 2dcca95c142499baa7f10ffd99c9f085a06c52cf (patch) | |
tree | 40660cae1fe9836c1d7fbd88b5997830ac1825c2 /src | |
parent | 6ca2cfe2c29f41202491c51ef897c4f211c28c27 (diff) |
Small refactor of startDragging
This is required to decouple 'view' logic from page.
Change-Id: I84ef8cf729ef87d9339cae3f1bb1f0c709035ccf
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/core/web_contents_adapter_client.h | 4 | ||||
-rw-r--r-- | src/core/web_contents_view_qt.cpp | 5 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 23 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview_p_p.h | 4 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.cpp | 16 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage_p.h | 4 |
6 files changed, 16 insertions, 40 deletions
diff --git a/src/core/web_contents_adapter_client.h b/src/core/web_contents_adapter_client.h index ca5ca10de..13ed99a91 100644 --- a/src/core/web_contents_adapter_client.h +++ b/src/core/web_contents_adapter_client.h @@ -238,9 +238,7 @@ public: virtual void updateContentsSize(const QSizeF &size) = 0; virtual void updateNavigationActions() = 0; virtual void updateEditActions() = 0; - virtual void startDragging(const content::DropData &dropData, Qt::DropActions allowedActions, - const QPixmap &pixmap, const QPoint &offset) = 0; - virtual bool supportsDragging() const = 0; + virtual QObject *dragSource() const = 0; virtual bool isEnabled() const = 0; virtual const QObject *holdingQObject() const = 0; virtual void setToolTip(const QString& toolTipText) = 0; diff --git a/src/core/web_contents_view_qt.cpp b/src/core/web_contents_view_qt.cpp index 41f1c601e..1ab09895f 100644 --- a/src/core/web_contents_view_qt.cpp +++ b/src/core/web_contents_view_qt.cpp @@ -285,7 +285,8 @@ void WebContentsViewQt::StartDragging(const content::DropData &drop_data, #if QT_CONFIG(draganddrop) Q_UNUSED(event_info); - if (!m_client->supportsDragging()) { + QObject *dragSource = m_client->dragSource(); + if (!dragSource) { if (source_rwh) source_rwh->DragSourceSystemDragEnded(); return; @@ -299,7 +300,7 @@ void WebContentsViewQt::StartDragging(const content::DropData &drop_data, hotspot.setY(image_offset.y()); } - m_client->startDragging(drop_data, toQtDropActions(allowed_ops), pixmap, hotspot); + m_client->webContentsAdapter()->startDragging(dragSource, drop_data, toQtDropActions(allowed_ops), pixmap, hotspot); #endif // QT_CONFIG(draganddrop) } diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index fe9d32b8b..b65202c86 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -1289,25 +1289,16 @@ void QQuickWebEngineViewPrivate::requestGeometryChange(const QRect &geometry, co Q_EMIT q->geometryChangeRequested(geometry, frameGeometry); } -void QQuickWebEngineViewPrivate::startDragging(const content::DropData &dropData, - Qt::DropActions allowedActions, - const QPixmap &pixmap, const QPoint &offset) -{ -#if !QT_CONFIG(draganddrop) - Q_UNUSED(dropData); - Q_UNUSED(allowedActions); - Q_UNUSED(pixmap); - Q_UNUSED(offset); -#else - adapter->startDragging(q_ptr->window(), dropData, allowedActions, pixmap, offset); -#endif // QT_CONFIG(draganddrop) -} - -bool QQuickWebEngineViewPrivate::supportsDragging() const +QObject *QQuickWebEngineViewPrivate::dragSource() const { // QTBUG-57516 // Fixme: This is just a band-aid workaround. - return QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::MultipleWindows); +#if !QT_CONFIG(draganddrop) + return QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::MultipleWindows) ? + q_ptr->window : nullptr; +#else + return nullptr; +#endif } bool QQuickWebEngineViewPrivate::isEnabled() const diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h index b16263d5f..26173ff25 100644 --- a/src/webengine/api/qquickwebengineview_p_p.h +++ b/src/webengine/api/qquickwebengineview_p_p.h @@ -158,9 +158,7 @@ public: void updateContentsSize(const QSizeF &size) override; void updateNavigationActions() override; void updateEditActions() override; - void startDragging(const content::DropData &dropData, Qt::DropActions allowedActions, - const QPixmap &pixmap, const QPoint &offset) override; - bool supportsDragging() const override; + QObject *dragSource() const override; bool isEnabled() const override; void setToolTip(const QString &toolTipText) override; QtWebEngineCore::TouchHandleDrawableClient *createTouchHandle(const QMap<int, QImage> &images) override; diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index 46f3d610f..b56eb0bbd 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -1770,25 +1770,15 @@ void QWebEnginePagePrivate::requestGeometryChange(const QRect &geometry, const Q Q_EMIT q->geometryChangeRequested(frameGeometry); } -void QWebEnginePagePrivate::startDragging(const content::DropData &dropData, - Qt::DropActions allowedActions, const QPixmap &pixmap, - const QPoint &offset) +QObject *QWebEnginePagePrivate::dragSource() const { #if !QT_CONFIG(draganddrop) - Q_UNUSED(dropData); - Q_UNUSED(allowedActions); - Q_UNUSED(pixmap); - Q_UNUSED(offset); + return view; #else - adapter->startDragging(view, dropData, allowedActions, pixmap, offset); + return nullptr; #endif // QT_CONFIG(draganddrop) } -bool QWebEnginePagePrivate::supportsDragging() const -{ - return true; -} - bool QWebEnginePagePrivate::isEnabled() const { const Q_Q(QWebEnginePage); diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h index eb021bf6d..0ecb10b73 100644 --- a/src/webenginewidgets/api/qwebenginepage_p.h +++ b/src/webenginewidgets/api/qwebenginepage_p.h @@ -147,9 +147,7 @@ public: void updateContentsSize(const QSizeF &size) override; void updateNavigationActions() override; void updateEditActions() override; - void startDragging(const content::DropData &dropData, Qt::DropActions allowedActions, - const QPixmap &pixmap, const QPoint &offset) override; - bool supportsDragging() const override; + QObject *dragSource() const override; bool isEnabled() const override; void setToolTip(const QString &toolTipText) override; void printRequested() override; |