From 5f55784137180db734569e81934f90888e3bf0ec Mon Sep 17 00:00:00 2001 From: dalto Date: Sat, 23 Oct 2021 14:02:47 -0500 Subject: [PATCH] Add getList function to Variant --- src/libcalamares/utils/Variant.cpp | 14 ++++++++++++++ src/libcalamares/utils/Variant.h | 7 +++++++ 2 files changed, 21 insertions(+) diff --git a/src/libcalamares/utils/Variant.cpp b/src/libcalamares/utils/Variant.cpp index a484ac8f7..0aba07f33 100644 --- a/src/libcalamares/utils/Variant.cpp +++ b/src/libcalamares/utils/Variant.cpp @@ -65,6 +65,20 @@ getStringList( const QVariantMap& map, const QString& key, const QStringList& d return d; } +QList< QVariant > +getList( const QVariantMap& map, const QString& key, const QList< QVariant >& d ) +{ + if ( map.contains( key ) ) + { + auto v = map.value( key ); + if ( v.canConvert( QVariant::List ) ) + { + return v.toList(); + } + } + return d; +} + qint64 getInteger( const QVariantMap& map, const QString& key, qint64 d ) { diff --git a/src/libcalamares/utils/Variant.h b/src/libcalamares/utils/Variant.h index d0d893dc3..6bd7b8def 100644 --- a/src/libcalamares/utils/Variant.h +++ b/src/libcalamares/utils/Variant.h @@ -15,6 +15,7 @@ #include "DllMacro.h" +#include #include #include @@ -39,6 +40,12 @@ DLLEXPORT QString getString( const QVariantMap& map, const QString& key, const Q */ DLLEXPORT QStringList getStringList( const QVariantMap& map, const QString& key, const QStringList& d = QStringList() ); +/** + * Get a list from a mapping with a given key; returns @p d if no value. + */ +DLLEXPORT QList< QVariant > +getList( const QVariantMap& map, const QString& key, const QList< QVariant >& d = QList< QVariant >() ); + /** * Get an integer value from a mapping with a given key; returns @p d if no value. */