diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp index 491ff4f085e98a635d76237f038432a8b7324c33..e087914cf30a7a12cb398ca0510d31e25c2dc08e 100644 --- a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp +++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp @@ -371,6 +371,10 @@ QString CustomExecutableRunConfiguration::executable() const return exec; } +bool CustomExecutableRunConfiguration::isConfigured() const +{ + return !m_executable.isEmpty(); +} LocalApplicationRunConfiguration::RunMode CustomExecutableRunConfiguration::runMode() const { diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.h b/src/plugins/projectexplorer/customexecutablerunconfiguration.h index 9e056a981bbc185116c3b3569824e05403d1510b..c591a1e9ea8f7adde82ff5c4a5901f4baf5e6e9b 100644 --- a/src/plugins/projectexplorer/customexecutablerunconfiguration.h +++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.h @@ -76,6 +76,10 @@ public: */ QString executable() const; + /** Returns whether this runconfiguration ever was configured with a executable + */ + bool isConfigured() const; + /** * Returns only what is stored in the internal variable, not what we might * get after extending it with a path or asking the user. This value is diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 8c46d2c898084dcae71d563c8f5ca1874b16ea51..2399e015333166188f731976fd48df39319c867f 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -999,6 +999,18 @@ void Qt4Project::checkForNewApplicationProjects() 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); + } } } }