summary refs log tree commit diff
path: root/src/TopRoomBar.cc
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2017-10-07 20:09:34 +0300
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2017-10-07 20:51:35 +0300
commitbc4b47a5e30386df46f5d4d51a5be33b6a9d4c2f (patch)
tree42bd697afd1b4ce3d7b88bfefe11aa71dbdafae7 /src/TopRoomBar.cc
parentUpdate from Weblate. (#38) (diff)
downloadnheko-bc4b47a5e30386df46f5d4d51a5be33b6a9d4c2f.tar.xz
Use shared pointer for the modals
Diffstat (limited to 'src/TopRoomBar.cc')
-rw-r--r--src/TopRoomBar.cc25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/TopRoomBar.cc b/src/TopRoomBar.cc

index f8a7e600..3f93cad3 100644 --- a/src/TopRoomBar.cc +++ b/src/TopRoomBar.cc
@@ -86,15 +86,24 @@ TopRoomBar::TopRoomBar(QWidget *parent) leaveRoom_ = new QAction(tr("Leave room"), this); connect(leaveRoom_, &QAction::triggered, this, [=]() { - leaveRoomDialog_ = new LeaveRoomDialog(this); - connect( - leaveRoomDialog_, SIGNAL(closing(bool)), this, SLOT(closeLeaveRoomDialog(bool))); + if (leaveRoomDialog_.isNull()) { + leaveRoomDialog_ = + QSharedPointer<LeaveRoomDialog>(new LeaveRoomDialog(this)); - leaveRoomModal = new OverlayModal(MainWindow::instance(), leaveRoomDialog_); - leaveRoomModal->setDuration(100); - leaveRoomModal->setColor(QColor(55, 55, 55, 170)); + connect(leaveRoomDialog_.data(), + SIGNAL(closing(bool)), + this, + SLOT(closeLeaveRoomDialog(bool))); + } - leaveRoomModal->fadeIn(); + if (leaveRoomModal_.isNull()) { + leaveRoomModal_ = QSharedPointer<OverlayModal>( + new OverlayModal(MainWindow::instance(), leaveRoomDialog_.data())); + leaveRoomModal_->setDuration(0); + leaveRoomModal_->setColor(QColor(30, 30, 30, 170)); + } + + leaveRoomModal_->fadeIn(); }); menu_->addAction(toggleNotifications_); @@ -117,7 +126,7 @@ TopRoomBar::TopRoomBar(QWidget *parent) void TopRoomBar::closeLeaveRoomDialog(bool leaving) { - leaveRoomModal->fadeOut(); + leaveRoomModal_->fadeOut(); if (leaving) { emit leaveRoom();