diff options
Diffstat (limited to 'src/filterbar')
| -rw-r--r-- | src/filterbar/filterbar.cpp | 13 | ||||
| -rw-r--r-- | src/filterbar/filterbar.h | 5 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/filterbar/filterbar.cpp b/src/filterbar/filterbar.cpp index f3076f010..7a8951743 100644 --- a/src/filterbar/filterbar.cpp +++ b/src/filterbar/filterbar.cpp @@ -84,12 +84,23 @@ void FilterBar::showEvent(QShowEvent* event) void FilterBar::keyReleaseEvent(QKeyEvent* event) { QWidget::keyReleaseEvent(event); - if (event->key() == Qt::Key_Escape) { + + switch (event->key()) { + case Qt::Key_Escape: if (m_filterInput->text().isEmpty()) { emit closeRequest(); } else { m_filterInput->clear(); } + break; + + case Qt::Key_Enter: + case Qt::Key_Return: + emit focusViewRequest(); + break; + + default: + break; } } diff --git a/src/filterbar/filterbar.h b/src/filterbar/filterbar.h index 9546c6371..539d1e23f 100644 --- a/src/filterbar/filterbar.h +++ b/src/filterbar/filterbar.h @@ -59,6 +59,11 @@ signals: */ void closeRequest(); + /* + * Emitted as soon as the focus should be returned back to the view. + */ + void focusViewRequest(); + protected: virtual void showEvent(QShowEvent* event); virtual void keyReleaseEvent(QKeyEvent* event); |
