ProjectExplorer: Fix restoring parent toolchain

... for auto-detected clang toolchains on Windows.
We must wait until toolchain loading has finished before determining
whether the parent toolchain still exists.

Change-Id: I4d9ed3e1d7df47dd4b2b408c70d796c8972c9a54
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Christian Kandeler
2020-09-08 16:50:50 +02:00
parent bd31ba0e09
commit d7229d4afc

View File

@@ -1424,6 +1424,17 @@ void ClangToolChain::syncAutodetectedWithParentToolchains()
QObject::disconnect(m_thisToolchainRemovedConnection);
QObject::disconnect(m_mingwToolchainAddedConnection);
if (!ToolChainManager::isLoaded()) {
QObject::connect(ToolChainManager::instance(), &ToolChainManager::toolChainsLoaded,
[this, id = id()] {
if (ToolChain * const tc = ToolChainManager::findToolChain(id)) {
if (tc->typeId() == Constants::CLANG_TOOLCHAIN_TYPEID)
static_cast<ClangToolChain *>(tc)->syncAutodetectedWithParentToolchains();
}
});
return;
}
if (!mingwToolChainFromId(m_parentToolChainId)) {
const QList<ToolChain *> mingwTCs = mingwToolChains();
m_parentToolChainId = mingwTCs.isEmpty() ? QByteArray() : mingwTCs.front()->id();