-
Notifications
You must be signed in to change notification settings - Fork 0
/
configman.cpp
55 lines (48 loc) · 1.85 KB
/
configman.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include "configman.h"
void ConfigMan::readConfig(QString cfgDir, bool firstRun) {
QFile configFile(cfgDir + "/config.json");
QJsonObject configObj;
if (!firstRun) {
configFile.open(QIODevice::ReadOnly | QIODevice::Text);
QString data = configFile.readAll();
configFile.close();
configObj = QJsonDocument::fromJson(data.toUtf8()).object();
mAppTheme = configObj["theme"].toString();
mFontFamily = configObj["fontFamily"].toString();
mStacksList = configObj["stacks"].toArray();
mAutosaveIntervalMin = configObj["autosaveIntervalMin"].toInt();
mCustomColors = configObj["customColors"].toArray();
}
else {
// Setting default values
configObj["theme"] = QJsonValue("light");
mFontFamily = mFont.defaultFamily();
configObj["fontFamily"] = QJsonValue(mFontFamily);
configObj["stacks"] = QJsonArray();
configObj["autosaveIntervalMin"] = QJsonValue(10);
configObj["customColors"] = QJsonValue(QJsonArray());
QDir d(cfgDir);
if (!d.exists(cfgDir)) {
d.mkdir(cfgDir);
}
QJsonDocument doc(configObj);
configFile.open(QFile::WriteOnly);
configFile.write(doc.toJson(QJsonDocument::Indented));
configFile.close();
}
}
void ConfigMan::saveConfig(QString cfgDir) {
QJsonObject config;
config["theme"] = QJsonValue(mAppTheme);
config["fontFamily"] = QJsonValue(mFontFamily);
config["stacks"] = QJsonValue(mStacksList);
config["autosaveIntervalMin"] = QJsonValue(mAutosaveIntervalMin);
config["customColors"] = QJsonValue(mCustomColors);
QJsonDocument doc(config);
QFile jsonFile(cfgDir + "/config.json");
jsonFile.open(QFile::WriteOnly);
jsonFile.write(doc.toJson(QJsonDocument::Indented));
jsonFile.close();
}
ConfigMan::ConfigMan() {
}