diff options
Diffstat (limited to 'src/settings.cpp')
-rw-r--r-- | src/settings.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/settings.cpp b/src/settings.cpp index edbecc0..efaed6f 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -20,7 +20,6 @@ #include "settings.h" #include <QStandardPaths> - #include <fstream> Settings::Settings(const QString &configFile) @@ -84,10 +83,18 @@ QVariant Settings::value(const QString &key, const QVariant &defaultValue) const r = QVariant(x->as<int>()); break; + case toml::Value::DOUBLE_TYPE: + r = QVariant(x->as<double>()); + break; + case toml::Value::STRING_TYPE: r = QVariant(QString::fromStdString(x->as<std::string>())); break; + case toml::Value::ARRAY_TYPE: + r = fromList(x); + break; + default: qWarning("Unhandled type in configuration"); r = defaultValue; @@ -103,3 +110,15 @@ QVariant Settings::value(const QString &key, const QVariant &defaultValue) const return r; } + +QVariant Settings::fromList(const toml::Value *list) const +{ + QStringList l; + + for(const toml::Value &v : list->as<toml::Array>()) { + // TODO check value type + l.append(QString::fromStdString(v.as<std::string>())); + } + + return QVariant(l); +} |