Meson: Fix reading of tool settings

We were accumulating copies of the auto-detected system ninja setting
since the QVariantMap retrieved with toMap() was empty as it is a Store
nowadays.

Change-Id: Id983b5f1bf5ff18d6f43a71ebb406520e7655705
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2024-02-23 11:07:27 +01:00
parent c0bbf285a7
commit 026de59be9

View File

@@ -77,14 +77,14 @@ std::vector<MesonTools::Tool_t> ToolsSettingsAccessor::loadMesonTools()
std::vector<MesonTools::Tool_t> result;
for (auto toolIndex = 0; toolIndex < entry_count; toolIndex++) {
Key name = entryName(toolIndex);
if (data.contains(name)) {
const auto map = data[name].toMap();
auto type = map.value(ToolsSettings::TOOL_TYPE_KEY, ToolsSettings::TOOL_TYPE_MESON);
if (type == ToolsSettings::TOOL_TYPE_NINJA)
result.emplace_back(fromVariantMap<NinjaWrapper *>(storeFromVariant(data[name])));
else
result.emplace_back(fromVariantMap<MesonWrapper *>(storeFromVariant(data[name])));
}
Store store = storeFromVariant(data[name]);
QString type = store.value(ToolsSettings::TOOL_TYPE_KEY).toString();
if (type == ToolsSettings::TOOL_TYPE_NINJA)
result.emplace_back(fromVariantMap<NinjaWrapper *>(storeFromVariant(data[name])));
else if (type == ToolsSettings::TOOL_TYPE_MESON)
result.emplace_back(fromVariantMap<MesonWrapper *>(storeFromVariant(data[name])));
else
QTC_CHECK(false);
}
return result;
}