From fba7d769369a30c98bd24c8e4d238b4c0746cbf7 Mon Sep 17 00:00:00 2001
From: dt <qtc-committer@nokia.com>
Date: Wed, 23 Sep 2009 15:00:02 +0200
Subject: [PATCH] Canceling the wizard for a new cmake build configuration
 still created.

Made virtual newBuildConfiguration return a bool
---
 src/plugins/cmakeprojectmanager/cmakeproject.cpp      |  5 ++++-
 src/plugins/cmakeprojectmanager/cmakeproject.h        |  2 +-
 src/plugins/genericprojectmanager/genericproject.cpp  |  3 ++-
 src/plugins/genericprojectmanager/genericproject.h    |  2 +-
 .../projectexplorer/buildsettingspropertiespage.cpp   | 11 ++++++-----
 src/plugins/projectexplorer/project.h                 |  2 +-
 src/plugins/qmlprojectmanager/qmlproject.cpp          |  3 ++-
 src/plugins/qmlprojectmanager/qmlproject.h            |  2 +-
 src/plugins/qt4projectmanager/qt4project.cpp          |  3 ++-
 src/plugins/qt4projectmanager/qt4project.h            |  2 +-
 10 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index c4f423d3cbc..8b29c91f837 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -114,6 +114,7 @@ void CMakeProject::slotActiveBuildConfiguration()
 
 void CMakeProject::fileChanged(const QString &fileName)
 {
+    Q_UNUSED(fileName)
     if (m_insideFileChanged== true)
         return;
     m_insideFileChanged = true;
@@ -537,7 +538,7 @@ QList<ProjectExplorer::BuildConfigWidget*> CMakeProject::subConfigWidgets()
     return list;
 }
 
- void CMakeProject::newBuildConfiguration(const QString &buildConfiguration)
+ bool CMakeProject::newBuildConfiguration(const QString &buildConfiguration)
  {
      // Default to all
      if (targets().contains("all"))
@@ -548,7 +549,9 @@ QList<ProjectExplorer::BuildConfigWidget*> CMakeProject::subConfigWidgets()
         setValue(buildConfiguration, "buildDirectory", copw.buildDirectory());
         setValue(buildConfiguration, "msvcVersion", copw.msvcVersion());
         parseCMakeLists();
+        return true;
     }
+    return false;
  }
 
 ProjectExplorer::ProjectNode *CMakeProject::rootProjectNode() const
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h
index f267b95a818..c9bbbfb903e 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.h
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.h
@@ -94,7 +94,7 @@ public:
 
     // This method is called for new build configurations
     // You should probably set some default values in this method
-    virtual void newBuildConfiguration(const QString &buildConfiguration);
+    virtual bool newBuildConfiguration(const QString &buildConfiguration);
 
     virtual ProjectExplorer::ProjectNode *rootProjectNode() const;
 
diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp
index d012914dd90..71a78549392 100644
--- a/src/plugins/genericprojectmanager/genericproject.cpp
+++ b/src/plugins/genericprojectmanager/genericproject.cpp
@@ -437,9 +437,10 @@ QList<ProjectExplorer::BuildConfigWidget*> GenericProject::subConfigWidgets()
     return QList<ProjectExplorer::BuildConfigWidget*>();
 }
 
- void GenericProject::newBuildConfiguration(const QString &buildConfiguration)
+ bool GenericProject::newBuildConfiguration(const QString &buildConfiguration)
  {
      makeStep()->setBuildTarget(buildConfiguration, "all", true);
+     return true;
  }
 
 GenericProjectNode *GenericProject::rootProjectNode() const
diff --git a/src/plugins/genericprojectmanager/genericproject.h b/src/plugins/genericprojectmanager/genericproject.h
index 686ea7b9dd0..8ca62c83c5b 100644
--- a/src/plugins/genericprojectmanager/genericproject.h
+++ b/src/plugins/genericprojectmanager/genericproject.h
@@ -82,7 +82,7 @@ public:
     virtual ProjectExplorer::BuildConfigWidget *createConfigWidget();
     virtual QList<ProjectExplorer::BuildConfigWidget*> subConfigWidgets();
 
-    virtual void newBuildConfiguration(const QString &buildConfiguration);
+    virtual bool newBuildConfiguration(const QString &buildConfiguration);
     virtual GenericProjectNode *rootProjectNode() const;
     virtual QStringList files(FilesMode fileMode) const;
 
diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
index 67e2cea8139..3fd4c8999ac 100644
--- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
+++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
@@ -282,12 +282,13 @@ void BuildSettingsWidget::createConfiguration()
         newDisplayName += QString::number(i);
     }
 
-    m_project->addBuildConfiguration(newBuildConfiguration);
-    m_project->setDisplayNameFor(newBuildConfiguration, newDisplayName);
-    m_project->newBuildConfiguration(newBuildConfiguration);
-    m_buildConfiguration = newBuildConfiguration;
+    if (m_project->newBuildConfiguration(newBuildConfiguration)) {
+        m_project->addBuildConfiguration(newBuildConfiguration);
+        m_project->setDisplayNameFor(newBuildConfiguration, newDisplayName);
+        m_buildConfiguration = newBuildConfiguration;
 
-    updateBuildSettings();
+        updateBuildSettings();
+    }
 }
 
 void BuildSettingsWidget::cloneConfiguration()
diff --git a/src/plugins/projectexplorer/project.h b/src/plugins/projectexplorer/project.h
index ad36023c2d8..456646c970d 100644
--- a/src/plugins/projectexplorer/project.h
+++ b/src/plugins/projectexplorer/project.h
@@ -132,7 +132,7 @@ public:
     /* This method is called for new build configurations. You should probably
      * set some default values in this method.
      */
-    virtual void newBuildConfiguration(const QString &buildConfiguration) = 0;
+    virtual bool newBuildConfiguration(const QString &buildConfiguration) = 0;
 
     virtual ProjectNode *rootProjectNode() const = 0;
 
diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp
index 2d61bd50366..99fe21c147f 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.cpp
+++ b/src/plugins/qmlprojectmanager/qmlproject.cpp
@@ -214,8 +214,9 @@ QList<ProjectExplorer::BuildConfigWidget*> QmlProject::subConfigWidgets()
     return QList<ProjectExplorer::BuildConfigWidget*>();
 }
 
-void QmlProject::newBuildConfiguration(const QString &)
+bool QmlProject::newBuildConfiguration(const QString &)
 {
+    return true;
 }
 
 QmlProjectNode *QmlProject::rootProjectNode() const
diff --git a/src/plugins/qmlprojectmanager/qmlproject.h b/src/plugins/qmlprojectmanager/qmlproject.h
index 08e1164717f..df24dbfb382 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.h
+++ b/src/plugins/qmlprojectmanager/qmlproject.h
@@ -76,7 +76,7 @@ public:
     virtual ProjectExplorer::BuildConfigWidget *createConfigWidget();
     virtual QList<ProjectExplorer::BuildConfigWidget*> subConfigWidgets();
 
-    virtual void newBuildConfiguration(const QString &buildConfiguration);
+    virtual bool newBuildConfiguration(const QString &buildConfiguration);
     virtual QmlProjectNode *rootProjectNode() const;
     virtual QStringList files(FilesMode fileMode) const;
 
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index fe7543dfc92..6a3164f5ba5 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -759,9 +759,10 @@ void Qt4Project::addDefaultBuild()
     }
 }
 
-void Qt4Project::newBuildConfiguration(const QString &buildConfiguration)
+bool Qt4Project::newBuildConfiguration(const QString &buildConfiguration)
 {
     Q_UNUSED(buildConfiguration)
+    return true;
 }
 
 void Qt4Project::proFileParseError(const QString &errorMessage)
diff --git a/src/plugins/qt4projectmanager/qt4project.h b/src/plugins/qt4projectmanager/qt4project.h
index 75efbc88584..5232d3e6c79 100644
--- a/src/plugins/qt4projectmanager/qt4project.h
+++ b/src/plugins/qt4projectmanager/qt4project.h
@@ -170,7 +170,7 @@ public:
     QList<ProjectExplorer::BuildConfigWidget*> subConfigWidgets();
 
     void setQtVersion(const QString &buildConfiguration, int id);
-    virtual void newBuildConfiguration(const QString &buildConfiguration);
+    virtual bool newBuildConfiguration(const QString &buildConfiguration);
 
     QList<Internal::Qt4ProFileNode *> applicationProFiles() const;
 
-- 
GitLab