summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-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
4 files changed, 14 insertions, 10 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