diff options
author | Michal Klocek <[email protected]> | 2022-05-04 23:02:58 +0200 |
---|---|---|
committer | Michal Klocek <[email protected]> | 2022-05-10 19:54:01 +0000 |
commit | f02fb09627a0023c5b6988c1067486fef3957d83 (patch) | |
tree | df4bb6029412be8e1572facd634d0310d0e13274 /src/webenginequick/api/qquickwebengineview.cpp | |
parent | c92314eecb1c6140c80ab232197d5bd0ddfa26fa (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.cpp | 42 |
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) { |