diff --git a/src/QuickSwitcher.cc b/src/QuickSwitcher.cc
index d406a6de..3596a8c4 100644
--- a/src/QuickSwitcher.cc
+++ b/src/QuickSwitcher.cc
@@ -103,11 +103,13 @@ QuickSwitcher::QuickSwitcher(QSharedPointer<Cache> cache, QWidget *parent)
&RoomSearchInput::selectPreviousCompletion,
&popup_,
&SuggestionsPopup::selectPreviousSuggestion);
- connect(&popup_, &SuggestionsPopup::itemSelected, this, &QuickSwitcher::roomSelected);
+ connect(&popup_, &SuggestionsPopup::itemSelected, this, [this](const QString &room_id) {
+ reset();
+ emit roomSelected(room_id);
+ });
connect(roomSearch_, &RoomSearchInput::hiding, this, [this]() { popup_.hide(); });
connect(roomSearch_, &QLineEdit::returnPressed, this, [this]() {
- emit closing();
- roomSearch_->clear();
+ reset();
popup_.selectHoveredSuggestion<RoomItem>();
});
}
@@ -125,8 +127,7 @@ void
QuickSwitcher::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Escape) {
- roomSearch_->clear();
event->accept();
- emit closing();
+ reset();
}
}
diff --git a/src/SuggestionsPopup.cpp b/src/SuggestionsPopup.cpp
index cb569ddf..86586c92 100644
--- a/src/SuggestionsPopup.cpp
+++ b/src/SuggestionsPopup.cpp
@@ -38,17 +38,6 @@ PopupItem::paintEvent(QPaintEvent *)
p.fillRect(rect(), hoverColor_);
}
-void
-PopupItem::mousePressEvent(QMouseEvent *event)
-{
- if (event->buttons() != Qt::RightButton)
- // TODO: should be abstracted.
- emit clicked(
- Cache::displayName(ChatPage::instance()->currentRoom(), selectedText()));
-
- QWidget::mousePressEvent(event);
-}
-
UserItem::UserItem(QWidget *parent, const QString &user_id)
: PopupItem(parent)
, userId_{user_id}
@@ -77,6 +66,16 @@ UserItem::UserItem(QWidget *parent, const QString &user_id)
[this](const QImage &img) { avatar_->setImage(img); });
}
+void
+UserItem::mousePressEvent(QMouseEvent *event)
+{
+ if (event->buttons() != Qt::RightButton)
+ emit clicked(
+ Cache::displayName(ChatPage::instance()->currentRoom(), selectedText()));
+
+ QWidget::mousePressEvent(event);
+}
+
RoomItem::RoomItem(QWidget *parent, const RoomSearchResult &res)
: PopupItem(parent)
, roomId_{QString::fromStdString(res.room_id)}
@@ -97,6 +96,15 @@ RoomItem::RoomItem(QWidget *parent, const RoomSearchResult &res)
avatar_->setImage(res.img);
}
+void
+RoomItem::mousePressEvent(QMouseEvent *event)
+{
+ if (event->buttons() != Qt::RightButton)
+ emit clicked(selectedText());
+
+ QWidget::mousePressEvent(event);
+}
+
SuggestionsPopup::SuggestionsPopup(QWidget *parent)
: QWidget(parent)
{
|