From c13e2b6f17dcd3b873db6edf531846432ecd0515 Mon Sep 17 00:00:00 2001 From: Christian Surlykke Date: Thu, 17 Jan 2013 08:16:06 +0100 Subject: [PATCH] Hotkeys for search: Return->find-next, Shift-Return->find-previous, Escape->hide searchbar --- lib/SearchBar.cpp | 19 +++++++++++++++++++ lib/SearchBar.h | 3 +++ 2 files changed, 22 insertions(+) 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();