summaryrefslogtreecommitdiffstats
path: root/src/webenginequick/api/qquickwebengineview.cpp
diff options
context:
space:
mode:
authorMichal Klocek <[email protected]>2022-05-04 23:02:58 +0200
committerMichal Klocek <[email protected]>2022-05-10 19:54:01 +0000
commitf02fb09627a0023c5b6988c1067486fef3957d83 (patch)
treedf4bb6029412be8e1572facd634d0310d0e13274 /src/webenginequick/api/qquickwebengineview.cpp
parentc92314eecb1c6140c80ab232197d5bd0ddfa26fa (diff)
Cleanup custom touch handles implementation
Do not introduce extra class nor dummy QML element. Fix docs. Change-Id: I9848f6865cd585779d89fe387ad97c27e7450eb9 Reviewed-by: Kirill Burtsev <[email protected]>
Diffstat (limited to 'src/webenginequick/api/qquickwebengineview.cpp')
-rw-r--r--src/webenginequick/api/qquickwebengineview.cpp42
1 files changed, 6 insertions, 36 deletions
diff --git a/src/webenginequick/api/qquickwebengineview.cpp b/src/webenginequick/api/qquickwebengineview.cpp
index 96b79a5b7..e0e6b0372 100644
--- a/src/webenginequick/api/qquickwebengineview.cpp
+++ b/src/webenginequick/api/qquickwebengineview.cpp
@@ -49,7 +49,7 @@
#include "qquickwebenginescriptcollection_p_p.h"
#include "qquickwebenginesettings_p.h"
#include "qquickwebenginetouchhandleprovider_p_p.h"
-#include "qquickwebenginecustomtouchhandle_p.h"
+#include "qquickwebenginetouchhandle_p.h"
#include "qquickwebenginetouchselectionmenurequest_p.h"
#include "qquickwebengineview_p.h"
#include "qquickwebengineview_p_p.h"
@@ -1266,18 +1266,17 @@ QtWebEngineCore::TouchHandleDrawableDelegate *
QQuickWebEngineViewPrivate::createTouchHandleDelegate(const QMap<int, QImage> &images)
{
Q_Q(QQuickWebEngineView);
+ // lifecycle managed by Chromium's TouchHandleDrawable
+ QQuickWebEngineTouchHandle *handle = new QQuickWebEngineTouchHandle();
if (m_touchHandleDelegate) {
- // lifecycle managed by Chromium's TouchHandleDrawable
QQmlContext *qmlContext = QQmlEngine::contextForObject(q);
- QQuickWebEngineCustomTouchHandle *handle = new QQuickWebEngineCustomTouchHandle();
QQmlContext *context = new QQmlContext(qmlContext, handle);
context->setContextObject(handle);
QObject *delegate = m_touchHandleDelegate->create(context);
Q_ASSERT(delegate);
QQuickItem *item = qobject_cast<QQuickItem *>(delegate);
item->setParentItem(q);
- handle->item.reset(item);
- return handle;
+ handle->setItem(item, false);
} else {
QQuickItem *item = ui()->createTouchHandle();
Q_ASSERT(item);
@@ -1288,9 +1287,9 @@ QQuickWebEngineViewPrivate::createTouchHandleDelegate(const QMap<int, QImage> &i
engine->imageProvider(QQuickWebEngineTouchHandleProvider::identifier()));
Q_ASSERT(touchHandleProvider);
touchHandleProvider->init(images);
- return new QQuickWebEngineTouchHandle(item);
+ handle->setItem(item, true);
}
- return nullptr;
+ return handle;
}
void QQuickWebEngineViewPrivate::showTouchSelectionMenu(QtWebEngineCore::TouchSelectionMenuController *menuController, const QRect &selectionBounds, const QSize &handleSize)
@@ -2411,35 +2410,6 @@ bool QQuickContextMenuBuilder::isMenuItemEnabled(ContextMenuItem menuItem)
Q_UNREACHABLE();
}
-QQuickWebEngineTouchHandle::QQuickWebEngineTouchHandle(QQuickItem *item) : m_item(item)
-{
- m_item->setProperty("visible", false);
-}
-
-void QQuickWebEngineTouchHandle::setImage(int orientation)
-{
- QUrl url = QQuickWebEngineTouchHandleProvider::url(orientation);
- m_item->setProperty("source", url);
-}
-
-void QQuickWebEngineTouchHandle::setBounds(const QRect &bounds)
-{
- m_item->setX(bounds.x());
- m_item->setY(bounds.y());
- m_item->setWidth(bounds.width());
- m_item->setHeight(bounds.height());
-}
-
-void QQuickWebEngineTouchHandle::setVisible(bool visible)
-{
- m_item->setVisible(visible);
-}
-
-void QQuickWebEngineTouchHandle::setOpacity(float opacity)
-{
- m_item->setOpacity(opacity);
-}
-
void QQuickWebEngineView::setTouchHandleDelegate(QQmlComponent *delegate)
{
if (d_ptr->m_touchHandleDelegate != delegate) {