ProjectExplorer: Change ToolChain::toMap() signature

... to something similar to AspectContainer::toMap() as
preparation for later aspectification.

Change-Id: Ic60060ad1a7eb1aba58ded01221b016c684db073
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
hjk
2023-07-20 16:41:45 +02:00
parent 580d605fd3
commit c1309f9417
13 changed files with 34 additions and 45 deletions

View File

@@ -309,7 +309,7 @@ public:
void addToEnvironment(Environment &env) const final; void addToEnvironment(Environment &env) const final;
QList<OutputLineParser *> createOutputParsers() const final; QList<OutputLineParser *> createOutputParsers() const final;
QVariantMap toMap() const final; void toMap(QVariantMap &data) const final;
bool fromMap(const QVariantMap &data) final; bool fromMap(const QVariantMap &data) final;
std::unique_ptr<ToolChainConfigWidget> createConfigurationWidget() final; std::unique_ptr<ToolChainConfigWidget> createConfigurationWidget() final;
@@ -404,11 +404,10 @@ QList<Utils::OutputLineParser *> IarToolChain::createOutputParsers() const
return {new IarParser()}; return {new IarParser()};
} }
QVariantMap IarToolChain::toMap() const void IarToolChain::toMap(QVariantMap &data) const
{ {
QVariantMap data = ToolChain::toMap(); ToolChain::toMap(data);
data.insert(compilerPlatformCodeGenFlagsKeyC, m_extraCodeModelFlags); data.insert(compilerPlatformCodeGenFlagsKeyC, m_extraCodeModelFlags);
return data;
} }
bool IarToolChain::fromMap(const QVariantMap &data) bool IarToolChain::fromMap(const QVariantMap &data)

View File

@@ -449,7 +449,7 @@ public:
QList<OutputLineParser *> createOutputParsers() const final { return {new KeilParser}; } QList<OutputLineParser *> createOutputParsers() const final { return {new KeilParser}; }
QVariantMap toMap() const final; void toMap(QVariantMap &data) const final;
bool fromMap(const QVariantMap &data) final; bool fromMap(const QVariantMap &data) final;
std::unique_ptr<ToolChainConfigWidget> createConfigurationWidget() final; std::unique_ptr<ToolChainConfigWidget> createConfigurationWidget() final;
@@ -527,11 +527,10 @@ void KeilToolChain::addToEnvironment(Environment &env) const
} }
QVariantMap KeilToolChain::toMap() const void KeilToolChain::toMap(QVariantMap &data) const
{ {
QVariantMap data = ToolChain::toMap(); ToolChain::toMap(data);
data.insert(compilerPlatformCodeGenFlagsKeyC, m_extraCodeModelFlags); data.insert(compilerPlatformCodeGenFlagsKeyC, m_extraCodeModelFlags);
return data;
} }
bool KeilToolChain::fromMap(const QVariantMap &data) bool KeilToolChain::fromMap(const QVariantMap &data)

View File

@@ -217,9 +217,9 @@ QString CustomToolChain::mkspecs() const
return m_mkspecs.join(','); return m_mkspecs.join(',');
} }
QVariantMap CustomToolChain::toMap() const void CustomToolChain::toMap(QVariantMap &data) const
{ {
QVariantMap data = ToolChain::toMap(); ToolChain::toMap(data);
data.insert(QLatin1String(makeCommandKeyC), m_makeCommand.toString()); data.insert(QLatin1String(makeCommandKeyC), m_makeCommand.toString());
QStringList macros = Utils::transform<QList>(m_predefinedMacros, [](const Macro &m) { return QString::fromUtf8(m.toByteArray()); }); QStringList macros = Utils::transform<QList>(m_predefinedMacros, [](const Macro &m) { return QString::fromUtf8(m.toByteArray()); });
data.insert(QLatin1String(predefinedMacrosKeyC), macros); data.insert(QLatin1String(predefinedMacrosKeyC), macros);
@@ -227,8 +227,6 @@ QVariantMap CustomToolChain::toMap() const
data.insert(QLatin1String(cxx11FlagsKeyC), m_cxx11Flags); data.insert(QLatin1String(cxx11FlagsKeyC), m_cxx11Flags);
data.insert(QLatin1String(mkspecsKeyC), mkspecs()); data.insert(QLatin1String(mkspecsKeyC), mkspecs());
data.insert(QLatin1String(outputParserKeyC), m_outputParserId.toSetting()); data.insert(QLatin1String(outputParserKeyC), m_outputParserId.toSetting());
return data;
} }
bool CustomToolChain::fromMap(const QVariantMap &data) bool CustomToolChain::fromMap(const QVariantMap &data)

View File

@@ -56,7 +56,7 @@ public:
QStringList headerPathsList() const; QStringList headerPathsList() const;
void setHeaderPaths(const QStringList &list); void setHeaderPaths(const QStringList &list);
QVariantMap toMap() const override; void toMap(QVariantMap &data) const override;
bool fromMap(const QVariantMap &data) override; bool fromMap(const QVariantMap &data) override;
std::unique_ptr<ToolChainConfigWidget> createConfigurationWidget() override; std::unique_ptr<ToolChainConfigWidget> createConfigurationWidget() override;

View File

@@ -795,14 +795,13 @@ QStringList GccToolChain::platformLinkerFlags() const
return m_platformLinkerFlags; return m_platformLinkerFlags;
} }
QVariantMap GccToolChain::toMap() const void GccToolChain::toMap(QVariantMap &data) const
{ {
QVariantMap data = ToolChain::toMap(); ToolChain::toMap(data);
data.insert(compilerPlatformCodeGenFlagsKeyC, m_platformCodeGenFlags); data.insert(compilerPlatformCodeGenFlagsKeyC, m_platformCodeGenFlags);
data.insert(compilerPlatformLinkerFlagsKeyC, m_platformLinkerFlags); data.insert(compilerPlatformLinkerFlagsKeyC, m_platformLinkerFlags);
data.insert(originalTargetTripleKeyC, m_originalTargetTriple); data.insert(originalTargetTripleKeyC, m_originalTargetTriple);
data.insert(supportedAbisKeyC, Utils::transform<QStringList>(m_supportedAbis, &Abi::toString)); data.insert(supportedAbisKeyC, Utils::transform<QStringList>(m_supportedAbis, &Abi::toString));
return data;
} }
bool GccToolChain::fromMap(const QVariantMap &data) bool GccToolChain::fromMap(const QVariantMap &data)
@@ -1713,12 +1712,11 @@ std::unique_ptr<ToolChainConfigWidget> ClangToolChain::createConfigurationWidget
return std::make_unique<ClangToolChainConfigWidget>(this); return std::make_unique<ClangToolChainConfigWidget>(this);
} }
QVariantMap ClangToolChain::toMap() const void ClangToolChain::toMap(QVariantMap &data) const
{ {
QVariantMap data = GccToolChain::toMap(); GccToolChain::toMap(data);
data.insert(parentToolChainIdKeyC, m_parentToolChainId); data.insert(parentToolChainIdKeyC, m_parentToolChainId);
data.insert(priorityKeyC, m_priority); data.insert(priorityKeyC, m_priority);
return data;
} }
bool ClangToolChain::fromMap(const QVariantMap &data) bool ClangToolChain::fromMap(const QVariantMap &data)

View File

@@ -66,7 +66,7 @@ public:
QStringList suggestedMkspecList() const override; QStringList suggestedMkspecList() const override;
QList<Utils::OutputLineParser *> createOutputParsers() const override; QList<Utils::OutputLineParser *> createOutputParsers() const override;
QVariantMap toMap() const override; void toMap(QVariantMap &data) const override;
bool fromMap(const QVariantMap &data) override; bool fromMap(const QVariantMap &data) override;
std::unique_ptr<ToolChainConfigWidget> createConfigurationWidget() override; std::unique_ptr<ToolChainConfigWidget> createConfigurationWidget() override;
@@ -206,7 +206,7 @@ public:
std::unique_ptr<ToolChainConfigWidget> createConfigurationWidget() override; std::unique_ptr<ToolChainConfigWidget> createConfigurationWidget() override;
QVariantMap toMap() const override; void toMap(QVariantMap &data) const override;
bool fromMap(const QVariantMap &data) override; bool fromMap(const QVariantMap &data) override;
void setPriority(int priority) { m_priority = priority; } void setPriority(int priority) { m_priority = priority; }

View File

@@ -978,16 +978,15 @@ Abis MsvcToolChain::supportedAbis() const
return abis; return abis;
} }
QVariantMap MsvcToolChain::toMap() const void MsvcToolChain::toMap(QVariantMap &data) const
{ {
QVariantMap data = ToolChain::toMap(); ToolChain::toMap(data);
data.insert(QLatin1String(varsBatKeyC), m_vcvarsBat); data.insert(QLatin1String(varsBatKeyC), m_vcvarsBat);
if (!m_varsBatArg.isEmpty()) if (!m_varsBatArg.isEmpty())
data.insert(QLatin1String(varsBatArgKeyC), m_varsBatArg); data.insert(QLatin1String(varsBatArgKeyC), m_varsBatArg);
Utils::EnvironmentItem::sort(&m_environmentModifications); Utils::EnvironmentItem::sort(&m_environmentModifications);
data.insert(QLatin1String(environModsKeyC), data.insert(QLatin1String(environModsKeyC),
Utils::EnvironmentItem::toVariantList(m_environmentModifications)); Utils::EnvironmentItem::toVariantList(m_environmentModifications));
return data;
} }
bool MsvcToolChain::fromMap(const QVariantMap &data) bool MsvcToolChain::fromMap(const QVariantMap &data)
@@ -1728,11 +1727,10 @@ static inline QString llvmDirKey()
return QStringLiteral("ProjectExplorer.ClangClToolChain.LlvmDir"); return QStringLiteral("ProjectExplorer.ClangClToolChain.LlvmDir");
} }
QVariantMap ClangClToolChain::toMap() const void ClangClToolChain::toMap(QVariantMap &data) const
{ {
QVariantMap result = MsvcToolChain::toMap(); MsvcToolChain::toMap(data);
result.insert(llvmDirKey(), m_clangPath.toString()); data.insert(llvmDirKey(), m_clangPath.toString());
return result;
} }
bool ClangClToolChain::fromMap(const QVariantMap &data) bool ClangClToolChain::fromMap(const QVariantMap &data)

View File

@@ -46,7 +46,7 @@ public:
QStringList suggestedMkspecList() const override; QStringList suggestedMkspecList() const override;
Abis supportedAbis() const override; Abis supportedAbis() const override;
QVariantMap toMap() const override; void toMap(QVariantMap &data) const override;
bool fromMap(const QVariantMap &data) override; bool fromMap(const QVariantMap &data) override;
std::unique_ptr<ToolChainConfigWidget> createConfigurationWidget() override; std::unique_ptr<ToolChainConfigWidget> createConfigurationWidget() override;
@@ -146,7 +146,7 @@ public:
void addToEnvironment(Utils::Environment &env) const override; void addToEnvironment(Utils::Environment &env) const override;
Utils::FilePath compilerCommand() const override; // FIXME: Remove Utils::FilePath compilerCommand() const override; // FIXME: Remove
QList<Utils::OutputLineParser *> createOutputParsers() const override; QList<Utils::OutputLineParser *> createOutputParsers() const override;
QVariantMap toMap() const override; void toMap(QVariantMap &data) const override;
bool fromMap(const QVariantMap &data) override; bool fromMap(const QVariantMap &data) override;
std::unique_ptr<ToolChainConfigWidget> createConfigurationWidget() override; std::unique_ptr<ToolChainConfigWidget> createConfigurationWidget() override;
BuiltInHeaderPathsRunner createBuiltInHeaderPathsRunner( BuiltInHeaderPathsRunner createBuiltInHeaderPathsRunner(

View File

@@ -226,7 +226,9 @@ ToolChain *ToolChain::clone() const
if (f->supportedToolChainType() == d->m_typeId) { if (f->supportedToolChainType() == d->m_typeId) {
ToolChain *tc = f->create(); ToolChain *tc = f->create();
QTC_ASSERT(tc, return nullptr); QTC_ASSERT(tc, return nullptr);
tc->fromMap(toMap()); QVariantMap data;
toMap(data);
tc->fromMap(data);
// New ID for the clone. It's different. // New ID for the clone. It's different.
tc->d->m_id = QUuid::createUuid().toByteArray(); tc->d->m_id = QUuid::createUuid().toByteArray();
return tc; return tc;
@@ -242,9 +244,8 @@ ToolChain *ToolChain::clone() const
Make sure to call this function when deriving. Make sure to call this function when deriving.
*/ */
QVariantMap ToolChain::toMap() const void ToolChain::toMap(QVariantMap &result) const
{ {
QVariantMap result;
QString idToSave = d->m_typeId.toString() + QLatin1Char(':') + QString::fromUtf8(id()); QString idToSave = d->m_typeId.toString() + QLatin1Char(':') + QString::fromUtf8(id());
result.insert(QLatin1String(ID_KEY), idToSave); result.insert(QLatin1String(ID_KEY), idToSave);
result.insert(QLatin1String(DISPLAY_NAME_KEY), displayName()); result.insert(QLatin1String(DISPLAY_NAME_KEY), displayName());
@@ -265,7 +266,6 @@ QVariantMap ToolChain::toMap() const
result.insert(d->m_targetAbiKey, d->m_targetAbi.toString()); result.insert(d->m_targetAbiKey, d->m_targetAbi.toString());
if (!d->m_compilerCommandKey.isEmpty()) if (!d->m_compilerCommandKey.isEmpty())
result.insert(d->m_compilerCommandKey, d->m_compilerCommand.toSettings()); result.insert(d->m_compilerCommandKey, d->m_compilerCommand.toSettings());
return result;
} }
void ToolChain::toolChainUpdated() void ToolChain::toolChainUpdated()

View File

@@ -145,7 +145,7 @@ public:
// Used by the toolchainmanager to save user-generated tool chains. // Used by the toolchainmanager to save user-generated tool chains.
// Make sure to call this function when deriving! // Make sure to call this function when deriving!
virtual QVariantMap toMap() const; virtual void toMap(QVariantMap &map) const;
virtual Tasks validateKit(const Kit *k) const; virtual Tasks validateKit(const Kit *k) const;
virtual bool isJobCountSupported() const { return true; } virtual bool isJobCountSupported() const { return true; }

View File

@@ -220,7 +220,8 @@ void ToolChainSettingsAccessor::saveToolChains(const Toolchains &toolchains, QWi
for (const ToolChain *tc : toolchains) { for (const ToolChain *tc : toolchains) {
if (!tc || (!tc->isValid() && tc->isAutoDetected())) if (!tc || (!tc->isValid() && tc->isAutoDetected()))
continue; continue;
const QVariantMap tmp = tc->toMap(); QVariantMap tmp;
tc->toMap(tmp);
if (tmp.isEmpty()) if (tmp.isEmpty())
continue; continue;
data.insert(QString::fromLatin1(TOOLCHAIN_DATA_KEY) + QString::number(count), tmp); data.insert(QString::fromLatin1(TOOLCHAIN_DATA_KEY) + QString::number(count), tmp);
@@ -326,11 +327,10 @@ public:
return true; return true;
} }
QVariantMap toMap() const final void toMap(QVariantMap &data) const final
{ {
QVariantMap data = ToolChain::toMap(); ToolChain::toMap(data);
data[TestTokenKey] = token; data[TestTokenKey] = token;
return data;
} }
QByteArray token; QByteArray token;
@@ -339,8 +339,6 @@ private:
bool m_valid = false; bool m_valid = false;
static QList<TTC *> m_toolChains; static QList<TTC *> m_toolChains;
public:
}; };
QList<TTC *> TTC::m_toolChains; QList<TTC *> TTC::m_toolChains;

View File

@@ -131,12 +131,11 @@ QStringList QnxToolChain::suggestedMkspecList() const
}; };
} }
QVariantMap QnxToolChain::toMap() const void QnxToolChain::toMap(QVariantMap &data) const
{ {
QVariantMap data = GccToolChain::toMap(); GccToolChain::toMap(data);
data.insert(QLatin1String(CompilerSdpPath), m_sdpPath.toSettings()); data.insert(QLatin1String(CompilerSdpPath), m_sdpPath.toSettings());
data.insert(QLatin1String(CpuDirKey), m_cpuDir); data.insert(QLatin1String(CpuDirKey), m_cpuDir);
return data;
} }
bool QnxToolChain::fromMap(const QVariantMap &data) bool QnxToolChain::fromMap(const QVariantMap &data)

View File

@@ -21,7 +21,7 @@ public:
void addToEnvironment(Utils::Environment &env) const override; void addToEnvironment(Utils::Environment &env) const override;
QStringList suggestedMkspecList() const override; QStringList suggestedMkspecList() const override;
QVariantMap toMap() const override; void toMap(QVariantMap &data) const override;
bool fromMap(const QVariantMap &data) override; bool fromMap(const QVariantMap &data) override;
Utils::FilePath sdpPath() const; Utils::FilePath sdpPath() const;