summary refs log tree commit diff
path: root/src/MainWindow.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/MainWindow.cc')
-rw-r--r--src/MainWindow.cc23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/MainWindow.cc b/src/MainWindow.cc

index 9437b401..2ada704a 100644 --- a/src/MainWindow.cc +++ b/src/MainWindow.cc
@@ -33,6 +33,7 @@ #include "TrayIcon.h" #include "UserSettingsPage.h" #include "WelcomePage.h" +#include "dialogs/LeaveRoom.h" MainWindow *MainWindow::instance_ = nullptr; @@ -262,4 +263,24 @@ MainWindow::hasActiveUser() settings.contains("auth/user_id"); } -MainWindow::~MainWindow() {} +void +MainWindow::openLeaveRoomDialog(const QString &room_id) +{ + auto roomToLeave = room_id.isEmpty() ? chat_page_->currentRoom() : room_id; + + leaveRoomDialog_ = QSharedPointer<dialogs::LeaveRoom>(new dialogs::LeaveRoom(this)); + + connect(leaveRoomDialog_.data(), &dialogs::LeaveRoom::closing, this, [=](bool leaving) { + leaveRoomModal_->fadeOut(); + + if (leaving) + client_->leaveRoom(roomToLeave); + }); + + leaveRoomModal_ = + QSharedPointer<OverlayModal>(new OverlayModal(this, leaveRoomDialog_.data())); + leaveRoomModal_->setDuration(0); + leaveRoomModal_->setColor(QColor(30, 30, 30, 170)); + + leaveRoomModal_->fadeIn(); +}