From e4d5d004b35e429fd8b6b7a8daf45037f4e067ba Mon Sep 17 00:00:00 2001 From: dt <qtc-committer@nokia.com> Date: Wed, 7 Apr 2010 13:41:46 +0200 Subject: [PATCH] Fix creating of projects --- src/plugins/qt4projectmanager/qt4project.cpp | 72 +++++--------------- src/plugins/qt4projectmanager/qt4project.h | 3 +- 2 files changed, 19 insertions(+), 56 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 2399e015333..1f5c7f8cffc 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -312,9 +312,7 @@ bool Qt4Project::fromMap(const QVariantMap &map) updateFileList(); // This might be incorrect, need a full update updateCodeModel(); - - checkForNewApplicationProjects(); - checkForDeletedApplicationProjects(); + createApplicationProjects(); foreach (Target *t, targets()) onAddedTarget(t); @@ -766,8 +764,6 @@ void Qt4Project::decrementPendingEvaluateFutures() // After beeing done, we need to call: updateFileList(); updateCodeModel(); - checkForNewApplicationProjects(); - checkForDeletedApplicationProjects(); if (debug) qDebug()<<" Setting state to Base"; m_asyncUpdateState = Base; @@ -980,61 +976,29 @@ void Qt4Project::collectApplicationProFiles(QList<Qt4ProFileNode *> &list, Qt4Pr } } -void Qt4Project::checkForNewApplicationProjects() +void Qt4Project::createApplicationProjects() { - // Check all new project nodes - // against all runConfigurations in all targets. - - foreach (Qt4ProFileNode *qt4proFile, applicationProFiles()) { - foreach (Target *target, targets()) { - Qt4Target *qt4Target = static_cast<Qt4Target *>(target); - bool found = false; - foreach (RunConfiguration *rc, target->runConfigurations()) { - Qt4RunConfiguration *qtrc = qobject_cast<Qt4RunConfiguration *>(rc); - if (qtrc && qtrc->proFilePath() == qt4proFile->path()) { - found = true; - break; - } - } - if (!found) { - qt4Target->addRunConfigurationForPath(qt4proFile->path()); - } - - // Remove unused CustomExecutableRCs: - if (target->runConfigurations().count() > 1) { - QList<RunConfiguration*> toRemove; - foreach (RunConfiguration * rc, target->runConfigurations()) { - CustomExecutableRunConfiguration *cerc = qobject_cast<CustomExecutableRunConfiguration *>(rc); - if (cerc && !cerc->isConfigured()) - toRemove.append(rc); - } - foreach (RunConfiguration *rc, toRemove) - target->removeRunConfiguration(rc); + foreach (Target *target, targets()) { + if (target->runConfigurations().count()) { + // Remove all run configurations which the new project wizard created + QList<RunConfiguration*> toRemove; + foreach (RunConfiguration * rc, target->runConfigurations()) { + CustomExecutableRunConfiguration *cerc = qobject_cast<CustomExecutableRunConfiguration *>(rc); + if (cerc && !cerc->isConfigured()) + toRemove.append(rc); } + foreach (RunConfiguration *rc, toRemove) + target->removeRunConfiguration(rc); } - } -} - -void Qt4Project::checkForDeletedApplicationProjects() -{ - QStringList paths; - foreach (Qt4ProFileNode * node, applicationProFiles()) - paths.append(node->path()); -// qDebug()<<"Still existing paths :"<<paths; - - QList<Qt4RunConfiguration *> removeList; - foreach (Target *target, targets()) { - foreach (RunConfiguration *rc, target->runConfigurations()) { - if (Qt4RunConfiguration *qt4rc = qobject_cast<Qt4RunConfiguration *>(rc)) { - if (!paths.contains(qt4rc->proFilePath())) { - removeList.append(qt4rc); - } + // Only add new runconfigurations if there are none. + if (target->runConfigurations().isEmpty()) { + Qt4Target *qt4Target = static_cast<Qt4Target *>(target); + foreach (Qt4ProFileNode *qt4proFile, applicationProFiles()) { + qt4Target->addRunConfigurationForPath(qt4proFile->path()); } } - foreach (Qt4RunConfiguration *qt4rc, removeList) - target->removeRunConfiguration(qt4rc); - + // Oh still none? Add a custom executable runconfiguration if (target->runConfigurations().isEmpty()) { target->addRunConfiguration(new ProjectExplorer::CustomExecutableRunConfiguration(target)); } diff --git a/src/plugins/qt4projectmanager/qt4project.h b/src/plugins/qt4projectmanager/qt4project.h index ade24435a47..84aad0efd18 100644 --- a/src/plugins/qt4projectmanager/qt4project.h +++ b/src/plugins/qt4projectmanager/qt4project.h @@ -185,8 +185,7 @@ private slots: private: void scheduleAsyncUpdate(); - void checkForNewApplicationProjects(); - void checkForDeletedApplicationProjects(); + void createApplicationProjects(); void updateCodeModel(); void updateFileList(); -- GitLab