lena_pi/LenaPi/controllers/SettingsHandler.cpp
Jan-Martin Raemer 9e7a55fc20 AppSettings for android
added debug output for Navigation as debugger does not work for Android
yet
2022-06-01 20:31:47 +02:00

80 lines
2.2 KiB
C++

#include "SettingsHandler.h"
#include <QStandardPaths>
constexpr const char* const rootPath = "rootPath";
constexpr const char* const profile = "profile";
constexpr const char* const enableEnergySaver = "enableEnergySaver";
constexpr const char* const timeout = "timeout";
constexpr const char* const shutdownScript = "shutdownScript";
SettingsHandler::SettingsHandler(QObject *parent) : QObject(parent)
{
initDefaults();
}
SettingsHandler::SettingsHandler(QSettings *settings, QObject *parent) : SettingsHandler(parent)
{
setSettings(settings);
}
SettingsHandler* SettingsHandler::createSettingsHandlerAndFillWithDefaultsIfMissing(QSettings *settings)
{
const auto handler = new SettingsHandler(settings);
handler->fillWithDefaultIfMissing();
return handler;
}
void SettingsHandler::fillWithDefaultIfMissing()
{
for(const auto& key : mDefaults.keys()){
if(!mSettings->contains(key)){
mSettings->setValue(key,mDefaults.value(key));
}
}
}
QString SettingsHandler::getRootPath() const
{
return mSettings->value(rootPath).toString();
}
QString SettingsHandler::getProfile() const
{
return mSettings->value(profile).toString();
}
bool SettingsHandler::isEnergySaverEnabled() const
{
return mSettings->value(enableEnergySaver).toBool();
}
int SettingsHandler::getEnergySaverTimeout() const
{
return mSettings->value(timeout).toInt();
}
QString SettingsHandler::getShutdownScript() const
{
return mSettings->value(shutdownScript).toString();
}
void SettingsHandler::initDefaults()
{
mDefaults.insert(rootPath, QStandardPaths::MusicLocation);
mDefaults.insert(enableEnergySaver, false);
mDefaults.insert(timeout, 60);
mDefaults.insert(shutdownScript, "/usr/local/sbin/do_shutdown.sh");
mDefaults.insert(profile, "RasPiTouch");
// @todo add profile Android? Or simply scale ui for RasPi
// mDefaults.insert(profile, "Android");
// Defaults for LenaPi
// mDefaults.insert(rootPath, "/home/ar/source/lenaMusic/");
// mDefaults.insert(profile, "RasPiTouch");
// mDefaults.insert(enableEnergySaver, true);
// mDefaults.insert(timeout, 60);
// mDefaults.insert(shutdownScript, "/usr/local/sbin/do_shutdown.sh");
}