summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2020-10-19 09:57:50 +0200
committerMichal Klocek <michal.klocek@qt.io>2020-11-13 09:26:22 +0100
commit2dcca95c142499baa7f10ffd99c9f085a06c52cf (patch)
tree40660cae1fe9836c1d7fbd88b5997830ac1825c2 /src
parent6ca2cfe2c29f41202491c51ef897c4f211c28c27 (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.h4
-rw-r--r--src/core/web_contents_view_qt.cpp5
-rw-r--r--src/webengine/api/qquickwebengineview.cpp23
-rw-r--r--src/webengine/api/qquickwebengineview_p_p.h4
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp16
-rw-r--r--src/webenginewidgets/api/qwebenginepage_p.h4
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;