From 01f23849b6a48cd8346835fad6119ae803fc32ab Mon Sep 17 00:00:00 2001
From: Edric Milaret <edric.ladent-milaret@savoirfairelinux.com>
Date: Mon, 22 Jun 2015 14:46:01 -0400
Subject: [PATCH] fix some memory leaks

Refs #76119

Change-Id: I516d471ec23deeb4bde8eb87bea03f83a7e1a55e
---
 callwidget.cpp          | 10 ++++++----
 callwidget.h            |  5 +++++
 configurationwidget.cpp |  5 +++--
 configurationwidget.h   |  2 ++
 mainwindow.cpp          |  1 +
 navstack.cpp            |  6 +++++-
 videoview.cpp           |  3 +++
 wizarddialog.cpp        |  3 +++
 8 files changed, 28 insertions(+), 7 deletions(-)

diff --git a/callwidget.cpp b/callwidget.cpp
index d92314e..6c4625d 100644
--- a/callwidget.cpp
+++ b/callwidget.cpp
@@ -32,8 +32,6 @@
 
 #include "wizarddialog.h"
 #include "windowscontactbackend.h"
-#include "historydelegate.h"
-#include "contactdelegate.h"
 
 CallWidget::CallWidget(QWidget *parent) :
     NavWidget(Main ,parent),
@@ -92,7 +90,8 @@ CallWidget::CallWidget(QWidget *parent) :
         ui->historyList->setModel(CategorizedHistoryModel::SortedProxy::instance()->model());
         CategorizedHistoryModel::SortedProxy::instance()->model()->sort(0, Qt::DescendingOrder);
         ui->historyList->setHeaderHidden(true);
-        ui->historyList->setItemDelegate(new HistoryDelegate());
+        historyDelegate_ = new HistoryDelegate();
+        ui->historyList->setItemDelegate(historyDelegate_);
         auto idx = CategorizedHistoryModel::SortedProxy::instance()->model()->index(0,0);
         if (idx.isValid())
             ui->historyList->setExpanded(idx, true);
@@ -101,7 +100,8 @@ CallWidget::CallWidget(QWidget *parent) :
 
         CategorizedContactModel::instance()->setSortAlphabetical(false);
         ui->contactView->setModel(CategorizedContactModel::instance());
-        ui->contactView->setItemDelegate(new ContactDelegate());
+        contactDelegate_ = new ContactDelegate();
+        ui->contactView->setItemDelegate(contactDelegate_);
 
         findRingAccount();
 
@@ -115,6 +115,8 @@ CallWidget::~CallWidget()
     delete ui;
     delete spinner_;
     delete menu_;
+    delete historyDelegate_;
+    delete contactDelegate_;
 }
 
 void
diff --git a/callwidget.h b/callwidget.h
index cd65608..55fdf19 100644
--- a/callwidget.h
+++ b/callwidget.h
@@ -28,6 +28,8 @@
 
 #include "navwidget.h"
 #include "instantmessagingwidget.h"
+#include "historydelegate.h"
+#include "contactdelegate.h"
 
 #include "callmodel.h"
 #include "video/renderer.h"
@@ -73,6 +75,9 @@ private:
     int inputVolume_;
     QMenu *menu_;
     QMovie *spinner_;
+    HistoryDelegate *historyDelegate_;
+    ContactDelegate *contactDelegate_;
+
 private:
     void findRingAccount();
     void setActualCall(Call *value);
diff --git a/configurationwidget.cpp b/configurationwidget.cpp
index bc659e6..b7162df 100644
--- a/configurationwidget.cpp
+++ b/configurationwidget.cpp
@@ -28,7 +28,6 @@
 #include "video/previewmanager.h"
 
 #include "accountserializationadapter.h"
-#include "accountstatedelegate.h"
 
 #include "accountmodel.h"
 #include "protocolmodel.h"
@@ -49,7 +48,8 @@ ConfigurationWidget::ConfigurationWidget(QWidget *parent) :
     ui->setupUi(this);
 
     ui->accountView->setModel(accountModel_);
-    ui->accountView->setItemDelegate(new AccountStateDelegate());
+    accountStateDelegate_ = new AccountStateDelegate();
+    ui->accountView->setItemDelegate(accountStateDelegate_);
 
     isLoading_ = true;
     ui->deviceBox->setModel(deviceModel_);
@@ -81,6 +81,7 @@ void ConfigurationWidget::atExit() {
 ConfigurationWidget::~ConfigurationWidget()
 {
     delete ui;
+    delete accountStateDelegate_;
 }
 
 void
diff --git a/configurationwidget.h b/configurationwidget.h
index 176351f..6f0ffa7 100644
--- a/configurationwidget.h
+++ b/configurationwidget.h
@@ -24,6 +24,7 @@
 
 #include "navwidget.h"
 #include "accountdetails.h"
+#include "accountstatedelegate.h"
 
 #include "accountmodel.h"
 #include "video/devicemodel.h"
@@ -68,6 +69,7 @@ private:
     CodecModel* codecModel_;
     bool isLoading_;
     AccountDetails* accountDetails_;
+    AccountStateDelegate *accountStateDelegate_;
 };
 
 #endif // CONFIGURATIONWIDGET_H
diff --git a/mainwindow.cpp b/mainwindow.cpp
index a852a18..0cd33f0 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -51,6 +51,7 @@ MainWindow::MainWindow(QWidget *parent) :
 MainWindow::~MainWindow()
 {
     delete ui;
+    delete navStack_;
 }
 
 void
diff --git a/navstack.cpp b/navstack.cpp
index 333e422..f058b4b 100644
--- a/navstack.cpp
+++ b/navstack.cpp
@@ -42,7 +42,11 @@ NavStack::NavStack(QStackedWidget* bar, QStackedWidget* stack, QWidget *parent)
 }
 
 NavStack::~NavStack()
-{}
+{
+    for (int i = 0; i < END; i++) {
+        delete navList_[i];
+    }
+}
 
 void
 NavStack::onNavigationRequested(ScreenEnum screen) {
diff --git a/videoview.cpp b/videoview.cpp
index d61635e..c907530 100644
--- a/videoview.cpp
+++ b/videoview.cpp
@@ -70,6 +70,9 @@ VideoView::VideoView(QWidget *parent) :
 VideoView::~VideoView()
 {
     delete ui;
+    delete overlay_;
+    delete timerLength_;
+    delete fadeAnim_;
 }
 
 void
diff --git a/wizarddialog.cpp b/wizarddialog.cpp
index b281d0c..112c9a8 100644
--- a/wizarddialog.cpp
+++ b/wizarddialog.cpp
@@ -48,6 +48,9 @@ WizardDialog::WizardDialog(QWidget *parent) :
 
 WizardDialog::~WizardDialog()
 {
+    if (ui->spinnerLabel->movie()) {
+        delete ui->spinnerLabel->movie();
+    }
     delete ui;
 }
 
-- 
GitLab