diff --git a/include/RoomList.h b/include/RoomList.h index c3671358..c2f4255d 100644 --- a/include/RoomList.h +++ b/include/RoomList.h @@ -60,6 +60,7 @@ public slots: void updateUnreadMessageCount(const QString &roomid, int count); void updateRoomDescription(const QString &roomid, const DescInfo &info); void closeJoinRoomDialog(bool isJoining, QString roomAlias); + void openLeaveRoomDialog(const QString &room_id); void closeLeaveRoomDialog(bool leaving, const QString &room_id); private: diff --git a/src/RoomList.cc b/src/RoomList.cc index 25f2fc2e..7586df33 100644 --- a/src/RoomList.cc +++ b/src/RoomList.cc @@ -77,18 +77,7 @@ RoomList::addRoom(const QSharedPointer &settings, { RoomInfoListItem *room_item = new RoomInfoListItem(settings, state, room_id, scrollArea_); connect(room_item, &RoomInfoListItem::clicked, this, &RoomList::highlightSelectedRoom); - connect(room_item, &RoomInfoListItem::leaveRoom, client_.data(), [=]() { - leaveRoomDialog_ = new LeaveRoomDialog(this); - connect(leaveRoomDialog_, &LeaveRoomDialog::closing, this, [=](bool leaving) { - closeLeaveRoomDialog(leaving, room_id); - }); - - leaveRoomModal = new OverlayModal(MainWindow::instance(), leaveRoomDialog_); - leaveRoomModal->setDuration(100); - leaveRoomModal->setColor(QColor(55, 55, 55, 170)); - - leaveRoomModal->fadeIn(); - }); + connect(room_item, &RoomInfoListItem::leaveRoom, this, &RoomList::openLeaveRoomDialog); rooms_.insert(room_id, QSharedPointer(room_item)); @@ -158,19 +147,7 @@ RoomList::setInitialRooms(const QMap> &set new RoomInfoListItem(settings[room_id], state, room_id, scrollArea_); connect( room_item, &RoomInfoListItem::clicked, this, &RoomList::highlightSelectedRoom); - connect(room_item, &RoomInfoListItem::leaveRoom, client_.data(), [=]() { - leaveRoomDialog_ = new LeaveRoomDialog(this); - connect(leaveRoomDialog_, - &LeaveRoomDialog::closing, - this, - [=](bool leaving) { closeLeaveRoomDialog(leaving, room_id); }); - - leaveRoomModal = new OverlayModal(MainWindow::instance(), leaveRoomDialog_); - leaveRoomModal->setDuration(100); - leaveRoomModal->setColor(QColor(55, 55, 55, 170)); - - leaveRoomModal->fadeIn(); - }); + connect(room_item, &RoomInfoListItem::leaveRoom, this, &RoomList::openLeaveRoomDialog); rooms_.insert(room_id, QSharedPointer(room_item)); @@ -187,6 +164,21 @@ RoomList::setInitialRooms(const QMap> &set emit roomChanged(rooms_.firstKey()); } +void +RoomList::openLeaveRoomDialog(const QString &room_id) +{ + leaveRoomDialog_ = new LeaveRoomDialog(this); + connect(leaveRoomDialog_, + &LeaveRoomDialog::closing, this, + [=](bool leaving) { closeLeaveRoomDialog(leaving, room_id); }); + + leaveRoomModal = new OverlayModal(MainWindow::instance(), leaveRoomDialog_); + leaveRoomModal->setDuration(100); + leaveRoomModal->setColor(QColor(55, 55, 55, 170)); + + leaveRoomModal->fadeIn(); +} + void RoomList::sync(const QMap &states) {