diff --git a/lib/SearchBar.cpp b/lib/SearchBar.cpp index 590af18..7fe5576 100644 --- a/lib/SearchBar.cpp +++ b/lib/SearchBar.cpp @@ -81,6 +81,25 @@ void SearchBar::searchTextChanged() emit search(m_regExp, true, false); } +void SearchBar::keyReleaseEvent(QKeyEvent* keyEvent) +{ + if (keyEvent->key() == Qt::Key_Return || keyEvent->key() == Qt::Key_Enter) + { + if (keyEvent->modifiers() == Qt::ShiftModifier) + { + findPrevious(); + } + else + { + findNext(); + } + } + else if (keyEvent->key() == Qt::Key_Escape) + { + toggleShown(); + } +} + void SearchBar::findNext() { emit search(m_regExp, true, true); diff --git a/lib/SearchBar.h b/lib/SearchBar.h index 80df1a5..d73eeb3 100644 --- a/lib/SearchBar.h +++ b/lib/SearchBar.h @@ -38,6 +38,9 @@ public slots: signals: void search(QRegExp regexp, bool forwards, bool skip); +protected: + virtual void keyReleaseEvent(QKeyEvent* keyEvent); + private slots: void searchTextChanged(); void findNext();