summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@nokia.com>2010-04-12 16:29:22 +0200
committercon <qtc-committer@nokia.com>2010-04-13 17:18:42 +0200
commit2ebe565d030c21cdef05c2b89fa6ba8a07579a09 (patch)
tree0c1cd1c6fc71b8aa9dff31cc71310f8bdff9eb0a
parentcbf207e014d016272b2104f8837054c933916a48 (diff)
downloadqt-creator-2ebe565d030c21cdef05c2b89fa6ba8a07579a09.tar.gz
Fix possible crash in TargetSetupPage
Properly register Qt versions and do not delete them afterwards Task-number: QTCREATORBUG-1122 Reviewed-by: dt (cherry picked from commit 94cb5db5b9654dbcc8dd1968c919c4706ada0543)
-rw-r--r--src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp b/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp
index 0a5f7e3393..b7b323d18b 100644
--- a/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp
+++ b/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp
@@ -203,6 +203,7 @@ bool TargetSetupPage::isTargetSelected(const QString &targetid) const
bool TargetSetupPage::setupProject(Qt4ProjectManager::Qt4Project *project)
{
Q_ASSERT(project->targets().isEmpty());
+ QtVersionManager *vm = QtVersionManager::instance();
for (int i = 0; i < m_treeWidget->topLevelItemCount(); ++i) {
QTreeWidgetItem *current = m_treeWidget->topLevelItem(i);
@@ -214,7 +215,13 @@ bool TargetSetupPage::setupProject(Qt4ProjectManager::Qt4Project *project)
if (child->checkState(0) != Qt::Checked)
continue;
- const ImportInfo &info = m_infos.at(child->data(0, Qt::UserRole).toInt());
+ ImportInfo &info = m_infos[child->data(0, Qt::UserRole).toInt()];
+
+ // Register temporary Qt version
+ if (info.isTemporary) {
+ vm->addVersion(info.version);
+ info.isTemporary = false;
+ }
if ((info.buildConfig | QtVersion::DebugBuild) != info.buildConfig)
targetInfos.append(BuildConfigurationInfo(info.version, QtVersion::QmakeBuildConfigs(info.buildConfig | QtVersion::DebugBuild),
@@ -320,7 +327,7 @@ TargetSetupPage::recursivelyCheckDirectoryForBuild(const QString &directory, int
return results;
// Check for in-source builds first:
- QString qmakeBinary = QtVersionManager::findQMakeBinaryFromMakefile(directory);
+ QString qmakeBinary = QtVersionManager::findQMakeBinaryFromMakefile(directory);
// Recurse into subdirectories:
if (qmakeBinary.isNull()) {