noo/client/settings.cpp

56 lines
1019 B
C++

#include "settings.h"
#include "helper.h"
#include <QSettings>
#include <QStringList>
Settings::Settings()
{
load();
}
Settings::~Settings()
{
save();
}
QVariantMap& Settings::data()
{
return mData;
}
void Settings::save()
{
QSettings settings(PathHelper::pathToSettings(), QSettings::IniFormat);
settings.clear();
for (const QString& e: data().keys())
{
settings.setValue(e, data().value(e));
}
}
void Settings::load()
{
QSettings settings(PathHelper::pathToSettings(), QSettings::IniFormat);
mData.clear();
const QStringList keys = settings.allKeys();
for (const QString& k: keys)
{
mData[k] = settings.value(k);
}
// Show seconds is on by default
if (mData.find(KEY_SHOW_SECONDS) == mData.end())
mData[KEY_SHOW_SECONDS] = true;
}
static Settings* GInstance = nullptr;
Settings& Settings::instance()
{
if (!GInstance)
{
GInstance = new Settings();
GInstance->load();
}
return *GInstance;
}