Target variant keys

This commit is contained in:
Nav
2024-08-19 19:43:02 +01:00
parent 12ff66aa8a
commit 4f9bb0ac3e
9 changed files with 58 additions and 16 deletions

View File

@@ -348,11 +348,14 @@ namespace Targets::TargetDescription
return output;
}
std::vector<TargetVariantDescriptor> TargetDescriptionFile::targetVariantDescriptors() const {
auto output = std::vector<TargetVariantDescriptor>{};
std::map<std::string, TargetVariantDescriptor> TargetDescriptionFile::targetVariantDescriptorsByKey() const {
auto output = std::map<std::string, TargetVariantDescriptor>{};
for (const auto& variant : this->variants) {
output.emplace_back(TargetDescriptionFile::targetVariantDescriptorFromVariant(variant));
for (const auto& [key, variant] : this->variantsByKey) {
output.emplace(
key,
TargetDescriptionFile::targetVariantDescriptorFromVariant(variant)
);
}
return output;
@@ -474,7 +477,8 @@ namespace Targets::TargetDescription
!element.isNull();
element = element.nextSiblingElement("variant")
) {
this->variants.emplace_back(TargetDescriptionFile::variantFromXml(element));
auto variant = TargetDescriptionFile::variantFromXml(element);
this->variantsByKey.emplace(variant.key, std::move(variant));
}
}
@@ -920,6 +924,7 @@ namespace Targets::TargetDescription
Variant TargetDescriptionFile::variantFromXml(const QDomElement& xmlElement) {
return {
TargetDescriptionFile::getAttribute(xmlElement, "key"),
TargetDescriptionFile::getAttribute(xmlElement, "name"),
TargetDescriptionFile::getAttribute(xmlElement, "pinout-key")
};
@@ -1190,6 +1195,7 @@ namespace Targets::TargetDescription
TargetVariantDescriptor TargetDescriptionFile::targetVariantDescriptorFromVariant(const Variant& variant) {
return {
variant.key,
variant.name,
variant.pinoutKey
};