Files
qt5-legatus-legacy/Lts/Services/CentralEffectSimulation/Plugins/GeoPairing/GBL_ConfigSystem/configsettings.cpp
T
2026-08-13 18:33:10 +02:00

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);
}