From b15a04b00a7e43301ce39fad58713920113efed0 Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Sun, 4 Mar 2018 13:40:30 +0200 Subject: Don't open room switcher when another dialog is open fixes #251 --- src/SideBarActions.cc | 50 ++++++-------------------------------------------- 1 file changed, 6 insertions(+), 44 deletions(-) (limited to 'src/SideBarActions.cc') diff --git a/src/SideBarActions.cc b/src/SideBarActions.cc index 0504f4db..665b428b 100644 --- a/src/SideBarActions.cc +++ b/src/SideBarActions.cc @@ -1,6 +1,8 @@ #include #include +#include + #include "Config.h" #include "MainWindow.h" #include "OverlayModal.h" @@ -35,53 +37,13 @@ SideBarActions::SideBarActions(QWidget *parent) joinRoomAction_ = new QAction(tr("Join a room"), this); connect(joinRoomAction_, &QAction::triggered, this, [this]() { - if (joinRoomDialog_.isNull()) { - joinRoomDialog_ = - QSharedPointer(new dialogs::JoinRoom(this)); - - connect(joinRoomDialog_.data(), - &dialogs::JoinRoom::closing, - this, - [this](bool isJoining, const QString &room) { - joinRoomModal_->hide(); - - if (isJoining && !room.isEmpty()) - emit joinRoom(room); - }); - } - - if (joinRoomModal_.isNull()) { - joinRoomModal_ = QSharedPointer( - new OverlayModal(MainWindow::instance(), joinRoomDialog_.data())); - joinRoomModal_->setColor(QColor(30, 30, 30, 170)); - } - - joinRoomModal_->show(); + MainWindow::instance()->openJoinRoomDialog( + [this](const QString &room_id) { emit joinRoom(room_id); }); }); connect(createRoomAction_, &QAction::triggered, this, [this]() { - if (createRoomDialog_.isNull()) { - createRoomDialog_ = - QSharedPointer(new dialogs::CreateRoom(this)); - - connect(createRoomDialog_.data(), - &dialogs::CreateRoom::closing, - this, - [this](bool isCreating, const mtx::requests::CreateRoom &request) { - createRoomModal_->hide(); - - if (isCreating) - emit createRoom(request); - }); - } - - if (createRoomModal_.isNull()) { - createRoomModal_ = QSharedPointer( - new OverlayModal(MainWindow::instance(), createRoomDialog_.data())); - createRoomModal_->setColor(QColor(30, 30, 30, 170)); - } - - createRoomModal_->show(); + MainWindow::instance()->openCreateRoomDialog( + [this](const mtx::requests::CreateRoom &req) { emit createRoom(req); }); }); addMenu_->addAction(createRoomAction_); -- cgit 1.5.1