summary refs log tree commit diff
path: root/src/MainWindow.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/MainWindow.cc
parentUpdate from Weblate. (#38) (diff)
downloadnheko-bc4b47a5e30386df46f5d4d51a5be33b6a9d4c2f.tar.xz
Use shared pointer for the modals
Diffstat (limited to 'src/MainWindow.cc')
-rw-r--r--src/MainWindow.cc36
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();