diff options
Diffstat (limited to 'rbutil/rbutilqt/base/rbsettings.cpp')
-rw-r--r-- | rbutil/rbutilqt/base/rbsettings.cpp | 60 |
1 files changed, 58 insertions, 2 deletions
diff --git a/rbutil/rbutilqt/base/rbsettings.cpp b/rbutil/rbutilqt/base/rbsettings.cpp index bd6f94f2f4..527312b108 100644 --- a/rbutil/rbutilqt/base/rbsettings.cpp +++ b/rbutil/rbutilqt/base/rbsettings.cpp | |||
@@ -94,9 +94,24 @@ const static struct { | |||
94 | { RbSettings::EncoderVolume, ":encoder:/volume", "1.0" }, | 94 | { RbSettings::EncoderVolume, ":encoder:/volume", "1.0" }, |
95 | }; | 95 | }; |
96 | 96 | ||
97 | // server settings | ||
98 | const static struct { | ||
99 | RbSettings::ServerSettings setting; | ||
100 | const char* name; | ||
101 | const char* def; | ||
102 | } ServerSettingsList[] = { | ||
103 | { RbSettings::CurReleaseVersion, ":platform:/releaseversion", "" }, | ||
104 | { RbSettings::CurStatus, ":platform:/status", "" }, | ||
105 | { RbSettings::DailyRevision, "dailyrev", "" }, | ||
106 | { RbSettings::DailyDate, "dailydate", "" }, | ||
107 | { RbSettings::BleedingRevision, "bleedingrev", "" }, | ||
108 | { RbSettings::BleedingDate, "bleedingdate", "" }, | ||
109 | }; | ||
110 | |||
97 | //! pointer to setting object to NULL | 111 | //! pointer to setting object to NULL |
98 | QSettings* RbSettings::systemSettings = NULL; | 112 | QSettings* RbSettings::systemSettings = NULL; |
99 | QSettings* RbSettings::userSettings = NULL; | 113 | QSettings* RbSettings::userSettings = NULL; |
114 | QSettings* RbSettings::serverSettings = NULL; | ||
100 | 115 | ||
101 | void RbSettings::ensureRbSettingsExists() | 116 | void RbSettings::ensureRbSettingsExists() |
102 | { | 117 | { |
@@ -106,7 +121,13 @@ void RbSettings::ensureRbSettingsExists() | |||
106 | // only use built-in rbutil.ini | 121 | // only use built-in rbutil.ini |
107 | systemSettings = new QSettings(":/ini/rbutil.ini", QSettings::IniFormat, 0); | 122 | systemSettings = new QSettings(":/ini/rbutil.ini", QSettings::IniFormat, 0); |
108 | } | 123 | } |
109 | 124 | ||
125 | if(serverSettings == NULL) | ||
126 | { | ||
127 | serverSettings = new QSettings(QSettings::IniFormat, | ||
128 | QSettings::UserScope, "rockbox.org", "RockboxUtility",NULL); | ||
129 | } | ||
130 | |||
110 | if(userSettings == NULL) | 131 | if(userSettings == NULL) |
111 | { | 132 | { |
112 | // portable installation: | 133 | // portable installation: |
@@ -200,6 +221,20 @@ QVariant RbSettings::subValue(QString sub, enum UserSettings setting) | |||
200 | return userSettings->value(s, UserSettingsList[i].def); | 221 | return userSettings->value(s, UserSettingsList[i].def); |
201 | } | 222 | } |
202 | 223 | ||
224 | QVariant RbSettings::value(enum ServerSettings setting) | ||
225 | { | ||
226 | ensureRbSettingsExists(); | ||
227 | |||
228 | // locate setting item | ||
229 | int i = 0; | ||
230 | while(ServerSettingsList[i].setting != setting) | ||
231 | i++; | ||
232 | |||
233 | QString s = constructSettingPath(ServerSettingsList[i].name); | ||
234 | qDebug() << "[Settings] GET SERV:" << s << serverSettings->value(s, ServerSettingsList[i].def).toString(); | ||
235 | return serverSettings->value(s, ServerSettingsList[i].def); | ||
236 | } | ||
237 | |||
203 | void RbSettings::setValue(enum UserSettings setting , QVariant value) | 238 | void RbSettings::setValue(enum UserSettings setting , QVariant value) |
204 | { | 239 | { |
205 | QString empty; | 240 | QString empty; |
@@ -216,8 +251,29 @@ void RbSettings::setSubValue(QString sub, enum UserSettings setting, QVariant va | |||
216 | i++; | 251 | i++; |
217 | 252 | ||
218 | QString s = constructSettingPath(UserSettingsList[i].name, sub); | 253 | QString s = constructSettingPath(UserSettingsList[i].name, sub); |
219 | qDebug() << "[Settings] SET U:" << s << userSettings->value(s).toString(); | ||
220 | userSettings->setValue(s, value); | 254 | userSettings->setValue(s, value); |
255 | qDebug() << "[Settings] SET U:" << s << userSettings->value(s).toString(); | ||
256 | } | ||
257 | |||
258 | void RbSettings::setValue(enum ServerSettings setting, QVariant value) | ||
259 | { | ||
260 | QString empty; | ||
261 | return setPlatformValue(empty, setting, value); | ||
262 | } | ||
263 | |||
264 | void RbSettings::setPlatformValue(QString platform, enum ServerSettings setting, QVariant value) | ||
265 | { | ||
266 | ensureRbSettingsExists(); | ||
267 | |||
268 | // locate setting item | ||
269 | int i = 0; | ||
270 | while(ServerSettingsList[i].setting != setting) | ||
271 | i++; | ||
272 | |||
273 | QString s = ServerSettingsList[i].name; | ||
274 | s.replace(":platform:", platform); | ||
275 | serverSettings->setValue(s, value); | ||
276 | qDebug() << "[Settings] SET SERV:" << s << serverSettings->value(s).toString(); | ||
221 | } | 277 | } |
222 | 278 | ||
223 | 279 | ||