diff options
author | Konstantinos Sideris <sideris.konstantin@gmail.com> | 2017-10-07 20:09:34 +0300 |
---|---|---|
committer | Konstantinos Sideris <sideris.konstantin@gmail.com> | 2017-10-07 20:51:35 +0300 |
commit | bc4b47a5e30386df46f5d4d51a5be33b6a9d4c2f (patch) | |
tree | 42bd697afd1b4ce3d7b88bfefe11aa71dbdafae7 /src/MainWindow.cc | |
parent | Update from Weblate. (#38) (diff) | |
download | nheko-bc4b47a5e30386df46f5d4d51a5be33b6a9d4c2f.tar.xz |
Use shared pointer for the modals
Diffstat (limited to 'src/MainWindow.cc')
-rw-r--r-- | src/MainWindow.cc | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/src/MainWindow.cc b/src/MainWindow.cc index 43f4a949..80726683 100644 --- a/src/MainWindow.cc +++ b/src/MainWindow.cc @@ -15,8 +15,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "MainWindow.h" #include "Config.h" +#include "MainWindow.h" #include <QApplication> #include <QLayout> @@ -29,7 +29,7 @@ MainWindow *MainWindow::instance_ = nullptr; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) - , progress_modal_{ nullptr } + , progressModal_{ nullptr } , spinner_{ nullptr } { QSizePolicy sizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); @@ -132,18 +132,14 @@ MainWindow::removeOverlayProgressBar() connect(timer, &QTimer::timeout, [=]() { timer->deleteLater(); - if (progress_modal_ != nullptr) { - progress_modal_->deleteLater(); - progress_modal_->fadeOut(); - } - - if (spinner_ != nullptr) - spinner_->deleteLater(); + if (!progressModal_.isNull()) + progressModal_->fadeOut(); - spinner_->stop(); + if (!spinner_.isNull()) + spinner_->stop(); - progress_modal_ = nullptr; - spinner_ = nullptr; + progressModal_.reset(); + spinner_.reset(); }); timer->start(500); @@ -166,18 +162,22 @@ MainWindow::showChatPage(QString userid, QString homeserver, QString token) QTimer::singleShot( modalOpacityDuration + 100, this, [=]() { pageStack_->setCurrentWidget(chat_page_); }); - if (spinner_ == nullptr) { - spinner_ = new LoadingIndicator(this); + if (spinner_.isNull()) { + spinner_ = QSharedPointer<LoadingIndicator>( + new LoadingIndicator(this), + [=](LoadingIndicator *indicator) { indicator->deleteLater(); }); spinner_->setColor("#acc7dc"); spinner_->setFixedHeight(120); spinner_->setFixedWidth(120); spinner_->start(); } - if (progress_modal_ == nullptr) { - progress_modal_ = new OverlayModal(this, spinner_); - progress_modal_->fadeIn(); - progress_modal_->setDuration(modalOpacityDuration); + if (progressModal_.isNull()) { + progressModal_ = + QSharedPointer<OverlayModal>(new OverlayModal(this, spinner_.data()), + [=](OverlayModal *modal) { modal->deleteLater(); }); + progressModal_->fadeIn(); + progressModal_->setDuration(modalOpacityDuration); } login_page_->reset(); |