-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcfg.cpp
93 lines (80 loc) · 2.8 KB
/
cfg.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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include "cfg.h"
// Declare Globals
// Initialize Class
Config::Config(QObject *parent): QObject(parent) {}
// Define Methods
QJsonObject Config::readDefaultFrontEndConfigFile() {
QString input_file = QApplication::applicationDirPath()
+ "/src/database/frontend.cfg";
return readConfigFile(input_file);
}
QJsonObject Config::readDefaultRetroArchConfigFile() {
QString input_file = QApplication::applicationDirPath()
+ "/src/database/win32_retroarch.cfg";
return readConfigFile(input_file);
}
QJsonObject Config::readConfigFile(QString input_file) {
QFile infile(input_file);
QJsonObject json_object;
if (!infile.open(QIODevice::ReadOnly)) {
qDebug() << "Error at Config::readConfigFile: " << input_file << "was not found.";
return json_object;
}
QTextStream in(&infile);
while (!in.atEnd()) {
QString line = in.readLine();
QStringList fields = line.split(" = ");
json_object[fields[0]] = fields[1];
}
infile.close();
return json_object;
}
bool Config::saveFrontendConfig(QJsonObject json_object) {
QString output_file = QApplication::applicationDirPath() + "/src/database/frontend.cfg";
QFile outfile(output_file);
if (!outfile.open(QIODevice::WriteOnly
| QIODevice::Text
| QFile::Truncate)) {
qDebug() << "Error: " << "with opening frontend.cfg to write.";
return false;
}
QStringList keys = json_object.keys();
if (keys.length()) {
QTextStream out(&outfile);
for (int i=0; i < keys.length(); i++) {
QString current_key = keys.at(i);
QString value = json_object[current_key].toString();
out << current_key << " = " << value << '\n';
}
qDebug() << "Wrote frontend.cfg";
outfile.close();
return true;
}
qDebug() << "Error: Config File is empty.";
outfile.close();
return false;
}
bool Config::saveConfig(QString output_file, QJsonObject json_object) {
QFile outfile(output_file);
if (!outfile.open(QIODevice::WriteOnly
| QIODevice::Text
| QFile::Truncate)) {
qDebug() << "Error: with opening " << output_file << " to write.";
return false;
}
QStringList keys = json_object.keys();
if (keys.length()) {
QTextStream out(&outfile);
for (int i=0; i < keys.length(); i++) {
QString current_key = keys.at(i);
QString value = json_object[current_key].toString();
out << current_key << " = " << value << '\n';
}
qDebug() << "Wrote config file.";
outfile.close();
return true;
}
qDebug() << "Error: config file is empty.";
outfile.close();
return false;
}