diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/api/qwebenginepage.cpp | 5 | ||||
-rw-r--r-- | src/core/api/qwebenginepage.h | 4 | ||||
-rw-r--r-- | src/core/find_text_helper.cpp | 11 | ||||
-rw-r--r-- | src/core/find_text_helper.h | 4 |
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 |