From 4b3fdcb68378faa5412b9e33c4928cbacade9be5 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Wed, 17 Oct 2012 12:54:43 +0200 Subject: [PATCH] Qt4Project: Take control of target creation Do the same thing as the targetsetupwidget would have done by default. The Qt4BuildconfigurationFactory is only responsible for bcs that the user creates on the projects page. Task-number: QTCREATORBUG-8069 Change-Id: I708aace5055fcf2ad69d305347274d2e7d6dfbb6 Reviewed-by: Tobias Hunger --- src/plugins/qt4projectmanager/qt4project.cpp | 43 ++++++++++++-------- src/plugins/qt4projectmanager/qt4project.h | 2 + 2 files changed, 29 insertions(+), 16 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 50361e77932..e5d5df15eb5 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -397,6 +397,32 @@ void Qt4Project::updateFileList() } } +bool Qt4Project::setupTarget(ProjectExplorer::Target *t) +{ + QList infoList + = Qt4BuildConfigurationFactory::availableBuildConfigurations(t->kit(), m_fileInfo->fileName()); + setupTarget(t, infoList); + return true; +} + +void Qt4Project::setupTarget(ProjectExplorer::Target *t, const QList &infoList) +{ + // Build Configurations: + foreach (const BuildConfigurationInfo &info, infoList) { + QString name = info.buildConfig & QtSupport::BaseQtVersion::DebugBuild + ? tr("Debug") : tr("Release"); + Qt4BuildConfiguration *bc + = Qt4BuildConfiguration::setup(t, name, name, + info.buildConfig, info.additionalArguments, + info.directory, info.importing); + t->addBuildConfiguration(bc); + } + + // Deploy Configurations: + t->updateDefaultDeployConfigurations(); + // Do not create Run Configurations: Those will be generated later anyway. +} + bool Qt4Project::fromMap(const QVariantMap &map) { if (!Project::fromMap(map)) @@ -1422,22 +1448,7 @@ Target *Qt4Project::createTarget(Kit *k, const QList &in return 0; Target *t = new Target(this, k); - - // Build Configurations: - foreach (const BuildConfigurationInfo &info, infoList) { - QString name = info.buildConfig & QtSupport::BaseQtVersion::DebugBuild - ? tr("Debug") : tr("Release"); - Qt4BuildConfiguration *bc - = Qt4BuildConfiguration::setup(t, name, name, - info.buildConfig, info.additionalArguments, - info.directory, info.importing); - t->addBuildConfiguration(bc); - } - - // Deploy Configurations: - t->updateDefaultDeployConfigurations(); - // Do not create Run Configurations: Those will be generated later anyway. - + setupTarget(t, infoList); return t; } diff --git a/src/plugins/qt4projectmanager/qt4project.h b/src/plugins/qt4projectmanager/qt4project.h index 06646c4fa32..ebef4b0b21a 100644 --- a/src/plugins/qt4projectmanager/qt4project.h +++ b/src/plugins/qt4projectmanager/qt4project.h @@ -155,6 +155,8 @@ public slots: protected: bool fromMap(const QVariantMap &map); + bool setupTarget(ProjectExplorer::Target *t); + void setupTarget(ProjectExplorer::Target *t, const QList &infoList); private slots: void asyncUpdate();