ui: Expose SearchableWebView's search bar toggling methods

This commit is contained in:
Oleg Shparber
2016-04-12 23:08:25 -04:00
parent 9f2c4b7650
commit 3ddb171bf3
2 changed files with 25 additions and 25 deletions
+23 -23
View File
@@ -51,7 +51,7 @@ SearchableWebView::SearchableWebView(QWidget *parent) :
connect(m_searchLineEdit, &QLineEdit::textChanged, this, &SearchableWebView::find);
QShortcut *shortcut = new QShortcut(QKeySequence::Find, this);
connect(shortcut, &QShortcut::activated, this, &SearchableWebView::showSearch);
connect(shortcut, &QShortcut::activated, this, &SearchableWebView::showSearchBar);
connect(m_webView, &QWebView::loadFinished, [&](bool ok) {
Q_UNUSED(ok)
@@ -94,7 +94,7 @@ bool SearchableWebView::eventFilter(QObject *object, QEvent *event)
QKeyEvent *keyEvent = reinterpret_cast<QKeyEvent *>(event);
switch (keyEvent->key()) {
case Qt::Key_Escape:
hideSearch();
hideSearchBar();
return true;
case Qt::Key_Enter:
case Qt::Key_Return:
@@ -138,6 +138,26 @@ void SearchableWebView::forward()
m_webView->forward();
}
void SearchableWebView::showSearchBar()
{
m_searchLineEdit->show();
m_searchLineEdit->setFocus();
if (!m_searchLineEdit->text().isEmpty()) {
m_searchLineEdit->selectAll();
find(m_searchLineEdit->text());
}
}
void SearchableWebView::hideSearchBar()
{
m_searchLineEdit->hide();
#ifdef USE_WEBENGINE
m_webView->findText(QString());
#else
m_webView->findText(QString(), QWebPage::HighlightAllOccurrences);
#endif
}
bool SearchableWebView::canGoBack() const
{
return m_webView->history()->canGoBack();
@@ -152,7 +172,7 @@ void SearchableWebView::keyPressEvent(QKeyEvent *event)
{
switch (event->key()) {
case Qt::Key_Slash:
showSearch();
showSearchBar();
event->accept();
break;
default:
@@ -168,26 +188,6 @@ void SearchableWebView::resizeEvent(QResizeEvent *event)
moveLineEdit();
}
void SearchableWebView::showSearch()
{
m_searchLineEdit->show();
m_searchLineEdit->setFocus();
if (!m_searchLineEdit->text().isEmpty()) {
m_searchLineEdit->selectAll();
find(m_searchLineEdit->text());
}
}
void SearchableWebView::hideSearch()
{
m_searchLineEdit->hide();
#ifdef USE_WEBENGINE
m_webView->findText(QString());
#else
m_webView->findText(QString(), QWebPage::HighlightAllOccurrences);
#endif
}
void SearchableWebView::find(const QString &text)
{
#ifdef USE_WEBENGINE
+2 -2
View File
@@ -65,14 +65,14 @@ signals:
public slots:
void back();
void forward();
void showSearchBar();
void hideSearchBar();
protected:
void keyPressEvent(QKeyEvent *event) override;
void resizeEvent(QResizeEvent *event) override;
private:
void showSearch();
void hideSearch();
void find(const QString &text);
void findNext(const QString &text, bool backward = false);
void moveLineEdit();