+#include <QDesktopServices>
+#include <QDateTime>
+#include <QDebug>
+
+#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();
+}