diff --git a/src/plugins/projectexplorer/projectconfiguration.cpp b/src/plugins/projectexplorer/projectconfiguration.cpp index 1c073ec47774ce8b0cc5d19a1ac358a2cf8a34e8..4210a439c623f297e60cdb219ceada4dd4719d85 100644 --- a/src/plugins/projectexplorer/projectconfiguration.cpp +++ b/src/plugins/projectexplorer/projectconfiguration.cpp @@ -75,7 +75,11 @@ void ProjectConfiguration::setDisplayName(const QString &name) { if (displayName() == name) return; - m_displayName = name; + if (name == m_defaultDisplayName) { + m_displayName.clear(); + } else { + m_displayName = name; + } emit displayNameChanged(); } @@ -89,6 +93,11 @@ void ProjectConfiguration::setDefaultDisplayName(const QString &name) emit displayNameChanged(); } +bool ProjectConfiguration::usesDefaultDisplayName() const +{ + return m_displayName.isEmpty(); +} + QVariantMap ProjectConfiguration::toMap() const { QVariantMap map; diff --git a/src/plugins/projectexplorer/projectconfiguration.h b/src/plugins/projectexplorer/projectconfiguration.h index 711a5da1c09ccbafc1844f52dd329264c74c3d12..ec3304674895d9d829f06dc37f4119a501f5999b 100644 --- a/src/plugins/projectexplorer/projectconfiguration.h +++ b/src/plugins/projectexplorer/projectconfiguration.h @@ -53,6 +53,8 @@ public: QString id() const; QString displayName() const; + + bool usesDefaultDisplayName() const; void setDisplayName(const QString &name); void setDefaultDisplayName(const QString &name); diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp index f69cbaa08d5323ae4ad8112cef77642fcbdf4c35..c0a7487461a56e8cd306dd2725a93900cff39350 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -144,7 +144,13 @@ void Target::addBuildConfiguration(BuildConfiguration *configuration) foreach (const BuildConfiguration *bc, d->m_buildConfigurations) displayNames << bc->displayName(); configurationDisplayName = Project::makeUnique(configurationDisplayName, displayNames); - configuration->setDisplayName(configurationDisplayName); + if (configurationDisplayName != configuration->displayName()) { + if (configuration->usesDefaultDisplayName()) { + configuration->setDefaultDisplayName(configurationDisplayName); + } else { + configuration->setDisplayName(configurationDisplayName); + } + } // Make sure we have a sane tool chain if at all possible if (!configuration->toolChain() diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp index 6348328b5e74b9b760faeb6a4110bf0880985675..48de0fff08fb55af364cfe0735efa946c6d37166 100644 --- a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp @@ -177,7 +177,7 @@ ProjectExplorer::Target *Qt4DesktopTargetFactory::create(ProjectExplorer::Projec Qt4DesktopTarget *t = new Qt4DesktopTarget(static_cast<Qt4Project *>(parent), id); foreach (const BuildConfigurationInfo &info, infos) - t->addQt4BuildConfiguration(msgBuildConfigurationName(info), + t->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(), info.version, info.buildConfig, info.additionalArguments, info.directory); diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp index 5db9d283273f824ec01fc79b063171f8b341cfad..474a2eb04572ccf5d16d39c4c8916fe0274716d2 100644 --- a/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp @@ -162,7 +162,7 @@ ProjectExplorer::Target *Qt4SimulatorTargetFactory::create(ProjectExplorer::Proj Qt4SimulatorTarget *t = new Qt4SimulatorTarget(static_cast<Qt4Project *>(parent), id); foreach (const BuildConfigurationInfo &info, infos) - t->addQt4BuildConfiguration(msgBuildConfigurationName(info), info.version, info.buildConfig, + t->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(), info.version, info.buildConfig, info.additionalArguments, info.directory); t->addDeployConfiguration(t->createDeployConfiguration(ProjectExplorer::Constants::DEFAULT_DEPLOYCONFIGURATION_ID)); diff --git a/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp b/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp index ebbb55f079c5ea6f81271ff3c787f5e4ce1d223a..588d4fc1a748f44434940039547766fd26671773 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp @@ -212,7 +212,7 @@ ProjectExplorer::Target *Qt4MaemoTargetFactory::create(ProjectExplorer::Project Q_ASSERT(target); foreach (const BuildConfigurationInfo &info, infos) - target->addQt4BuildConfiguration(msgBuildConfigurationName(info), + target->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(), info.version, info.buildConfig, info.additionalArguments, info.directory); diff --git a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp index 2b22ecbcb4062a61db5141d43ad3db647f8e72cb..cfd029d4f6c5be9c1bcb84f150920dc7ada049b2 100644 --- a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp @@ -219,7 +219,7 @@ ProjectExplorer::Target *Qt4SymbianTargetFactory::create(ProjectExplorer::Projec return 0; Qt4SymbianTarget *t = new Qt4SymbianTarget(static_cast<Qt4Project *>(parent), id); foreach (const BuildConfigurationInfo &info, infos) - t->addQt4BuildConfiguration(msgBuildConfigurationName(info), + t->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(), info.version, info.buildConfig, info.additionalArguments, info.directory); diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp index cddecb48e43d1f19fc6a06f540d8f17b4319a21b..4b505cc7ec67936bfd2282f5c74a937415cc8600 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp @@ -734,14 +734,24 @@ BuildConfiguration *Qt4BuildConfigurationFactory::create(ProjectExplorer::Target return 0; //: Debug build configuration. We recommend not translating it. - BuildConfiguration *bc = qt4Target->addQt4BuildConfiguration(tr("%1 Debug").arg(buildConfigurationName), + QString defaultDebugName = tr("%1 Debug").arg(version->displayName()); + QString customDebugName; + if (buildConfigurationName != version->displayName()) + customDebugName = tr("%1 Debug").arg(buildConfigurationName); + + BuildConfiguration *bc = qt4Target->addQt4BuildConfiguration(defaultDebugName, customDebugName, version, (version->defaultBuildConfig() | QtSupport::BaseQtVersion::DebugBuild), QString(), QString()); if (qt4Target->id() != Constants::S60_EMULATOR_TARGET_ID) { //: Release build configuration. We recommend not translating it. - bc = qt4Target->addQt4BuildConfiguration(tr("%1 Release").arg(buildConfigurationName), + QString defaultReleaseName = tr("%1 Release").arg(version->displayName()); + QString customReleaseName; + if (buildConfigurationName != version->displayName()) + customReleaseName = tr("%1 Release").arg(buildConfigurationName); + + bc = qt4Target->addQt4BuildConfiguration(defaultReleaseName, customReleaseName, version, (version->defaultBuildConfig() & ~QtSupport::BaseQtVersion::DebugBuild), QString(), QString()); diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp index f0cf14bcd9a04ff663bf72f76db4d76e350bb4f9..898832c00c024a679acda1caeddd26dcd0e15b7b 100644 --- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp +++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp @@ -473,9 +473,29 @@ void Qt4ProjectConfigWidget::qtVersionSelected(const QString &) QtSupport::QtVersionManager *vm = QtSupport::QtVersionManager::instance(); QtSupport::BaseQtVersion *newQtVersion = vm->version(newQtVersionId); + if (newQtVersion) { + const QString qtVersionName = newQtVersion->displayName(); + QString defaultConfigName = (m_buildConfiguration->buildType() & BuildConfiguration::Debug) ? + //: Name of a debug build configuration to created by a project wizard, %1 being the Qt version name. We recommend not translating it. + tr("%1 Debug").arg(qtVersionName) : + //: Name of a release build configuration to created by a project wizard, %1 being the Qt version name. We recommend not translating it. + tr("%1 Release").arg(qtVersionName); + + // make name unique + QStringList displayNames; + foreach (const BuildConfiguration *bc, m_buildConfiguration->target()->buildConfigurations()) { + if (bc != m_buildConfiguration) + displayNames << bc->displayName(); + } + defaultConfigName = Project::makeUnique(defaultConfigName, displayNames); + + m_buildConfiguration->setDefaultDisplayName(defaultConfigName); + } + m_ignoreChange = true; m_buildConfiguration->setQtVersion(newQtVersion); m_ignoreChange = false; + m_ui->qtVersionComboBox->setToolTip(newQtVersion ? newQtVersion->toHtml(false) : QString()); updateShadowBuildUi(); diff --git a/src/plugins/qt4projectmanager/qt4target.cpp b/src/plugins/qt4projectmanager/qt4target.cpp index 27bd17f6ced73736fdb4bff6d46658d54a4bddb3..106bbb1aa5c18b3796aeadd1f47bda6e89989a69 100644 --- a/src/plugins/qt4projectmanager/qt4target.cpp +++ b/src/plugins/qt4projectmanager/qt4target.cpp @@ -277,7 +277,8 @@ void Qt4BaseTarget::removeUnconfiguredCustomExectutableRunConfigurations() } } -Qt4BuildConfiguration *Qt4BaseTarget::addQt4BuildConfiguration(QString displayName, QtSupport::BaseQtVersion *qtversion, +Qt4BuildConfiguration *Qt4BaseTarget::addQt4BuildConfiguration(QString defaultDisplayName, + QString displayName, QtSupport::BaseQtVersion *qtversion, QtSupport::BaseQtVersion::QmakeBuildConfigs qmakeBuildConfiguration, QString additionalArguments, QString directory) @@ -287,7 +288,8 @@ Qt4BuildConfiguration *Qt4BaseTarget::addQt4BuildConfiguration(QString displayNa // Add the buildconfiguration Qt4BuildConfiguration *bc = new Qt4BuildConfiguration(this); - bc->setDefaultDisplayName(displayName); + bc->setDefaultDisplayName(defaultDisplayName); + bc->setDisplayName(displayName); ProjectExplorer::BuildStepList *buildSteps = bc->stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD); ProjectExplorer::BuildStepList *cleanSteps = bc->stepList(ProjectExplorer::Constants::BUILDSTEPS_CLEAN); diff --git a/src/plugins/qt4projectmanager/qt4target.h b/src/plugins/qt4projectmanager/qt4target.h index 90bb416194ce9ec5f17b03ac630f5006e39ce135..7ae9c9cc819e8a7f216ab1f916bde6faea627aa2 100644 --- a/src/plugins/qt4projectmanager/qt4target.h +++ b/src/plugins/qt4projectmanager/qt4target.h @@ -77,9 +77,16 @@ public: // This is the same for almost all Qt4Targets // so for now offer a convience function +<<<<<<< HEAD Qt4BuildConfiguration *addQt4BuildConfiguration(QString displayName, QtSupport::BaseQtVersion *qtversion, QtSupport::BaseQtVersion::QmakeBuildConfigs qmakeBuildConfiguration, +======= + Qt4BuildConfiguration *addQt4BuildConfiguration(QString defaultDisplayName, + QString displayName, + BaseQtVersion *qtversion, + BaseQtVersion::QmakeBuildConfigs qmakeBuildConfiguration, +>>>>>>> BuildConfiguration: Adapt name if Qt version changes QString additionalArguments, QString directory);