diff --git a/src/libcalamares/utils/CalamaresUtils.cpp b/src/libcalamares/utils/CalamaresUtils.cpp index e85c11f8c..9e678737b 100644 --- a/src/libcalamares/utils/CalamaresUtils.cpp +++ b/src/libcalamares/utils/CalamaresUtils.cpp @@ -352,6 +352,20 @@ getString(const QVariantMap& map, const QString& key) return QString(); } +int +getInteger( const QVariantMap& map, const QString& key, int d ) +{ + int result = d; + if ( map.contains( key ) ) + { + auto v = map.value( key ); + if ( v.type() == QVariant::Int ) + result = v.toInt(); + } + + return result; +} + QVariantMap getSubMap( const QVariantMap& map, const QString& key, bool& success ) { diff --git a/src/libcalamares/utils/CalamaresUtils.h b/src/libcalamares/utils/CalamaresUtils.h index e6550ed3b..9b279ef43 100644 --- a/src/libcalamares/utils/CalamaresUtils.h +++ b/src/libcalamares/utils/CalamaresUtils.h @@ -109,6 +109,11 @@ namespace CalamaresUtils */ DLLEXPORT QString getString( const QVariantMap& map, const QString& key ); + /** + * Get an integer value from a mapping; returns @p default if no value. + */ + DLLEXPORT int getInteger( const QVariantMap& map, const QString& key, int d ); + /** * Returns a sub-map (i.e. a nested map) from the given mapping with the * given key. @p success is set to true if the @p key exists