diff --git a/src/lib/webtab/searchtoolbar.h b/src/lib/webtab/searchtoolbar.h --- a/src/lib/webtab/searchtoolbar.h +++ b/src/lib/webtab/searchtoolbar.h @@ -19,6 +19,11 @@ #define SEARCHTOOLBAR_H #include +#include + +#if QTWEBENGINECORE_VERSION >= QT_VERSION_CHECK(5, 14, 0) +#include +#endif #include "qzcommon.h" @@ -53,6 +58,10 @@ void findNext(); void findPrevious(); +#if QTWEBENGINECORE_VERSION >= QT_VERSION_CHECK(5, 14, 0) + void showSearchResults(const QWebEngineFindTextResult &result); +#endif + void close(); private: diff --git a/src/lib/webtab/searchtoolbar.cpp b/src/lib/webtab/searchtoolbar.cpp --- a/src/lib/webtab/searchtoolbar.cpp +++ b/src/lib/webtab/searchtoolbar.cpp @@ -38,6 +38,11 @@ ui->next->setShortcut(QKeySequence("Ctrl+G")); ui->previous->setShortcut(QKeySequence("Ctrl+Shift+G")); + ui->resultsInfo->hide(); +#if QTWEBENGINECORE_VERSION >= QT_VERSION_CHECK(5, 14, 0) + connect(view->page(), &QWebEnginePage::findTextFinished, this, &SearchToolBar::showSearchResults); +#endif + connect(ui->closeButton, SIGNAL(clicked()), this, SLOT(close())); connect(ui->lineEdit, &QLineEdit::textEdited, this, &SearchToolBar::findNext); connect(ui->next, &QAbstractButton::clicked, this, &SearchToolBar::findNext); @@ -137,6 +142,20 @@ }); } +#if QTWEBENGINECORE_VERSION >= QT_VERSION_CHECK(5, 14, 0) +void SearchToolBar::showSearchResults(const QWebEngineFindTextResult &result) +{ + if (result.numberOfMatches() == 0) { + ui->resultsInfo->hide(); + return; + } + + ui->resultsInfo->setText(tr("%1 of %2").arg( + QString::number(result.activeMatch()), QString::number(result.numberOfMatches()))); + ui->resultsInfo->show(); +} +#endif + bool SearchToolBar::eventFilter(QObject* obj, QEvent* event) { Q_UNUSED(obj); diff --git a/src/lib/webtab/searchtoolbar.ui b/src/lib/webtab/searchtoolbar.ui --- a/src/lib/webtab/searchtoolbar.ui +++ b/src/lib/webtab/searchtoolbar.ui @@ -94,6 +94,13 @@ + + + + + + +