diff options
Diffstat (limited to '')
| -rw-r--r-- | src/widgets/WebView.hpp | 1 | ||||
| -rw-r--r-- | src/widgets/WebViewStack.cpp | 20 | ||||
| -rw-r--r-- | src/widgets/WebViewStack.hpp | 1 |
3 files changed, 22 insertions, 0 deletions
diff --git a/src/widgets/WebView.hpp b/src/widgets/WebView.hpp index 3f73316..98dceba 100644 --- a/src/widgets/WebView.hpp +++ b/src/widgets/WebView.hpp @@ -3,6 +3,7 @@ #include <QWebEngineView> #include <QtCore> #include <cstdint> +#include <qtypes.h> #include "utils.hpp" diff --git a/src/widgets/WebViewStack.cpp b/src/widgets/WebViewStack.cpp index 258fbc6..16fd3e9 100644 --- a/src/widgets/WebViewStack.cpp +++ b/src/widgets/WebViewStack.cpp @@ -1,4 +1,5 @@ #include <QStackedLayout> +#include <QWebEngineFindTextResult> #include <QWebEngineHistory> #include <QWebEngineNewWindowRequest> #include <QWebEngineProfile> @@ -198,6 +199,25 @@ void WebViewStack::focus_webview(WebViewId webview_id) { layout->setCurrentIndex((int)webview_index); } +void WebViewStack::set_search_text(const QString &text, WebViewId webview_id, bool forward) { + auto *webview = get_webview(webview_id); + if (webview == nullptr) { + qDebug() << "Webview does not exist"; + return; + } + + QString search_text = text.trimmed(); + + auto flags = + search_text.isLower() ? QWebEnginePage::FindFlags() : QWebEnginePage::FindCaseSensitively; + if (!forward) + flags |= QWebEnginePage::FindBackward; + + webview->page()->findText(search_text, flags, [](const QWebEngineFindTextResult &result) { + qDebug() << result.numberOfMatches() << result.activeMatch(); + }); +} + WebView *WebViewStack::get_webview(WebViewId webview_id) { auto webview_index = get_webview_index(webview_id); if (webview_index < 0) diff --git a/src/widgets/WebViewStack.hpp b/src/widgets/WebViewStack.hpp index 05362d6..e41af43 100644 --- a/src/widgets/WebViewStack.hpp +++ b/src/widgets/WebViewStack.hpp @@ -65,6 +65,7 @@ public slots: void webview_history_forward(WebViewId webview_id, qsizetype history_index); void close(WebViewId webview_id); void focus_webview(WebViewId webview_id); + void set_search_text(const QString &text, WebViewId webview_id, bool forward = true); protected slots: void on_new_webview_request(const QWebEngineNewWindowRequest &request); |
