summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/api/qwebenginepage.cpp5
-rw-r--r--src/core/api/qwebenginepage.h4
-rw-r--r--src/core/find_text_helper.cpp11
-rw-r--r--src/core/find_text_helper.h4
-rw-r--r--src/webenginewidgets/api/qwebengineview.cpp2
-rw-r--r--src/webenginewidgets/api/qwebengineview.h2
-rw-r--r--src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc2
-rw-r--r--src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc2
8 files changed, 18 insertions, 14 deletions
diff --git a/src/core/api/qwebenginepage.cpp b/src/core/api/qwebenginepage.cpp
index d073b4996..3088133f7 100644
--- a/src/core/api/qwebenginepage.cpp
+++ b/src/core/api/qwebenginepage.cpp
@@ -1530,11 +1530,12 @@ void QWebEnginePage::replaceMisspelledWord(const QString &replacement)
d->adapter->replaceMisspelling(replacement);
}
-void QWebEnginePage::findText(const QString &subString, FindFlags options, const QWebEngineCallback<bool> &resultCallback)
+void QWebEnginePage::findText(const QString &subString, FindFlags options, const std::function<void(bool)> &resultCallback)
{
Q_D(QWebEnginePage);
if (!d->adapter->isInitialized()) {
- QtWebEngineCore::CallbackDirectory().invokeEmpty(resultCallback);
+ if (resultCallback)
+ resultCallback(false);
return;
}
diff --git a/src/core/api/qwebenginepage.h b/src/core/api/qwebenginepage.h
index fb01c283d..78d759e1a 100644
--- a/src/core/api/qwebenginepage.h
+++ b/src/core/api/qwebenginepage.h
@@ -53,6 +53,8 @@
#include <QtGui/qaction.h>
#include <QtNetwork/qnetworkaccessmanager.h>
+#include <functional>
+
QT_BEGIN_NAMESPACE
class QMenu;
@@ -257,7 +259,7 @@ public:
bool event(QEvent*) override;
- void findText(const QString &subString, FindFlags options = FindFlags(), const QWebEngineCallback<bool> &resultCallback = QWebEngineCallback<bool>());
+ void findText(const QString &subString, FindFlags options = {}, const std::function<void(bool)> &resultCallback = std::function<void(bool)>());
void setFeaturePermission(const QUrl &securityOrigin, Feature feature, PermissionPolicy policy);
diff --git a/src/core/find_text_helper.cpp b/src/core/find_text_helper.cpp
index 534e25862..b9158aa73 100644
--- a/src/core/find_text_helper.cpp
+++ b/src/core/find_text_helper.cpp
@@ -64,17 +64,18 @@ FindTextHelper::~FindTextHelper()
stopFinding();
}
-void FindTextHelper::startFinding(const QString &findText, bool caseSensitively, bool findBackward, const QWebEngineCallback<bool> resultCallback)
+void FindTextHelper::startFinding(const QString &findText, bool caseSensitively, bool findBackward, const std::function<void(bool)> &resultCallback)
{
if (findText.isEmpty()) {
stopFinding();
m_viewClient->findTextFinished(QWebEngineFindTextResult());
- m_widgetCallbacks.invokeEmpty(resultCallback);
+ if (resultCallback)
+ resultCallback(false);
return;
}
startFinding(findText, caseSensitively, findBackward);
- m_widgetCallbacks.registerCallback(m_currentFindRequestId, resultCallback);
+ m_widgetCallbacks.insert(m_currentFindRequestId, resultCallback);
}
void FindTextHelper::startFinding(const QString &findText, bool caseSensitively, bool findBackward, const QJSValue &resultCallback)
@@ -164,8 +165,8 @@ void FindTextHelper::invokeResultCallback(int requestId, int numberOfMatches)
QJSValueList args;
args.append(QJSValue(numberOfMatches));
resultCallback.call(args);
- } else {
- m_widgetCallbacks.invoke(requestId, numberOfMatches > 0);
+ } else if (auto func = m_widgetCallbacks.take(requestId)) {
+ func(numberOfMatches > 0);
}
}
diff --git a/src/core/find_text_helper.h b/src/core/find_text_helper.h
index 8a19b15d8..394ea5bb0 100644
--- a/src/core/find_text_helper.h
+++ b/src/core/find_text_helper.h
@@ -72,7 +72,7 @@ public:
FindTextHelper(content::WebContents *webContents, WebContentsAdapterClient *viewClient);
~FindTextHelper();
- void startFinding(const QString &findText, bool caseSensitively, bool findBackward, const QWebEngineCallback<bool> resultCallback);
+ 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 QJSValue &resultCallback);
void startFinding(const QString &findText, bool caseSensitively, bool findBackward);
void stopFinding();
@@ -93,7 +93,7 @@ private:
QString m_previousFindText;
QMap<int, QJSValue> m_quickCallbacks;
- CallbackDirectory m_widgetCallbacks;
+ QMap<int, std::function<void(bool)>> m_widgetCallbacks;
};
} // namespace QtWebEngineCore
diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp
index a34c841e3..8ea0beba1 100644
--- a/src/webenginewidgets/api/qwebengineview.cpp
+++ b/src/webenginewidgets/api/qwebengineview.cpp
@@ -731,7 +731,7 @@ void QWebEngineView::triggerPageAction(QWebEnginePage::WebAction action, bool ch
page()->triggerAction(action, checked);
}
-void QWebEngineView::findText(const QString &subString, QWebEnginePage::FindFlags options, const QWebEngineCallback<bool> &resultCallback)
+void QWebEngineView::findText(const QString &subString, QWebEnginePage::FindFlags options, const std::function<void(bool)> &resultCallback)
{
page()->findText(subString, options, resultCallback);
}
diff --git a/src/webenginewidgets/api/qwebengineview.h b/src/webenginewidgets/api/qwebengineview.h
index 136df0b93..20ab9d6c0 100644
--- a/src/webenginewidgets/api/qwebengineview.h
+++ b/src/webenginewidgets/api/qwebengineview.h
@@ -98,7 +98,7 @@ public:
qreal zoomFactor() const;
void setZoomFactor(qreal factor);
- void findText(const QString &subString, QWebEnginePage::FindFlags options = QWebEnginePage::FindFlags(), const QWebEngineCallback<bool> &resultCallback = QWebEngineCallback<bool>());
+ void findText(const QString &subString, QWebEnginePage::FindFlags options = {}, const std::function<void(bool)> &resultCallback = std::function<void(bool)>());
QSize sizeHint() const override;
QWebEngineSettings *settings() const;
diff --git a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
index f711c1960..d567f9988 100644
--- a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
+++ b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
@@ -497,7 +497,7 @@
*/
/*!
- \fn void QWebEnginePage::findText(const QString &subString, QWebEnginePage::FindFlags options = FindFlags(), const QWebEngineCallback<bool> &resultCallback = QWebEngineCallback<bool>())
+ \fn void QWebEnginePage::findText(const QString &subString, QWebEnginePage::FindFlags options = {}, const std::function<void(bool)> &resultCallback = std::function<void(bool)>)
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.
diff --git a/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc
index 3f1b6e509..a722aeb3f 100644
--- a/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc
+++ b/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc
@@ -249,7 +249,7 @@
*/
/*!
- \fn void QWebEngineView::findText(const QString &subString, QWebEnginePage::FindFlags options = QWebEnginePage::FindFlags(), const QWebEngineCallback<bool> &resultCallback = QWebEngineCallback<bool>())
+ \fn void QWebEngineView::findText(const QString &subString, QWebEnginePage::FindFlags options = {}, const std::function<void(bool)> &resultCallback = std::function<void(bool)>)
Finds the specified string, \a subString, in the page, using the given \a options.
To clear the selection, just pass an empty string.