forked from qt-creator/qt-creator
ProjectExplorer: Use functor for ToolChain creation in ToolChainFactory
Change-Id: I935eecab2f16618a2a5b34d31a79672db82c3398 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -445,11 +445,21 @@ bool ToolChainFactory::canCreate()
|
||||
|
||||
ToolChain *ToolChainFactory::create()
|
||||
{
|
||||
return nullptr;
|
||||
return m_toolchainConstructor ? m_toolchainConstructor() : nullptr;
|
||||
}
|
||||
|
||||
ToolChain *ToolChainFactory::restore(const QVariantMap &)
|
||||
ToolChain *ToolChainFactory::restore(const QVariantMap &data)
|
||||
{
|
||||
if (!m_toolchainConstructor)
|
||||
return nullptr;
|
||||
|
||||
ToolChain *tc = m_toolchainConstructor();
|
||||
QTC_ASSERT(tc, return nullptr);
|
||||
|
||||
if (tc->fromMap(data))
|
||||
return tc;
|
||||
|
||||
delete tc;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -501,4 +511,10 @@ void ToolChainFactory::setSupportsAllLanguages(bool supportsAllLanguages)
|
||||
m_supportsAllLanguages = supportsAllLanguages;
|
||||
}
|
||||
|
||||
void ToolChainFactory::setToolchainConstructor
|
||||
(const std::function<ToolChain *()> &toolchainContructor)
|
||||
{
|
||||
m_toolchainConstructor = toolchainContructor;
|
||||
}
|
||||
|
||||
} // namespace ProjectExplorer
|
||||
|
||||
Reference in New Issue
Block a user