summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2021-07-09 16:48:00 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-07-14 19:02:59 +0000
commit58c67b08f7ad668f95a6edaccd96dd0fe72f675d (patch)
tree7c8744208ba57eb220ae582a3c2f927b27a7e854 /src
parentf1d76a9d05e34686414ef7f2f214a64f35a2e8fa (diff)
Update parameters to findText callback
Change-Id: I622ff55c1c9b6f9d4818228c75543c3deffa37be Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> (cherry picked from commit 56b1f53d9b2927f5ba2a73f85cee59e385bf489d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r--src/core/api/qwebenginepage.cpp4
-rw-r--r--src/core/api/qwebenginepage.h4
-rw-r--r--src/core/doc/src/qwebenginepage_lgpl.qdoc5
-rw-r--r--src/core/find_text_helper.cpp14
-rw-r--r--src/core/find_text_helper.h10
-rw-r--r--src/webenginewidgets/api/qwebengineview.cpp2
-rw-r--r--src/webenginewidgets/api/qwebengineview.h2
-rw-r--r--src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc5
8 files changed, 23 insertions, 23 deletions
diff --git a/src/core/api/qwebenginepage.cpp b/src/core/api/qwebenginepage.cpp
index 9943def62..973826efb 100644
--- a/src/core/api/qwebenginepage.cpp
+++ b/src/core/api/qwebenginepage.cpp
@@ -1520,12 +1520,12 @@ void QWebEnginePage::replaceMisspelledWord(const QString &replacement)
d->adapter->replaceMisspelling(replacement);
}
-void QWebEnginePage::findText(const QString &subString, FindFlags options, const std::function<void(bool)> &resultCallback)
+void QWebEnginePage::findText(const QString &subString, FindFlags options, const std::function<void(const QWebEngineFindTextResult &)> &resultCallback)
{
Q_D(QWebEnginePage);
if (!d->adapter->isInitialized()) {
if (resultCallback)
- resultCallback(false);
+ resultCallback(QWebEngineFindTextResult());
return;
}
diff --git a/src/core/api/qwebenginepage.h b/src/core/api/qwebenginepage.h
index 801bcf84d..73b1bfd3a 100644
--- a/src/core/api/qwebenginepage.h
+++ b/src/core/api/qwebenginepage.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QtWebEngine module of the Qt Toolkit.
@@ -255,7 +255,7 @@ public:
bool event(QEvent*) override;
- void findText(const QString &subString, FindFlags options = {}, const std::function<void(bool)> &resultCallback = std::function<void(bool)>());
+ void findText(const QString &subString, FindFlags options = {}, const std::function<void(const QWebEngineFindTextResult &)> &resultCallback = std::function<void(const QWebEngineFindTextResult &)>());
void setFeaturePermission(const QUrl &securityOrigin, Feature feature, PermissionPolicy policy);
diff --git a/src/core/doc/src/qwebenginepage_lgpl.qdoc b/src/core/doc/src/qwebenginepage_lgpl.qdoc
index bbe1e0110..d250e0356 100644
--- a/src/core/doc/src/qwebenginepage_lgpl.qdoc
+++ b/src/core/doc/src/qwebenginepage_lgpl.qdoc
@@ -472,14 +472,13 @@
*/
/*!
- \fn void QWebEnginePage::findText(const QString &subString, QWebEnginePage::FindFlags options = {}, const std::function<void(bool)> &resultCallback = std::function<void(bool)>)
+ \fn void QWebEnginePage::findText(const QString &subString, QWebEnginePage::FindFlags options = {}, const std::function<void(const QWebEngineFindTextResult &)> &resultCallback = std::function<void(const QWebEngineFindTextResult &)>)
Finds the specified string, \a subString, in the page, using the given \a options.
The findTextFinished() signal is emitted when a string search is completed.
To clear the search highlight, just pass an empty string.
- The \a resultCallback must take a boolean parameter. It will be called with a value of \c true
- if the \a subString was found; otherwise the callback value will be \c false.
+ The \a resultCallback must take a QWebEngineFindTextResult parameter.
\warning We guarantee that the callback (\a resultCallback) is always called, but it might be done
during page destruction. When QWebEnginePage is deleted, the callback is triggered with an invalid
diff --git a/src/core/find_text_helper.cpp b/src/core/find_text_helper.cpp
index b9158aa73..3f0852536 100644
--- a/src/core/find_text_helper.cpp
+++ b/src/core/find_text_helper.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2019 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QtWebEngine module of the Qt Toolkit.
@@ -64,13 +64,13 @@ FindTextHelper::~FindTextHelper()
stopFinding();
}
-void FindTextHelper::startFinding(const QString &findText, bool caseSensitively, bool findBackward, const std::function<void(bool)> &resultCallback)
+void FindTextHelper::startFinding(const QString &findText, bool caseSensitively, bool findBackward, const std::function<void(const QWebEngineFindTextResult &)> &resultCallback)
{
if (findText.isEmpty()) {
stopFinding();
m_viewClient->findTextFinished(QWebEngineFindTextResult());
if (resultCallback)
- resultCallback(false);
+ resultCallback(QWebEngineFindTextResult());
return;
}
@@ -111,7 +111,7 @@ void FindTextHelper::startFinding(const QString &findText, bool caseSensitively,
if (!findNext)
m_webContents->StopFinding(content::STOP_FIND_ACTION_KEEP_SELECTION);
m_viewClient->findTextFinished(QWebEngineFindTextResult());
- invokeResultCallback(m_currentFindRequestId, 0);
+ invokeResultCallback(m_currentFindRequestId, 0, 0);
}
blink::mojom::FindOptionsPtr options = blink::mojom::FindOptions::New();
@@ -149,7 +149,7 @@ void FindTextHelper::handleFindReply(content::WebContents *source, int requestId
Q_ASSERT(m_currentFindRequestId == requestId);
m_lastCompletedFindRequestId = requestId;
m_viewClient->findTextFinished(QWebEngineFindTextResult(numberOfMatches, activeMatch));
- invokeResultCallback(requestId, numberOfMatches);
+ invokeResultCallback(requestId, numberOfMatches, activeMatch);
}
void FindTextHelper::handleLoadCommitted()
@@ -158,7 +158,7 @@ void FindTextHelper::handleLoadCommitted()
m_previousFindText = QString();
}
-void FindTextHelper::invokeResultCallback(int requestId, int numberOfMatches)
+void FindTextHelper::invokeResultCallback(int requestId, int numberOfMatches, int activeMatch)
{
if (m_quickCallbacks.contains(requestId)) {
QJSValue resultCallback = m_quickCallbacks.take(requestId);
@@ -166,7 +166,7 @@ void FindTextHelper::invokeResultCallback(int requestId, int numberOfMatches)
args.append(QJSValue(numberOfMatches));
resultCallback.call(args);
} else if (auto func = m_widgetCallbacks.take(requestId)) {
- func(numberOfMatches > 0);
+ func(QWebEngineFindTextResult(numberOfMatches, activeMatch));
}
}
diff --git a/src/core/find_text_helper.h b/src/core/find_text_helper.h
index 394ea5bb0..cdea3c2f8 100644
--- a/src/core/find_text_helper.h
+++ b/src/core/find_text_helper.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2019 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QtWebEngine module of the Qt Toolkit.
@@ -63,6 +63,8 @@ namespace gfx {
class Rect;
}
+QT_FORWARD_DECLARE_CLASS(QWebEngineFindTextResult)
+
namespace QtWebEngineCore {
class WebContentsAdapterClient;
@@ -72,7 +74,7 @@ public:
FindTextHelper(content::WebContents *webContents, WebContentsAdapterClient *viewClient);
~FindTextHelper();
- void startFinding(const QString &findText, bool caseSensitively, bool findBackward, const std::function<void(bool)> &resultCallback);
+ void startFinding(const QString &findText, bool caseSensitively, bool findBackward, const std::function<void(const QWebEngineFindTextResult &)> &resultCallback);
void startFinding(const QString &findText, bool caseSensitively, bool findBackward, const QJSValue &resultCallback);
void startFinding(const QString &findText, bool caseSensitively, bool findBackward);
void stopFinding();
@@ -81,7 +83,7 @@ public:
void handleLoadCommitted();
private:
- void invokeResultCallback(int requestId, int numberOfMatches);
+ void invokeResultCallback(int requestId, int numberOfMatches, int activeMatch);
content::WebContents *m_webContents;
WebContentsAdapterClient *m_viewClient;
@@ -93,7 +95,7 @@ private:
QString m_previousFindText;
QMap<int, QJSValue> m_quickCallbacks;
- QMap<int, std::function<void(bool)>> m_widgetCallbacks;
+ QMap<int, std::function<void(const QWebEngineFindTextResult &)>> m_widgetCallbacks;
};
} // namespace QtWebEngineCore
diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp
index d8225274a..d72673225 100644
--- a/src/webenginewidgets/api/qwebengineview.cpp
+++ b/src/webenginewidgets/api/qwebengineview.cpp
@@ -733,7 +733,7 @@ void QWebEngineView::triggerPageAction(QWebEnginePage::WebAction action, bool ch
page()->triggerAction(action, checked);
}
-void QWebEngineView::findText(const QString &subString, QWebEnginePage::FindFlags options, const std::function<void(bool)> &resultCallback)
+void QWebEngineView::findText(const QString &subString, QWebEnginePage::FindFlags options, const std::function<void(const QWebEngineFindTextResult &)> &resultCallback)
{
page()->findText(subString, options, resultCallback);
}
diff --git a/src/webenginewidgets/api/qwebengineview.h b/src/webenginewidgets/api/qwebengineview.h
index 005f46c16..417dff43e 100644
--- a/src/webenginewidgets/api/qwebengineview.h
+++ b/src/webenginewidgets/api/qwebengineview.h
@@ -100,7 +100,7 @@ public:
qreal zoomFactor() const;
void setZoomFactor(qreal factor);
- void findText(const QString &subString, QWebEnginePage::FindFlags options = {}, const std::function<void(bool)> &resultCallback = std::function<void(bool)>());
+ void findText(const QString &subString, QWebEnginePage::FindFlags options = {}, const std::function<void(const QWebEngineFindTextResult &)> &resultCallback = std::function<void(const QWebEngineFindTextResult &)>());
QSize sizeHint() const override;
QWebEngineSettings *settings() const;
diff --git a/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc
index 052ff239f..34aa53278 100644
--- a/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc
+++ b/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc
@@ -249,13 +249,12 @@
*/
/*!
- \fn void QWebEngineView::findText(const QString &subString, QWebEnginePage::FindFlags options = {}, const std::function<void(bool)> &resultCallback = std::function<void(bool)>)
+ \fn void QWebEngineView::findText(const QString &subString, QWebEnginePage::FindFlags options = {}, const std::function<void(const QWebEngineFindTextResult &)> &resultCallback = std::function<void(const QWebEngineFindTextResult &)>)
Finds the specified string, \a subString, in the page, using the given \a options.
To clear the selection, just pass an empty string.
- \a resultCallback must take a boolean parameter. It will be called with a value of \c true
- if \a subString was found; otherwise the callback value will be \c false.
+ The \a resultCallback must take a QWebEngineFindTextResult parameter.
\warning We guarantee that the callback (\a resultCallback) is always called, but it might be done
during page destruction. When QWebEnginePage is deleted, the callback is triggered with an invalid