OSDN Git Service

BuildConfiguration: Adapt name if Qt version changes
authorKai Koehne <kai.koehne@nokia.com>
Fri, 20 May 2011 10:52:59 +0000 (12:52 +0200)
committerKai Koehne <kai.koehne@nokia.com>
Wed, 25 May 2011 11:22:55 +0000 (13:22 +0200)
Change-Id: I1a34cb51f73af9779d6bdb07324d5dadcb5585b3

src/plugins/projectexplorer/projectconfiguration.cpp
src/plugins/projectexplorer/projectconfiguration.h
src/plugins/projectexplorer/target.cpp
src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp
src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp
src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp
src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp
src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
src/plugins/qt4projectmanager/qt4target.cpp
src/plugins/qt4projectmanager/qt4target.h

index 1c073ec..4210a43 100644 (file)
@@ -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;
index 711a5da..ec33046 100644 (file)
@@ -53,6 +53,8 @@ public:
 
     QString id() const;
     QString displayName() const;
+
+    bool usesDefaultDisplayName() const;
     void setDisplayName(const QString &name);
     void setDefaultDisplayName(const QString &name);
 
index f69cbaa..c0a7487 100644 (file)
@@ -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()
index 6348328..48de0ff 100644 (file)
@@ -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);
 
index 5db9d28..474a2eb 100644 (file)
@@ -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));
index ebbb55f..588d4fc 100644 (file)
@@ -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);
 
index 2b22ecb..cfd029d 100644 (file)
@@ -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);
 
index cddecb4..4b505cc 100644 (file)
@@ -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());
index f0cf14b..898832c 100644 (file)
@@ -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();
index 27bd17f..106bbb1 100644 (file)
@@ -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);
index 90bb416..7ae9c9c 100644 (file)
@@ -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);