diff options
Diffstat (limited to 'src/plugins/projectexplorer/projectexplorer.cpp')
-rw-r--r-- | src/plugins/projectexplorer/projectexplorer.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index f2d67e2bf5..470ad5cfbd 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -1344,6 +1344,7 @@ void ProjectExplorerPlugin::setCurrent(Project *project, QString filePath, Node newContext = project->projectManager()->projectContext(); newLanguageID = project->projectManager()->projectLanguage(); } + core->removeAdditionalContext(oldContext); core->removeAdditionalContext(oldLanguageID); core->addAdditionalContext(newContext); @@ -1685,6 +1686,9 @@ void ProjectExplorerPlugin::startupProjectChanged() if (previousStartupProject) { disconnect(previousStartupProject, SIGNAL(activeTargetChanged(ProjectExplorer::Target*)), this, SLOT(updateRunActions())); + disconnect(previousStartupProject->activeTarget()->activeRunConfiguration(), + SIGNAL(isEnabledChanged(bool)), this, SLOT(updateRunActions())); + foreach (Target *t, previousStartupProject->targets()) disconnect(t, SIGNAL(activeRunConfigurationChanged(ProjectExplorer::RunConfiguration*)), this, SLOT(updateActions())); @@ -1695,6 +1699,8 @@ void ProjectExplorerPlugin::startupProjectChanged() if (project) { connect(project, SIGNAL(activeTargetChanged(ProjectExplorer::Target*)), this, SLOT(updateRunActions())); + connect(previousStartupProject->activeTarget()->activeRunConfiguration(), SIGNAL(isEnabledChanged(bool)), + this, SLOT(updateRunActions())); foreach (Target *t, project->targets()) connect(t, SIGNAL(activeRunConfigurationChanged(ProjectExplorer::RunConfiguration*)), this, SLOT(updateActions())); @@ -1726,8 +1732,10 @@ void ProjectExplorerPlugin::updateRunActions() return; } - bool canRun = findRunControlFactory(project->activeTarget()->activeRunConfiguration(), ProjectExplorer::Constants::RUNMODE); - const bool canDebug = !d->m_debuggingRunControl && findRunControlFactory(project->activeTarget()->activeRunConfiguration(), ProjectExplorer::Constants::DEBUGMODE); + bool canRun = findRunControlFactory(project->activeTarget()->activeRunConfiguration(), ProjectExplorer::Constants::RUNMODE) + && project->activeTarget()->activeRunConfiguration()->isEnabled(); + const bool canDebug = !d->m_debuggingRunControl && findRunControlFactory(project->activeTarget()->activeRunConfiguration(), ProjectExplorer::Constants::DEBUGMODE) + && project->activeTarget()->activeRunConfiguration()->isEnabled(); const bool building = d->m_buildManager->isBuilding(); d->m_runAction->setEnabled(canRun && !building); |