From 9a0dce587166ae379efd14ad5e5e1e12f6275ce3 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Thu, 14 Apr 2011 14:51:28 +0200 Subject: [PATCH] Gcc: Cause less update signals to be sent Cause less update signals to be sent when changing the compiler path. --- src/plugins/projectexplorer/gcctoolchain.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp index a0183471e3d..9417b3cbeba 100644 --- a/src/plugins/projectexplorer/gcctoolchain.cpp +++ b/src/plugins/projectexplorer/gcctoolchain.cpp @@ -386,18 +386,24 @@ void GccToolChain::setCompilerPath(const QString &path) if (path == m_compilerPath) return; - if (displayName() == defaultDisplayName()) - setDisplayName(typeName()); + bool resetDisplayName = displayName() == defaultDisplayName(); + m_compilerPath = path; m_supportedAbis.clear(); + Abi currentAbi = m_targetAbi; + m_targetAbi = Abi(); if (!m_compilerPath.isEmpty()) { updateSupportedAbis(); - if (!m_supportedAbis.isEmpty()) - m_targetAbi = m_supportedAbis.at(0); + if (!m_supportedAbis.isEmpty()) { + if (m_supportedAbis.contains(currentAbi)) + m_targetAbi = currentAbi; + else + m_targetAbi = m_supportedAbis.at(0); + } - if (displayName() == typeName()) + if (resetDisplayName) setDisplayName(defaultDisplayName()); } updateId(); // Will trigger toolChainUpdated()!