From 83016e47feeed3eb3e40470626ffb2ddf2deab9d Mon Sep 17 00:00:00 2001
From: dt <qtc-committer@nokia.com>
Date: Wed, 4 Nov 2009 18:50:37 +0100
Subject: [PATCH] Fix leaking PropertiesPanels

---
 src/plugins/projectexplorer/projectwindow.cpp | 6 ++++++
 src/plugins/projectexplorer/projectwindow.h   | 1 +
 2 files changed, 7 insertions(+)

diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp
index 125c6c21933..6a6708506c8 100644
--- a/src/plugins/projectexplorer/projectwindow.cpp
+++ b/src/plugins/projectexplorer/projectwindow.cpp
@@ -737,6 +737,8 @@ ProjectWindow::ProjectWindow(QWidget *parent)
 
 ProjectWindow::~ProjectWindow()
 {
+    qDeleteAll(m_panels);
+    m_panels.clear();
 }
 
 void ProjectWindow::projectAdded()
@@ -775,6 +777,9 @@ void ProjectWindow::showProperties(Project *project)
     // Remove the tabs from the tab widget first
     m_panelsWidget->clear();
 
+    qDeleteAll(m_panels);
+    m_panels.clear();
+
     m_panelsWidget->addWidget(tr("Active Build and Run Configurations"), m_activeConfigurationWidget);
     m_panelsWidget->addWidget(m_spacerBetween);
     m_panelsWidget->addWidget(m_projectChooser);
@@ -788,6 +793,7 @@ void ProjectWindow::showProperties(Project *project)
                 if (debug)
                   qDebug() << "ProjectWindow - setting up project properties tab " << panel->name();
                 m_panelsWidget->addWidget(panel->name(), panel->widget());
+                m_panels.push_back(panel);
             }
         }
     }
diff --git a/src/plugins/projectexplorer/projectwindow.h b/src/plugins/projectexplorer/projectwindow.h
index 2ad04af4cbf..c183a92805f 100644
--- a/src/plugins/projectexplorer/projectwindow.h
+++ b/src/plugins/projectexplorer/projectwindow.h
@@ -191,6 +191,7 @@ private:
     QWidget *m_projectChooser;
     QLabel *m_noprojectLabel;
     PanelsWidget *m_panelsWidget;
+    QList<PropertiesPanel *> m_panels;
 };
 
 
-- 
GitLab