0998d37f8735ecc7cd07a50db01b39a16f2e57d2
[harbour-pedalo.git] / src / settings.cpp
1 #include <QDesktopServices>
2 #include <QDateTime>
3 #include <QDebug>
4
5 #include "settings.h"
6
7 Settings * Settings::instance = nullptr;
8
9 Settings::Settings(QObject *parent) : QObject(parent),
10 settings(this),
11 mainStatus(nullptr)
12 {
13 }
14
15 Settings::~Settings() {
16 }
17
18 void Settings::instantiate(QObject *parent) {
19 if (instance == nullptr) {
20 instance = new Settings(parent);
21 }
22 }
23
24 Settings & Settings::getInstance() {
25 return *instance;
26 }
27
28 QObject * Settings::provider(QQmlEngine *engine, QJSEngine *scriptEngine) {
29 Q_UNUSED(engine)
30 Q_UNUSED(scriptEngine)
31
32 return instance;
33 }
34
35 QString Settings::getConfigDir() {
36 return QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);
37 }
38
39 void Settings::setMainStatus(Status &value) {
40 mainStatus = &value;
41 }
42
43 void Settings::loadSettings() {
44 if (mainStatus != nullptr) {
45 mainStatus->setCycling(settings.value("status/cycling", false).toBool());
46 mainStatus->setStartTime(settings.value("status/startTime", QDateTime::currentMSecsSinceEpoch()).toULongLong());
47 }
48 }
49
50 void Settings::saveSettings() {
51 if (mainStatus != nullptr) {
52 settings.setValue("status/cycling", mainStatus->getCycling());
53 settings.setValue("status/startTime", mainStatus->getStartTime());
54 }
55 settings.sync();
56 }