From a3f827b1b8e8a043b32a4de7eeb19681dfa41494 Mon Sep 17 00:00:00 2001
From: dt <qtc-committer@nokia.com>
Date: Wed, 24 Mar 2010 16:59:18 +0100
Subject: [PATCH] Remove isApplication() and simplfy startup project logic

---
 .../cmakeprojectmanager/cmakeproject.cpp      |  5 -----
 .../cmakeprojectmanager/cmakeproject.h        |  2 --
 .../genericprojectmanager/genericproject.cpp  |  5 -----
 .../genericprojectmanager/genericproject.h    |  2 --
 src/plugins/projectexplorer/project.h         |  1 -
 src/plugins/projectexplorer/session.cpp       | 20 +++++--------------
 src/plugins/projectexplorer/session.h         |  1 -
 src/plugins/qmlprojectmanager/qmlproject.cpp  |  5 -----
 src/plugins/qmlprojectmanager/qmlproject.h    |  2 --
 src/plugins/qt4projectmanager/qt4project.cpp  | 11 ----------
 src/plugins/qt4projectmanager/qt4project.h    |  3 ---
 11 files changed, 5 insertions(+), 52 deletions(-)

diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index a850ba3ac64..85f49091387 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -436,11 +436,6 @@ QList<ProjectExplorer::Project *> CMakeProject::dependsOn()
     return QList<Project *>();
 }
 
-bool CMakeProject::isApplication() const
-{
-    return true;
-}
-
 ProjectExplorer::BuildConfigWidget *CMakeProject::createConfigWidget()
 {
     return new CMakeBuildSettingsWidget(this);
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h
index 2c29c457646..7242f92905e 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.h
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.h
@@ -83,8 +83,6 @@ public:
 
     QList<ProjectExplorer::Project *> dependsOn(); //NBS TODO implement dependsOn
 
-    bool isApplication() const;
-
     ProjectExplorer::BuildConfigWidget *createConfigWidget();
     QList<ProjectExplorer::BuildConfigWidget*> subConfigWidgets();
 
diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp
index 88af20a68fe..c21d3744b06 100644
--- a/src/plugins/genericprojectmanager/genericproject.cpp
+++ b/src/plugins/genericprojectmanager/genericproject.cpp
@@ -388,11 +388,6 @@ QList<ProjectExplorer::Project *> GenericProject::dependsOn()
     return QList<Project *>();
 }
 
-bool GenericProject::isApplication() const
-{
-    return true;
-}
-
 ProjectExplorer::BuildConfigWidget *GenericProject::createConfigWidget()
 {
     return new GenericBuildSettingsWidget(this);
diff --git a/src/plugins/genericprojectmanager/genericproject.h b/src/plugins/genericprojectmanager/genericproject.h
index 124ae9f1449..884d7a10f86 100644
--- a/src/plugins/genericprojectmanager/genericproject.h
+++ b/src/plugins/genericprojectmanager/genericproject.h
@@ -78,8 +78,6 @@ public:
 
     QList<ProjectExplorer::Project *> dependsOn();
 
-    bool isApplication() const;
-
     ProjectExplorer::BuildConfigWidget *createConfigWidget();
     QList<ProjectExplorer::BuildConfigWidget*> subConfigWidgets();
 
diff --git a/src/plugins/projectexplorer/project.h b/src/plugins/projectexplorer/project.h
index 10b6bb3953f..79f4f8ba4aa 100644
--- a/src/plugins/projectexplorer/project.h
+++ b/src/plugins/projectexplorer/project.h
@@ -72,7 +72,6 @@ public:
 
     virtual QList<Project *> dependsOn() = 0; //NBS TODO implement dependsOn
 
-    virtual bool isApplication() const = 0;
     bool hasActiveBuildSettings() const;
 
     // EditorConfiguration:
diff --git a/src/plugins/projectexplorer/session.cpp b/src/plugins/projectexplorer/session.cpp
index 2f2c7340f76..da7ad5254c0 100644
--- a/src/plugins/projectexplorer/session.cpp
+++ b/src/plugins/projectexplorer/session.cpp
@@ -598,8 +598,8 @@ void SessionManager::addProjects(const QList<Project*> &projects)
 
     // maybe we have a new startup project?
     if (!startupProject())
-        if (Project *newStartupProject = defaultStartupProject())
-            setStartupProject(newStartupProject);
+        if (!m_file->m_projects.isEmpty())
+            setStartupProject(m_file->m_projects.first());
 }
 
 void SessionManager::removeProject(Project *project)
@@ -631,7 +631,7 @@ bool SessionManager::createImpl(const QString &fileName)
         delete m_file;
         m_file = new SessionFile;
         m_file->setFileName(fileName);
-        setStartupProject(defaultStartupProject());
+        setStartupProject(0);
     }
 
     m_defaultVirginSession = false;
@@ -792,16 +792,6 @@ QStringList SessionManager::dependenciesOrder() const
     return ordered;
 }
 
-Project *SessionManager::defaultStartupProject() const
-{
-    // Just take first one
-    foreach (Project *p, m_file->m_projects) {
-        if (p->isApplication())
-            return p;
-    }
-    return 0;
-}
-
 QList<Project *> SessionManager::projectOrder(Project *project) const
 {
     QList<Project *> result;
@@ -1010,8 +1000,8 @@ void SessionManager::removeProjects(QList<Project *> remove)
     m_file->m_depMap = resMap;
 
     if (startupProject() == 0)
-        if (Project *newStartupProject = defaultStartupProject())
-            setStartupProject(newStartupProject);
+        if (!m_file->m_projects.isEmpty())
+            setStartupProject(m_file->m_projects.first());
 }
 
 void SessionManager::setValue(const QString &name, const QVariant &value)
diff --git a/src/plugins/projectexplorer/session.h b/src/plugins/projectexplorer/session.h
index f7b5d246d68..16397e4a1f3 100644
--- a/src/plugins/projectexplorer/session.h
+++ b/src/plugins/projectexplorer/session.h
@@ -184,7 +184,6 @@ private:
     bool recursiveDependencyCheck(const QString &newDep, const QString &checkDep) const;
     QStringList dependencies(const QString &proName) const;
     QStringList dependenciesOrder() const;
-    Project *defaultStartupProject() const;
 
     void updateName(const QString &session);
 
diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp
index 89aeba3d6ca..a6ff729c8e3 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.cpp
+++ b/src/plugins/qmlprojectmanager/qmlproject.cpp
@@ -223,11 +223,6 @@ QList<ProjectExplorer::Project *> QmlProject::dependsOn()
     return QList<Project *>();
 }
 
-bool QmlProject::isApplication() const
-{
-    return true;
-}
-
 ProjectExplorer::BuildConfigWidget *QmlProject::createConfigWidget()
 {
     return 0;
diff --git a/src/plugins/qmlprojectmanager/qmlproject.h b/src/plugins/qmlprojectmanager/qmlproject.h
index 2df755c46a8..a1903dfc085 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.h
+++ b/src/plugins/qmlprojectmanager/qmlproject.h
@@ -77,8 +77,6 @@ public:
 
     QList<ProjectExplorer::Project *> dependsOn();
 
-    bool isApplication() const;
-
     ProjectExplorer::BuildConfigWidget *createConfigWidget();
     QList<ProjectExplorer::BuildConfigWidget*> subConfigWidgets();
 
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index 5ea18c2e30a..2af165845b0 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -241,7 +241,6 @@ Qt4Project::Qt4Project(Qt4Manager *manager, const QString& fileName) :
     m_nodesWatcher(new Internal::Qt4NodesWatcher(this)),
     m_targetFactory(new Qt4TargetFactory(this)),
     m_fileInfo(new Qt4ProjectFile(this, fileName, this)),
-    m_isApplication(true),
     m_projectFiles(new Qt4ProjectFiles),
     m_proFileOption(0),
     m_asyncUpdateFutureInterface(0),
@@ -820,14 +819,6 @@ void Qt4Project::asyncUpdate()
     m_asyncUpdateState = AsyncUpdateInProgress;
 }
 
-/*!
-  Returns whether the project is an application, or has an application as a subproject.
- */
-bool Qt4Project::isApplication() const
-{
-    return m_isApplication;
-}
-
 ProjectExplorer::IProjectManager *Qt4Project::projectManager() const
 {
     return m_manager;
@@ -1007,7 +998,6 @@ void Qt4Project::checkForNewApplicationProjects()
             }
             if (!found) {
                 qt4Target->addRunConfigurationForPath(qt4proFile->path());
-                m_isApplication = true;
             }
         }
     }
@@ -1035,7 +1025,6 @@ void Qt4Project::checkForDeletedApplicationProjects()
 
         if (target->runConfigurations().isEmpty()) {
             target->addRunConfiguration(new ProjectExplorer::CustomExecutableRunConfiguration(target));
-            m_isApplication = false;
         }
     }
 }
diff --git a/src/plugins/qt4projectmanager/qt4project.h b/src/plugins/qt4projectmanager/qt4project.h
index 324b78825d3..ade24435a47 100644
--- a/src/plugins/qt4projectmanager/qt4project.h
+++ b/src/plugins/qt4projectmanager/qt4project.h
@@ -127,8 +127,6 @@ public:
     QList<Core::IFile *> dependencies();     //NBS remove
     QList<ProjectExplorer::Project *>dependsOn();
 
-    bool isApplication() const;
-
     Internal::Qt4ProFileNode *rootProjectNode() const;
 
     virtual QStringList files(FilesMode fileMode) const;
@@ -208,7 +206,6 @@ private:
     Internal::Qt4TargetFactory *m_targetFactory;
 
     Qt4ProjectFile *m_fileInfo;
-    bool m_isApplication;
 
     // Current configuration
     QString m_oldQtIncludePath;
-- 
GitLab