diff options
author | Liang Qi <liang.qi@qt.io> | 2019-09-12 10:00:03 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2019-09-12 20:19:28 +0200 |
commit | 2f71cdff2cda7903fd0b5ff0033d790877e40181 (patch) | |
tree | 0255e40f5366123bedefcbc9ad7d482f2e8198a2 /src/webengine/api/qquickwebengineview.cpp | |
parent | d91b839d67bcfa1cfeb3d095b6885c97c53b9812 (diff) | |
parent | 5b0bbd7345b698faab0116b821802fb4a30c0fa4 (diff) | |
download | qtwebengine-wip/qt6.tar.gz |
Merge "Merge remote-tracking branch 'origin/5.14' into wip/qt6"wip/qt6
Diffstat (limited to 'src/webengine/api/qquickwebengineview.cpp')
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 35 |
1 files changed, 12 insertions, 23 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 30283dc03..58d950cd9 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -43,6 +43,7 @@ #include "profile_adapter.h" #include "certificate_error_controller.h" #include "file_picker_controller.h" +#include "find_text_helper.h" #include "javascript_dialog_controller.h" #include "touch_selection_menu_controller.h" @@ -61,6 +62,7 @@ #include "qquickwebenginesettings_p.h" #include "qquickwebenginescript_p.h" #include "qquickwebenginetouchhandleprovider_p_p.h" +#include "qwebenginefindtextresult.h" #include "qwebenginequotarequest.h" #include "qwebengineregisterprotocolhandlerrequest.h" @@ -164,7 +166,6 @@ QQuickWebEngineViewPrivate::~QQuickWebEngineViewPrivate() { Q_ASSERT(m_profileInitialized); m_profile->d_ptr->removeWebContentsAdapterClient(this); - adapter->stopFinding(); if (faviconProvider) faviconProvider->detach(q_ptr); // q_ptr->d_ptr might be null due to destroy() @@ -273,8 +274,8 @@ void QQuickWebEngineViewPrivate::navigationRequested(int navigationType, const Q Q_EMIT q->navigationRequested(&navigationRequest); navigationRequestAction = navigationRequest.action(); - if ((navigationRequestAction == WebContentsAdapterClient::AcceptRequest) && adapter->isFindTextInProgress()) - adapter->stopFinding(); + if ((navigationRequestAction == WebContentsAdapterClient::AcceptRequest) && adapter->findTextHelper()->isFindTextInProgress()) + adapter->findTextHelper()->stopFinding(); } void QQuickWebEngineViewPrivate::javascriptDialog(QSharedPointer<JavaScriptDialogController> dialog) @@ -699,6 +700,12 @@ void QQuickWebEngineViewPrivate::widgetChanged(RenderWidgetHostViewQtDelegate *n bindViewAndWidget(q, static_cast<RenderWidgetHostViewQtDelegateQuick *>(newWidgetBase)); } +void QQuickWebEngineViewPrivate::findTextFinished(const QWebEngineFindTextResult &result) +{ + Q_Q(QQuickWebEngineView); + Q_EMIT q->findTextFinished(result); +} + WebEngineSettings *QQuickWebEngineViewPrivate::webEngineSettings() const { return m_settings->d_ptr.data(); @@ -1185,14 +1192,6 @@ void QQuickWebEngineViewPrivate::didRunJavaScript(quint64 requestId, const QVari callback.call(args); } -void QQuickWebEngineViewPrivate::didFindText(quint64 requestId, int matchCount) -{ - QJSValue callback = m_callbacks.take(requestId); - QJSValueList args; - args.append(QJSValue(matchCount)); - callback.call(args); -} - void QQuickWebEngineViewPrivate::didPrintPage(quint64 requestId, QSharedPointer<QByteArray> result) { Q_Q(QQuickWebEngineView); @@ -1464,18 +1463,8 @@ void QQuickWebEngineView::findText(const QString &subString, FindFlags options, Q_D(QQuickWebEngineView); if (!d->adapter->isInitialized()) return; - if (subString.isEmpty()) { - d->adapter->stopFinding(); - if (!callback.isUndefined()) { - QJSValueList args; - args.append(QJSValue(0)); - const_cast<QJSValue&>(callback).call(args); - } - } else { - quint64 requestId = d->adapter->findText(subString, options & FindCaseSensitively, options & FindBackward); - if (!callback.isUndefined()) - d->m_callbacks.insert(requestId, callback); - } + + d->adapter->findTextHelper()->startFinding(subString, options & FindCaseSensitively, options & FindBackward, callback); } QQuickWebEngineHistory *QQuickWebEngineView::navigationHistory() const |