diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp index 34b08f194e9..9933ea3f26d 100644 --- a/src/plugins/projectexplorer/buildconfiguration.cpp +++ b/src/plugins/projectexplorer/buildconfiguration.cpp @@ -96,6 +96,8 @@ BuildConfiguration::BuildConfiguration(Target *target, BuildConfiguration *sourc this, SLOT(handleToolChainRemovals(ProjectExplorer::ToolChain*))); connect(ToolChainManager::instance(), SIGNAL(toolChainAdded(ProjectExplorer::ToolChain*)), this, SLOT(handleToolChainAddition(ProjectExplorer::ToolChain*))); + connect(ToolChainManager::instance(), SIGNAL(toolChainUpdated(ProjectExplorer::ToolChain*)), + this, SLOT(handleToolChainUpdates(ProjectExplorer::ToolChain*))); } BuildConfiguration::~BuildConfiguration() @@ -188,6 +190,8 @@ void BuildConfiguration::handleToolChainUpdates(ProjectExplorer::ToolChain *tc) QList candidates = target()->possibleToolChains(this); if (!candidates.contains(m_toolChain)) setToolChain(target()->preferredToolChain(this)); + else + emit toolChainChanged(); } diff --git a/src/plugins/projectexplorer/buildenvironmentwidget.cpp b/src/plugins/projectexplorer/buildenvironmentwidget.cpp index dafd1358e39..9162d5e1a7d 100644 --- a/src/plugins/projectexplorer/buildenvironmentwidget.cpp +++ b/src/plugins/projectexplorer/buildenvironmentwidget.cpp @@ -71,12 +71,16 @@ void BuildEnvironmentWidget::init(BuildConfiguration *bc) if (m_buildConfiguration) { disconnect(m_buildConfiguration, SIGNAL(environmentChanged()), this, SLOT(environmentChanged())); + disconnect(m_buildConfiguration, SIGNAL(toolChainChanged()), + this, SLOT(environmentChanged())); } m_buildConfiguration = bc; connect(m_buildConfiguration, SIGNAL(environmentChanged()), this, SLOT(environmentChanged())); + connect(m_buildConfiguration, SIGNAL(toolChainChanged()), + this, SLOT(environmentChanged())); m_clearSystemEnvironmentCheckBox->setChecked(!m_buildConfiguration->useSystemEnvironment()); m_buildEnvironmentWidget->setBaseEnvironment(m_buildConfiguration->baseEnvironment());