diff options
author | Tobias Hunger <tobias.hunger@nokia.com> | 2010-04-12 16:29:22 +0200 |
---|---|---|
committer | con <qtc-committer@nokia.com> | 2010-04-13 17:18:42 +0200 |
commit | 2ebe565d030c21cdef05c2b89fa6ba8a07579a09 (patch) | |
tree | 0c1cd1c6fc71b8aa9dff31cc71310f8bdff9eb0a | |
parent | cbf207e014d016272b2104f8837054c933916a48 (diff) | |
download | qt-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.cpp | 11 |
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()) { |