Handle tool chain configuration changes

Reviewed-by: dt
This commit is contained in:
Tobias Hunger
2011-03-24 14:35:03 +01:00
parent 4e564135ef
commit ee4700d934
2 changed files with 12 additions and 0 deletions

View File

@@ -77,6 +77,8 @@ BuildConfiguration::BuildConfiguration(Target *target, const QString &id) :
this, SLOT(handleToolChainRemovals(ProjectExplorer::ToolChain*))); this, SLOT(handleToolChainRemovals(ProjectExplorer::ToolChain*)));
connect(ToolChainManager::instance(), SIGNAL(toolChainAdded(ProjectExplorer::ToolChain*)), connect(ToolChainManager::instance(), SIGNAL(toolChainAdded(ProjectExplorer::ToolChain*)),
this, SLOT(handleToolChainAddition(ProjectExplorer::ToolChain*))); this, SLOT(handleToolChainAddition(ProjectExplorer::ToolChain*)));
connect(ToolChainManager::instance(), SIGNAL(toolChainUpdated(ProjectExplorer::ToolChain*)),
this, SLOT(handleToolChainUpdates(ProjectExplorer::ToolChain*)));
} }
BuildConfiguration::BuildConfiguration(Target *target, BuildConfiguration *source) : BuildConfiguration::BuildConfiguration(Target *target, BuildConfiguration *source) :
@@ -180,6 +182,15 @@ void BuildConfiguration::handleToolChainAddition(ProjectExplorer::ToolChain *tc)
setToolChain(target()->preferredToolChain(this)); setToolChain(target()->preferredToolChain(this));
} }
void BuildConfiguration::handleToolChainUpdates(ProjectExplorer::ToolChain *tc)
{
if (tc != m_toolChain)
return;
QList<ToolChain *> candidates = target()->possibleToolChains(this);
if (!candidates.contains(m_toolChain))
setToolChain(target()->preferredToolChain(this));
}
Target *BuildConfiguration::target() const Target *BuildConfiguration::target() const
{ {

View File

@@ -123,6 +123,7 @@ protected:
private slots: private slots:
void handleToolChainRemovals(ProjectExplorer::ToolChain *tc); void handleToolChainRemovals(ProjectExplorer::ToolChain *tc);
void handleToolChainAddition(ProjectExplorer::ToolChain *tc); void handleToolChainAddition(ProjectExplorer::ToolChain *tc);
void handleToolChainUpdates(ProjectExplorer::ToolChain*);
private: private:
bool m_clearSystemEnvironment; bool m_clearSystemEnvironment;