From a16806353acd63896f75c0a832cd209e391c39b9 Mon Sep 17 00:00:00 2001
From: con <qtc-committer@nokia.com>
Date: Fri, 25 Sep 2009 15:19:45 +0200
Subject: [PATCH] Remove string identifier from setDisplayNameFor and
 setUserEnvChanges.

---
 .../cmakebuildenvironmentwidget.cpp                |  3 ++-
 src/plugins/cmakeprojectmanager/cmakeproject.cpp   |  9 ++++-----
 src/plugins/cmakeprojectmanager/cmakeproject.h     |  2 +-
 .../buildsettingspropertiespage.cpp                | 14 +-------------
 src/plugins/projectexplorer/project.cpp            | 10 +++++-----
 src/plugins/projectexplorer/project.h              |  2 +-
 .../qt4projectmanager/qt4projectconfigwidget.cpp   |  3 ++-
 7 files changed, 16 insertions(+), 27 deletions(-)

diff --git a/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.cpp b/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.cpp
index 76afbc4ac52..5960f19a3ba 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.cpp
@@ -85,7 +85,8 @@ void CMakeBuildEnvironmentWidget::init(const QString &buildConfigurationName)
 
 void CMakeBuildEnvironmentWidget::environmentModelUserChangesUpdated()
 {
-    m_pro->setUserEnvironmentChanges(m_buildConfiguration, m_buildEnvironmentWidget->userChanges());
+    m_pro->setUserEnvironmentChanges(
+            m_pro->buildConfiguration(m_buildConfiguration), m_buildEnvironmentWidget->userChanges());
 }
 
 void CMakeBuildEnvironmentWidget::clearSystemEnvironmentCheckBoxClicked(bool checked)
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index e5332601a4e..afd3be51152 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -584,14 +584,13 @@ QList<ProjectExplorer::EnvironmentItem> CMakeProject::userEnvironmentChanges(Bui
     return EnvironmentItem::fromStringList(configuration->value("userEnvironmentChanges").toStringList());
 }
 
-void CMakeProject::setUserEnvironmentChanges(const QString &buildConfig, const QList<ProjectExplorer::EnvironmentItem> &diff)
+void CMakeProject::setUserEnvironmentChanges(BuildConfiguration *configuration, const QList<ProjectExplorer::EnvironmentItem> &diff)
 {
-    ProjectExplorer::BuildConfiguration *bc = buildConfiguration(buildConfig);
     QStringList list = EnvironmentItem::toStringList(diff);
-    if (list == bc->value("userEnvironmentChanges"))
+    if (list == configuration->value("userEnvironmentChanges"))
         return;
-    bc->setValue("userEnvironmentChanges", list);
-    emit environmentChanged(buildConfig);
+    configuration->setValue("userEnvironmentChanges", list);
+    emit environmentChanged(configuration->name());
 }
 
 QString CMakeProject::buildDirectory(BuildConfiguration *configuration) const
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h
index 79b405e9f5f..69081e367b4 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.h
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.h
@@ -101,7 +101,7 @@ public:
     //building environment
     ProjectExplorer::Environment environment(ProjectExplorer::BuildConfiguration *configuration) const;
     ProjectExplorer::Environment baseEnvironment(ProjectExplorer::BuildConfiguration *configuration) const;
-    void setUserEnvironmentChanges(const QString &buildConfig, const QList<ProjectExplorer::EnvironmentItem> &diff);
+    void setUserEnvironmentChanges(ProjectExplorer::BuildConfiguration *configuration, const QList<ProjectExplorer::EnvironmentItem> &diff);
     QList<ProjectExplorer::EnvironmentItem> userEnvironmentChanges(ProjectExplorer::BuildConfiguration *configuration) const;
     bool useSystemEnvironment(ProjectExplorer::BuildConfiguration *configuration) const;
     void setUseSystemEnvironment(ProjectExplorer::BuildConfiguration *configuration, bool b);
diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
index 46ffaf145c8..a6f26738793 100644
--- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
+++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
@@ -323,20 +323,8 @@ void BuildSettingsWidget::cloneConfiguration(const QString &sourceConfiguration)
         newBuildConfiguration += QString::number(i);
     }
 
-    // Check that we don't have a configuration with the same displayName
-    QStringList displayNames;
-    foreach (const BuildConfiguration *bc, m_project->buildConfigurations())
-        displayNames << bc->displayName();
-
-    if (displayNames.contains(newDisplayName)) {
-        int i = 2;
-        while (displayNames.contains(newDisplayName + QString::number(i)))
-            ++i;
-        newDisplayName += QString::number(i);
-    }
-
     m_project->copyBuildConfiguration(sourceConfiguration, newBuildConfiguration);
-    m_project->setDisplayNameFor(newBuildConfiguration, newDisplayName);
+    m_project->setDisplayNameFor(m_project->buildConfiguration(newBuildConfiguration), newDisplayName);
 
     m_buildConfiguration = newBuildConfiguration;
     updateBuildSettings();
diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp
index ff7a3616ee2..843d1ce6e12 100644
--- a/src/plugins/projectexplorer/project.cpp
+++ b/src/plugins/projectexplorer/project.cpp
@@ -509,22 +509,22 @@ EditorConfiguration *Project::editorConfiguration() const
     return m_editorConfiguration;
 }
 
-void Project::setDisplayNameFor(const QString &buildConfigurationName, const QString &displayName)
+void Project::setDisplayNameFor(BuildConfiguration *configuration, const QString &displayName)
 {
     QStringList displayNames;
     foreach (BuildConfiguration *bc, m_buildConfigurationValues) {
-        if (bc->name() != buildConfigurationName)
+        if (bc != configuration)
             displayNames << bc->displayName();
     }
     if (displayNames.contains(displayName)) {
         int i = 2;
         while (displayNames.contains(displayName + QString::number(i)))
             ++i;
-        buildConfiguration(buildConfigurationName)->setDisplayName(displayName + QString::number(i));
+        configuration->setDisplayName(displayName + QString::number(i));
     } else {
-        buildConfiguration(buildConfigurationName)->setDisplayName(displayName);
+        configuration->setDisplayName(displayName);
     }
-    emit buildConfigurationDisplayNameChanged(buildConfigurationName);
+    emit buildConfigurationDisplayNameChanged(configuration->name());
 }
 
 QByteArray Project::predefinedMacros(const QString &) const
diff --git a/src/plugins/projectexplorer/project.h b/src/plugins/projectexplorer/project.h
index b8759b5f01e..80ea103118e 100644
--- a/src/plugins/projectexplorer/project.h
+++ b/src/plugins/projectexplorer/project.h
@@ -101,7 +101,7 @@ public:
     void copyBuildConfiguration(const QString &source, const QString &dest);
     BuildConfiguration *buildConfiguration(const QString & name) const;
     QList<BuildConfiguration *> buildConfigurations() const;
-    void setDisplayNameFor(const QString &buildConfiguration, const QString &displayName);
+    void setDisplayNameFor(BuildConfiguration *configuration, const QString &displayName);
     BuildConfiguration *activeBuildConfiguration() const;
     void setActiveBuildConfiguration(BuildConfiguration *configuration);
 
diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
index 562689e570f..200a74f4765 100644
--- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
@@ -190,7 +190,8 @@ void Qt4ProjectConfigWidget::init(const QString &buildConfiguration)
 
 void Qt4ProjectConfigWidget::changeConfigName(const QString &newName)
 {
-    m_pro->setDisplayNameFor(m_buildConfiguration, newName);
+    m_pro->setDisplayNameFor(
+            m_pro->buildConfiguration(m_buildConfiguration), newName);
 }
 
 void Qt4ProjectConfigWidget::setupQtVersionsComboBox()
-- 
GitLab