/
ssucoreconfig.cpp
131 lines (110 loc) · 3.02 KB
/
ssucoreconfig.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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/**
* @file ssucoreconfig.cpp
* @copyright 2013 Jolla Ltd.
* @author Bernd Wachter <bwachter@lart.info>
* @date 2013
*/
#include <QFile>
#include <QTextStream>
#include "ssucoreconfig.h"
#include "ssulog.h"
SsuCoreConfig *SsuCoreConfig::ssuCoreConfig = 0;
SsuCoreConfig *SsuCoreConfig::instance(){
if (!ssuCoreConfig)
ssuCoreConfig = new SsuCoreConfig();
return ssuCoreConfig;
}
QPair<QString, QString> SsuCoreConfig::credentials(QString scope){
QPair<QString, QString> ret;
beginGroup("credentials-" + scope);
ret.first = value("username").toString();
ret.second = value("password").toString();
endGroup();
return ret;
}
QString SsuCoreConfig::credentialsScope(QString repoName, bool rndRepo){
if (contains("credentials-scope"))
return value("credentials-scope").toString();
else
return "your-configuration-is-broken-and-does-not-contain-credentials-scope";
}
QString SsuCoreConfig::credentialsUrl(QString scope){
if (contains("credentials-url-" + scope))
return value("credentials-url-" + scope).toString();
else
return "your-configuration-is-broken-and-does-not-contain-credentials-url-for-" + scope;
}
QString SsuCoreConfig::flavour(){
if (contains("flavour"))
return value("flavour").toString();
else
return "release";
}
int SsuCoreConfig::deviceMode(){
if (!contains("deviceMode")){
setValue("deviceMode", Ssu::ReleaseMode);
sync();
return Ssu::ReleaseMode;
} else
return value("deviceMode").toInt();
}
QString SsuCoreConfig::domain(){
if (contains("domain"))
return value("domain").toString();
else
return "";
}
bool SsuCoreConfig::isRegistered(){
if (!contains("privateKey"))
return false;
if (!contains("certificate"))
return false;
return value("registered").toBool();
}
QDateTime SsuCoreConfig::lastCredentialsUpdate(){
return value("lastCredentialsUpdate").toDateTime();
}
QString SsuCoreConfig::release(bool rnd){
if (rnd)
return value("rndRelease").toString();
else
return value("release").toString();
}
void SsuCoreConfig::setDeviceMode(int mode, int editMode){
int oldMode = value("deviceMode").toInt();
if ((editMode & Ssu::Add) == Ssu::Add){
oldMode |= mode;
} else if ((editMode & Ssu::Remove) == Ssu::Remove){
oldMode &= ~mode;
} else
oldMode = mode;
setValue("deviceMode", oldMode);
sync();
}
void SsuCoreConfig::setFlavour(QString flavour){
setValue("flavour", flavour);
// flavour is RnD only, so enable RnD mode
setDeviceMode(Ssu::RndMode, Ssu::Add);
sync();
}
void SsuCoreConfig::setRelease(QString release, bool rnd){
if (rnd) {
setValue("rndRelease", release);
// switch rndMode on/off when setting releases
setDeviceMode(Ssu::RndMode, Ssu::Add);
} else {
setValue("release", release);
setDeviceMode(Ssu::RndMode, Ssu::Remove);
}
sync();
}
void SsuCoreConfig::setDomain(QString domain){
setValue("domain", domain);
sync();
}
bool SsuCoreConfig::useSslVerify(){
if (contains("ssl-verify"))
return value("ssl-verify").toBool();
else
return true;
}