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;
QList<OutputLineParser *> createOutputParsers() const final;
QVariantMap toMap() const final;
void toMap(QVariantMap &data) const final;
bool fromMap(const QVariantMap &data) final;
std::unique_ptr<ToolChainConfigWidget> createConfigurationWidget() final;
@@ -404,11 +404,10 @@ QList<Utils::OutputLineParser *> IarToolChain::createOutputParsers() const
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);
return data;
}
bool IarToolChain::fromMap(const QVariantMap &data)

View File

@@ -449,7 +449,7 @@ public:
QList<OutputLineParser *> createOutputParsers() const final { return {new KeilParser}; }
QVariantMap toMap() const final;
void toMap(QVariantMap &data) const final;
bool fromMap(const QVariantMap &data) 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);
return data;
}
bool KeilToolChain::fromMap(const QVariantMap &data)

View File

@@ -217,9 +217,9 @@ QString CustomToolChain::mkspecs() const
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());
QStringList macros = Utils::transform<QList>(m_predefinedMacros, [](const Macro &m) { return QString::fromUtf8(m.toByteArray()); });
data.insert(QLatin1String(predefinedMacrosKeyC), macros);
@@ -227,8 +227,6 @@ QVariantMap CustomToolChain::toMap() const
data.insert(QLatin1String(cxx11FlagsKeyC), m_cxx11Flags);
data.insert(QLatin1String(mkspecsKeyC), mkspecs());
data.insert(QLatin1String(outputParserKeyC), m_outputParserId.toSetting());
return data;
}
bool CustomToolChain::fromMap(const QVariantMap &data)

View File

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

View File

@@ -795,14 +795,13 @@ QStringList GccToolChain::platformLinkerFlags() const
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(compilerPlatformLinkerFlagsKeyC, m_platformLinkerFlags);
data.insert(originalTargetTripleKeyC, m_originalTargetTriple);
data.insert(supportedAbisKeyC, Utils::transform<QStringList>(m_supportedAbis, &Abi::toString));
return data;
}
bool GccToolChain::fromMap(const QVariantMap &data)
@@ -1713,12 +1712,11 @@ std::unique_ptr<ToolChainConfigWidget> ClangToolChain::createConfigurationWidget
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(priorityKeyC, m_priority);
return data;
}
bool ClangToolChain::fromMap(const QVariantMap &data)

View File

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

View File

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

View File

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

View File

@@ -226,7 +226,9 @@ ToolChain *ToolChain::clone() const
if (f->supportedToolChainType() == d->m_typeId) {
ToolChain *tc = f->create();
QTC_ASSERT(tc, return nullptr);
tc->fromMap(toMap());
QVariantMap data;
toMap(data);
tc->fromMap(data);
// New ID for the clone. It's different.
tc->d->m_id = QUuid::createUuid().toByteArray();
return tc;
@@ -242,9 +244,8 @@ ToolChain *ToolChain::clone() const
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());
result.insert(QLatin1String(ID_KEY), idToSave);
result.insert(QLatin1String(DISPLAY_NAME_KEY), displayName());
@@ -265,7 +266,6 @@ QVariantMap ToolChain::toMap() const
result.insert(d->m_targetAbiKey, d->m_targetAbi.toString());
if (!d->m_compilerCommandKey.isEmpty())
result.insert(d->m_compilerCommandKey, d->m_compilerCommand.toSettings());
return result;
}
void ToolChain::toolChainUpdated()

View File

@@ -145,7 +145,7 @@ public:
// Used by the toolchainmanager to save user-generated tool chains.
// 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 bool isJobCountSupported() const { return true; }

View File

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

View File

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