From 14eb302c3d3e86f059dce1cb9f9475e661ed8255 Mon Sep 17 00:00:00 2001 From: Alexandr Kondratev Date: Sun, 5 May 2019 20:19:47 +0300 Subject: [PATCH] Close search popup window on Escape pressed --- src/widgets/helper/SearchPopup.cpp | 26 ++++++++++++++++++-------- src/widgets/helper/SearchPopup.hpp | 3 +++ 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/widgets/helper/SearchPopup.cpp b/src/widgets/helper/SearchPopup.cpp index bd62f631e..a1bfdafed 100644 --- a/src/widgets/helper/SearchPopup.cpp +++ b/src/widgets/helper/SearchPopup.cpp @@ -17,6 +17,24 @@ SearchPopup::SearchPopup() this->resize(400, 600); } +void SearchPopup::setChannel(ChannelPtr channel) +{ + this->snapshot_ = channel->getMessageSnapshot(); + this->performSearch(); + + this->setWindowTitle("Searching in " + channel->getName() + "s history"); +} + +void SearchPopup::keyPressEvent(QKeyEvent *e) +{ + if (e->key() == Qt::Key_Escape) { + this->close(); + return; + } + + BaseWidget::keyPressEvent(e); +} + void SearchPopup::initLayout() { // VBOX @@ -60,14 +78,6 @@ void SearchPopup::initLayout() } } -void SearchPopup::setChannel(ChannelPtr channel) -{ - this->snapshot_ = channel->getMessageSnapshot(); - this->performSearch(); - - this->setWindowTitle("Searching in " + channel->getName() + "s history"); -} - void SearchPopup::performSearch() { QString text = searchInput_->text(); diff --git a/src/widgets/helper/SearchPopup.hpp b/src/widgets/helper/SearchPopup.hpp index 1f2837fbe..cb5bdca63 100644 --- a/src/widgets/helper/SearchPopup.hpp +++ b/src/widgets/helper/SearchPopup.hpp @@ -22,6 +22,9 @@ public: void setChannel(std::shared_ptr channel); +protected: + void keyPressEvent(QKeyEvent *e) override; + private: void initLayout(); void performSearch();