#include "configsettings.h" ConfigSettings::~ConfigSettings() { delete m_settings; } void ConfigSettings::initFilename(const QString &fileName) { delete m_settings; m_settings = new QSettings(fileName, QSettings::IniFormat); } int ConfigSettings::getInteger(const QString &a_group, const QString &a_key, const int &defaultValue) { int result; if (!existsKey(a_group, a_key) ) return defaultValue; QString keygrp = a_group + QLatin1Char('/') + a_key; result = m_settings->value(keygrp).toInt(); return result; } QVector ConfigSettings::getIntegerVector(const QString &a_group, const QString &a_key) { QVector result; if (!existsKey(a_group, a_key) ) return result; const QString keygrp = a_group + QLatin1Char('/') + a_key; const QStringList list = m_settings->value(keygrp).toStringList(); result.reserve(list.size()); for (const QString &value : list) result.append(value.toInt()); return result; } QMap ConfigSettings::getBoolMap(const QString &a_group, const QString &a_key) { QMap result; QVector intVector = getIntegerVector(a_group, a_key); for (int i = 0; i < intVector.size(); i++) result.insert(i, static_cast(intVector.at(i))); return result; } QString ConfigSettings::getString(const QString &a_group, const QString &a_key, const QString &defaultValue) { QString result; if ( !existsKey(a_group, a_key) ) return defaultValue; QString keygrp = a_group + QLatin1Char('/') + a_key; result = m_settings->value(keygrp).toString(); return result; } double ConfigSettings::getFloat(const QString &a_group, const QString &a_key, const double &defaultValue) { double result; if ( !existsKey(a_group, a_key) ) return defaultValue; QString keygrp = a_group + QLatin1Char('/') + a_key; result = m_settings->value(keygrp).toDouble(); return result; } QVector ConfigSettings::getFloatVector(const QString &a_group, const QString &a_key) { QVector result; if (!existsKey(a_group, a_key) ) return result; const QString keygrp = a_group + QLatin1Char('/') + a_key; const QStringList list = m_settings->value(keygrp).toStringList(); result.reserve(list.size()); for (const QString &value : list) result.append(value.toDouble()); return result; } bool ConfigSettings::existsGroup(const QString &a_group) { QStringList groups = m_settings->childGroups(); return groups.contains(a_group); } QStringList ConfigSettings::getKeys(const QString &a_group) { QStringList keys; m_settings->beginGroup(a_group); keys = m_settings->allKeys(); m_settings->endGroup(); return keys; } bool ConfigSettings::existsKey(const QString &a_group, const QString &a_key) { QStringList keys = getKeys(a_group); return keys.contains(a_key); }