From 4c5ce80141c1660547baa550f4e31ee86dc26143 Mon Sep 17 00:00:00 2001 From: Tobias Hunger <tobias.hunger@nokia.com> Date: Fri, 26 Mar 2010 10:37:05 +0100 Subject: [PATCH] Add method to retreive valid Qt versions only --- .../qt4projectmanager/projectloadwizard.cpp | 7 +------ .../qt4projectmanager/qtversionmanager.cpp | 15 ++++++++++++++- src/plugins/qt4projectmanager/qtversionmanager.h | 1 + 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/plugins/qt4projectmanager/projectloadwizard.cpp b/src/plugins/qt4projectmanager/projectloadwizard.cpp index d1c8e55014a..aa5ea0b4d34 100644 --- a/src/plugins/qt4projectmanager/projectloadwizard.cpp +++ b/src/plugins/qt4projectmanager/projectloadwizard.cpp @@ -89,12 +89,7 @@ ProjectLoadWizard::ProjectLoadWizard(Qt4Project *project, QWidget *parent, Qt::W // The default buildConfiguration depends on QmakeBuildConfig::DebugBuild // Also if the qt version is not yet in the Tools Options dialog we offer to add it there - QList<QtVersion *> validVersions; - foreach (QtVersion * v, vm->versions()) { - if (v->isValid()) - validVersions.append(v); - } - + QList<QtVersion *> validVersions = vm->validVersions(); if (m_importVersion) setupImportPage(m_importVersion, m_importBuildConfig, m_additionalArguments); else if (validVersions.count() > 1) diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp index ba3183fe417..5b6adc4959f 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.cpp +++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp @@ -159,6 +159,9 @@ QtVersionManager *QtVersionManager::instance() void QtVersionManager::addVersion(QtVersion *version) { QTC_ASSERT(version != 0, return); + if (m_versions.contains(version)) + return; + m_versions.append(version); int uniqueId = version->uniqueId(); m_uniqueIdToIndex.insert(uniqueId, m_versions.count() - 1); @@ -278,11 +281,21 @@ void QtVersionManager::writeVersionsIntoSettings() s->endArray(); } -QList<QtVersion* > QtVersionManager::versions() const +QList<QtVersion *> QtVersionManager::versions() const { return m_versions; } +QList<QtVersion *> QtVersionManager::validVersions() const +{ + QList<QtVersion *> results; + foreach(QtVersion *v, m_versions) { + if (v->isValid()) + results.append(v); + } + return results; +} + bool QtVersionManager::isValidId(int id) const { int pos = m_uniqueIdToIndex.value(id, -1); diff --git a/src/plugins/qt4projectmanager/qtversionmanager.h b/src/plugins/qt4projectmanager/qtversionmanager.h index 9cb80d3e4ac..1af75870243 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.h +++ b/src/plugins/qt4projectmanager/qtversionmanager.h @@ -199,6 +199,7 @@ public: // This will *always* return at least one (Qt in Path), even if that is // unconfigured. QList<QtVersion *> versions() const; + QList<QtVersion *> validVersions() const; // Note: DO NOT STORE THIS POINTER! // The QtVersionManager will delete it at random times and you will -- GitLab