diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp index f5d47e11662..2c4ac20254a 100644 --- a/src/plugins/projectexplorer/gcctoolchain.cpp +++ b/src/plugins/projectexplorer/gcctoolchain.cpp @@ -415,6 +415,7 @@ bool GccToolChain::fromMap(const QVariantMap &data) m_compilerPath = data.value(QLatin1String(compilerPathKeyC)).toString(); m_forcedTo32Bit = data.value(QLatin1String(force32bitKeyC)).toBool(); m_debuggerCommand = data.value(QLatin1String(debuggerCommandKeyC)).toString(); + updateId(); return true; } diff --git a/src/plugins/projectexplorer/toolchain.h b/src/plugins/projectexplorer/toolchain.h index c254997c339..d2e7b5dc3ef 100644 --- a/src/plugins/projectexplorer/toolchain.h +++ b/src/plugins/projectexplorer/toolchain.h @@ -167,7 +167,6 @@ public: virtual bool canRestore(const QVariantMap &data); virtual ToolChain *restore(const QVariantMap &data); -protected: static QString idFromMap(const QVariantMap &data); }; diff --git a/src/plugins/projectexplorer/toolchainmanager.cpp b/src/plugins/projectexplorer/toolchainmanager.cpp index 7e091ed3daa..72a4f4684d9 100644 --- a/src/plugins/projectexplorer/toolchainmanager.cpp +++ b/src/plugins/projectexplorer/toolchainmanager.cpp @@ -39,7 +39,7 @@ #include #include - +#include static const char *const ORGANIZATION_NAME = "Nokia"; static const char *const APPLICATION_NAME = "toolChains"; @@ -102,15 +102,21 @@ void ToolChainManager::restoreToolChains() for (int i = 0; i < size; ++i) { settings.setArrayIndex(i); - QVariantMap tmp = settings.value(QLatin1String(TOOLCHAIN_DATA_KEY)).toMap(); + const QVariantMap tmp = settings.value(QLatin1String(TOOLCHAIN_DATA_KEY)).toMap(); + bool restored = false; foreach (ToolChainFactory *f, factories) { - if (!f->canRestore(tmp)) - continue; - ToolChain *tc = f->restore(tmp); - if (!tc) - continue; - registerToolChain(tc); + if (f->canRestore(tmp)) { + if (ToolChain *tc = f->restore(tmp)) { + registerToolChain(tc); + restored = true; + break; + } + } } + if (!restored) + qWarning("Warning: Unable to restore manual toolchain '%s' stored in %s.", + qPrintable(ToolChainFactory::idFromMap(tmp)), + qPrintable(QDir::toNativeSeparators(settings.fileName()))); } }