┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/filterbar
diff options
context:
space:
mode:
Diffstat (limited to 'src/filterbar')
-rw-r--r--src/filterbar/filterbar.cpp13
-rw-r--r--src/filterbar/filterbar.h5
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);