Utils: Add variant converter for EnvironmentItem(List)

Simplify saving environment items to creator settings by providing
converter to QVariant.

Change-Id: I65ef3b33964ba0af97bbd46e18a13ae316d7ecee
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
David Schulz
2018-02-20 15:29:06 +01:00
parent 7c3cfa166d
commit 3c94b4cb6b
2 changed files with 32 additions and 0 deletions

View File

@@ -120,6 +120,34 @@ QStringList EnvironmentItem::toStringList(const QList<EnvironmentItem> &list)
});
}
QList<EnvironmentItem> EnvironmentItem::itemsFromVariantList(const QVariantList &list)
{
return Utils::transform(list, [](const QVariant &item) {
return itemFromVariantList(item.toList());
});
}
QVariantList EnvironmentItem::toVariantList(const QList<EnvironmentItem> &list)
{
return Utils::transform(list, [](const EnvironmentItem &item) {
return QVariant(toVariantList(item));
});
}
EnvironmentItem EnvironmentItem::itemFromVariantList(const QVariantList &list)
{
QTC_ASSERT(list.size() == 3, return EnvironmentItem("", ""));
QString name = list.value(0).toString();
Operation operation = Operation(list.value(1).toInt());
QString value = list.value(2).toString();
return EnvironmentItem(name, value, operation);
}
QVariantList EnvironmentItem::toVariantList(const EnvironmentItem &item)
{
return QVariantList() << item.name << item.operation << item.value;
}
static QString expand(const Environment *e, QString value)
{
int replaceCount = 0;