103 lines
2.7 KiB
C++
Executable File
103 lines
2.7 KiB
C++
Executable File
#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<int> ConfigSettings::getIntegerVector(const QString &a_group, const QString &a_key)
|
|
{
|
|
QVector<int> 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<int, bool> ConfigSettings::getBoolMap(const QString &a_group, const QString &a_key)
|
|
{
|
|
QMap<int, bool> result;
|
|
QVector<int> intVector = getIntegerVector(a_group, a_key);
|
|
for (int i = 0; i < intVector.size(); i++)
|
|
result.insert(i, static_cast<bool>(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<double> ConfigSettings::getFloatVector(const QString &a_group, const QString &a_key)
|
|
{
|
|
QVector<double> 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);
|
|
}
|