diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp index 6e67989158b6424f4da2f06c0bc1591016eb471e..4415a73209c396e1025d97cf0865364c1cbcc004 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.cpp +++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp @@ -177,7 +177,10 @@ void QtVersionManager::apply() } } } - m_versions = m_widget->versions(); + qDeleteAll(m_versions); + m_versions.clear(); + foreach(QtVersion *version, m_widget->versions()) + m_versions.append(new QtVersion(*version)); if (versionPathsChanged) updateDocumentation(); updateUniqueIdToIndexMap(); @@ -361,11 +364,16 @@ QtVersion *QtVersionManager::currentQtVersion() const QtDirWidget::QtDirWidget(QWidget *parent, QList<QtVersion *> versions, int defaultVersion) : QWidget(parent) - , m_versions(versions) , m_defaultVersion(defaultVersion) , m_specifyNameString(tr("<specify a name>")) , m_specifyPathString(tr("<specify a path>")) { + // Initialize m_versions + foreach(QtVersion *version, versions) { + m_versions.append(new QtVersion(*version)); + } + + m_ui.setupUi(this); m_ui.qtPath->setExpectedKind(Core::Utils::PathChooser::Directory); m_ui.qtPath->setPromptDialogTitle(tr("Select QTDIR")); @@ -417,6 +425,11 @@ QtDirWidget::QtDirWidget(QWidget *parent, QList<QtVersion *> versions, int defau updateState(); } +QtDirWidget::~QtDirWidget() +{ + qDeleteAll(m_versions); +} + void QtDirWidget::addQtDir() { QtVersion *newVersion = new QtVersion(m_specifyNameString, m_specifyPathString); diff --git a/src/plugins/qt4projectmanager/qtversionmanager.h b/src/plugins/qt4projectmanager/qtversionmanager.h index f6ccd017b67e7edd9cd16548e06cfd967d3604d1..11e5ec8235922558fc83d9582fab762c77c18c2e 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.h +++ b/src/plugins/qt4projectmanager/qtversionmanager.h @@ -122,7 +122,6 @@ private: // This is updated on first call to qmakeCommand // That function is called from updateVersionInfo() mutable QString m_qtVersionString; - Q_DISABLE_COPY(QtVersion); }; @@ -131,6 +130,7 @@ class QtDirWidget : public QWidget Q_OBJECT public: QtDirWidget(QWidget *parent, QList<QtVersion *> versions, int defaultVersion); + ~QtDirWidget(); QList<QtVersion *> versions() const; int defaultVersion() const; void finish();