/
language.cpp
52 lines (44 loc) · 1.28 KB
/
language.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
#include "language.h"
Language::Language(QObject *parent)
: QObject(parent) {
readFromJsonFile();
}
Language::~Language() {
}
QString Language::getName(QString code) {
return hash.value(code);
}
QString Language::getCode(QString name) {
return hash.key(name);
}
QStringList Language::getLanguages(QStringList codeList) {
QStringList nameList;
foreach (QString code, codeList) {
nameList.append(hash.value(code));
}
return nameList;
}
QStringList Language::getCodes(QStringList nameList) {
QStringList codeList;
foreach (QString name, nameList) {
codeList.append(hash.key(name));
}
return codeList;
}
void Language::readFromJsonFile(QString jsonFile) {
// Read JSON file.
QString jsonString;
QFile file;
file.setFileName(jsonFile);
file.open(QIODevice::ReadOnly | QIODevice::Text);
jsonString = file.readAll();
file.close();
QJsonDocument jsonDocument = QJsonDocument::fromJson(jsonString.toUtf8());
QJsonArray jsonArray = jsonDocument.array();
foreach (const QJsonValue &jsonValue, jsonArray) {
QJsonObject jsonObject = jsonValue.toObject();
QString key = jsonObject["code"].toString();
QString value = jsonObject["name"].toString();
hash[key] = value;
}
}