forked from qt-creator/qt-creator
Utils: Introduce variantFromStore and storeFromVariant
These are functional replacements for QVariant::fromValue(QVariantMap) (or QVariant::fromValue(Store)) and QVariant::toMap() (or QVariant::toValue<Store>()) We will have a few code paths in the end that need to explicitly operarate on both QVariantMap and Store (e.g. actual reading/writing to keep format compatibility etc), so these can't in the end be simple to/fromValue(OneType) but need an internal 'if' or such. Change-Id: I954f3cb24fa8fe123162b72bbd25d891dd19b768 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
@@ -42,11 +42,11 @@ void ToolsSettingsAccessor::saveMesonTools(const std::vector<MesonTools::Tool_t>
|
||||
for (const MesonTools::Tool_t &tool : tools) {
|
||||
auto asMeson = std::dynamic_pointer_cast<MesonWrapper>(tool);
|
||||
if (asMeson)
|
||||
data.insert(entryName(entry_count), QVariant::fromValue(toVariantMap<MesonWrapper>(*asMeson)));
|
||||
data.insert(entryName(entry_count), variantFromStore(toVariantMap<MesonWrapper>(*asMeson)));
|
||||
else {
|
||||
auto asNinja = std::dynamic_pointer_cast<NinjaWrapper>(tool);
|
||||
if (asNinja)
|
||||
data.insert(entryName(entry_count), QVariant::fromValue(toVariantMap<NinjaWrapper>(*asNinja)));
|
||||
data.insert(entryName(entry_count), variantFromStore(toVariantMap<NinjaWrapper>(*asNinja)));
|
||||
}
|
||||
entry_count++;
|
||||
}
|
||||
@@ -66,9 +66,9 @@ std::vector<MesonTools::Tool_t> ToolsSettingsAccessor::loadMesonTools(QWidget *p
|
||||
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 *>(data[name].value<Store>()));
|
||||
result.emplace_back(fromVariantMap<NinjaWrapper *>(storeFromVariant(data[name])));
|
||||
else
|
||||
result.emplace_back(fromVariantMap<MesonWrapper *>(data[name].value<Store>()));
|
||||
result.emplace_back(fromVariantMap<MesonWrapper *>(storeFromVariant(data[name])));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user