diff options
-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 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebengineview.cpp | 2 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebengineview.h | 2 | ||||
-rw-r--r-- | src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc | 2 | ||||
-rw-r--r-- | src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc | 2 |
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. |