X-Git-Url: https://www.flypig.org.uk/git/?p=harbour-pedalo.git;a=blobdiff_plain;f=src%2Fsettings.cpp;fp=src%2Fsettings.cpp;h=0998d37f8735ecc7cd07a50db01b39a16f2e57d2;hp=0000000000000000000000000000000000000000;hb=d42485b9c24c02503080b05e5e466112f47c909a;hpb=371dcf3335b355f8d421352a394161dc6d9b9f24 diff --git a/src/settings.cpp b/src/settings.cpp new file mode 100644 index 0000000..0998d37 --- /dev/null +++ b/src/settings.cpp @@ -0,0 +1,56 @@ +#include +#include +#include + +#include "settings.h" + +Settings * Settings::instance = nullptr; + +Settings::Settings(QObject *parent) : QObject(parent), + settings(this), + mainStatus(nullptr) +{ +} + +Settings::~Settings() { +} + +void Settings::instantiate(QObject *parent) { + if (instance == nullptr) { + instance = new Settings(parent); + } +} + +Settings & Settings::getInstance() { + return *instance; +} + +QObject * Settings::provider(QQmlEngine *engine, QJSEngine *scriptEngine) { + Q_UNUSED(engine) + Q_UNUSED(scriptEngine) + + return instance; +} + +QString Settings::getConfigDir() { + return QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation); +} + +void Settings::setMainStatus(Status &value) { + mainStatus = &value; +} + +void Settings::loadSettings() { + if (mainStatus != nullptr) { + mainStatus->setCycling(settings.value("status/cycling", false).toBool()); + mainStatus->setStartTime(settings.value("status/startTime", QDateTime::currentMSecsSinceEpoch()).toULongLong()); + } +} + +void Settings::saveSettings() { + if (mainStatus != nullptr) { + settings.setValue("status/cycling", mainStatus->getCycling()); + settings.setValue("status/startTime", mainStatus->getStartTime()); + } + settings.sync(); +}