obliteration/gui/settings.cpp

68 lines
1.3 KiB
C++
Raw Normal View History

#include "settings.hpp"
#include <QSettings>
// Keys for user settings.
namespace UserSettings {
static const QString systemDirectory("systemDirectory");
static const QString gamesDirectory("gamesDirectory");
}
#define scope(name) QSettings s; s.beginGroup(name)
2022-09-20 21:50:30 +07:00
bool hasRequiredUserSettings()
{
return hasSystemDirectorySetting() && hasGamesDirectorySetting();
}
bool hasSystemDirectorySetting()
2022-09-20 21:50:30 +07:00
{
scope(SettingGroups::user);
return s.contains(UserSettings::systemDirectory);
}
QString readSystemDirectorySetting()
{
scope(SettingGroups::user);
auto v = s.value(UserSettings::systemDirectory);
return v.isNull() ? QString() : v.toString();
}
void writeSystemDirectorySetting(const QString &v)
{
scope(SettingGroups::user);
s.setValue(UserSettings::systemDirectory, v);
2022-09-20 21:50:30 +07:00
}
bool hasGamesDirectorySetting()
{
scope(SettingGroups::user);
return s.contains(UserSettings::gamesDirectory);
}
QString readGamesDirectorySetting()
{
scope(SettingGroups::user);
auto v = s.value(UserSettings::gamesDirectory);
return v.isNull() ? QString() : v.toString();
}
void writeGamesDirectorySetting(const QString &v)
{
scope(SettingGroups::user);
s.setValue(UserSettings::gamesDirectory, v);
}
namespace SettingGroups {
const QString user("user");
2022-09-17 15:44:02 +07:00
const QString mainWindow("mainWindow");
}