Don't accept 0 for the width or height of a progress bar in the %pb tag. A zero...
[kugel-rb.git] / rbutil / rbutilqt / rbsettings.cpp
blob8a8972b36cfa0707814650bbd5ff277fd95ed4a1
1 /***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
9 * Copyright (C) 2007 by Dominik Wenger
10 * $Id$
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
18 ****************************************************************************/
20 #include "rbsettings.h"
22 #include <QSettings>
24 void RbSettings::open()
26 // only use built-in rbutil.ini
27 devices = new QSettings(":/ini/rbutil.ini", QSettings::IniFormat, 0);
28 // portable installation:
29 // check for a configuration file in the program folder.
30 QFileInfo config;
31 config.setFile(QCoreApplication::instance()->applicationDirPath() + "/RockboxUtility.ini");
32 if(config.isFile())
34 userSettings = new QSettings(QCoreApplication::instance()->applicationDirPath() + "/RockboxUtility.ini",
35 QSettings::IniFormat, this);
36 qDebug() << "config: portable";
38 else
40 userSettings = new QSettings(QSettings::IniFormat,
41 QSettings::UserScope, "rockbox.org", "RockboxUtility",this);
42 qDebug() << "config: system";
46 void RbSettings::sync()
48 userSettings->sync();
51 QVariant RbSettings::deviceSettingCurGet(QString entry,QString def)
53 QString platform = userSettings->value("platform").toString();
54 devices->beginGroup(platform);
55 QVariant result = devices->value(entry,def);
56 devices->endGroup();
57 return result;
60 QVariant RbSettings::userSettingsGroupGet(QString group,QString entry,QVariant def)
62 userSettings->beginGroup(group);
63 QVariant result = userSettings->value(entry,def);
64 userSettings->endGroup();
65 return result;
68 void RbSettings::userSettingsGroupSet(QString group,QString entry,QVariant value)
70 userSettings->beginGroup(group);
71 userSettings->setValue(entry,value);
72 userSettings->endGroup();
75 QString RbSettings::userSettingFilename()
77 return userSettings->fileName();
80 QString RbSettings::curVersion()
82 return userSettings->value("rbutil_version").toString();
85 bool RbSettings::cacheOffline()
87 return userSettings->value("offline").toBool();
90 bool RbSettings::curNeedsBootloader()
92 QString result = deviceSettingCurGet("needsbootloader", "").toString();
93 if( result == "no")
95 return false;
97 else
98 return true;
101 QString RbSettings::mountpoint()
103 return userSettings->value("mountpoint").toString();
106 QString RbSettings::manualUrl()
108 return devices->value("manual_url").toString();
111 QString RbSettings::bleedingUrl()
113 return devices->value("bleeding_url").toString();
116 QString RbSettings::lastRelease(QString plattform)
118 return deviceSettingCurGet("last_release").toString();
121 QString RbSettings::cachePath()
123 return userSettings->value("cachepath", QDir::tempPath()).toString();
126 QString RbSettings::bootloaderUrl()
128 return devices->value("bootloader_url").toString();
131 QString RbSettings::bootloaderInfoUrl()
133 return devices->value("bootloader_info_url").toString();
136 QString RbSettings::fontUrl()
138 return devices->value("font_url").toString();
141 QString RbSettings::voiceUrl()
143 return devices->value("voice_url").toString();
146 QString RbSettings::doomUrl()
148 return devices->value("doom_url").toString();
151 QString RbSettings::releaseUrl()
153 return devices->value("release_url").toString();
156 QString RbSettings::dailyUrl()
158 return devices->value("daily_url").toString();
161 QString RbSettings::serverConfUrl()
163 return devices->value("server_conf_url").toString();
166 QString RbSettings::genlangUrl()
168 return devices->value("genlang_url").toString();
171 QString RbSettings::themeUrl()
173 return devices->value("themes_url").toString();
176 QString RbSettings::bleedingInfo()
178 return devices->value("bleeding_info").toString();
181 bool RbSettings::cacheDisabled()
183 return userSettings->value("cachedisable").toBool();
186 QString RbSettings::proxyType()
188 return userSettings->value("proxytype", "none").toString();
191 QString RbSettings::proxy()
193 return userSettings->value("proxy").toString();
196 QString RbSettings::ofPath()
198 return userSettings->value("ofpath").toString();
201 QString RbSettings::curBrand()
203 QString platform = userSettings->value("platform").toString();
204 return brand(platform);
207 QString RbSettings::curName()
209 QString platform = userSettings->value("platform").toString();
210 return name(platform);
213 QString RbSettings::curPlatform()
215 return userSettings->value("platform").toString();
218 QString RbSettings::curPlatformName()
220 return deviceSettingCurGet("platform").toString();
223 QString RbSettings::curManual()
225 return deviceSettingCurGet("manualname","rockbox-" +
226 devices->value("platform").toString()).toString();
229 bool RbSettings::curReleased()
231 QString released = deviceSettingCurGet("released").toString();
232 if(released == "yes")
233 return true;
234 else
235 return false;
238 QString RbSettings::curBootloaderMethod()
240 return deviceSettingCurGet("bootloadermethod").toString();
243 QString RbSettings::curBootloaderName()
245 return deviceSettingCurGet("bootloadername").toString();
248 QString RbSettings::curBootloaderFile()
250 return deviceSettingCurGet("bootloaderfile").toString();
253 QString RbSettings::curVoiceName()
255 return deviceSettingCurGet("voicename").toString();
258 QString RbSettings::curLang()
260 // QSettings::value only returns the default when the setting
261 // doesn't exist. Make sure to return the system language if
262 // the language in the configuration is present but empty too.
263 QString lang = userSettings->value("lang").toString();
264 if(lang.isEmpty())
265 lang = QLocale::system().name();
266 return lang;
269 QString RbSettings::curEncoder()
271 return deviceSettingCurGet("encoder").toString();
274 QString RbSettings::curTTS()
276 return userSettings->value("tts").toString();
279 QString RbSettings::lastTalkedFolder()
281 return userSettings->value("last_talked_folder").toString();
284 QString RbSettings::voiceLanguage()
286 return userSettings->value("voicelanguage").toString();
289 int RbSettings::wavtrimTh()
291 return userSettings->value("wavtrimthreshold",500).toInt();
294 QString RbSettings::ttsPath(QString tts)
296 return userSettingsGroupGet(tts,"ttspath").toString();
298 QString RbSettings::ttsOptions(QString tts)
300 return userSettingsGroupGet(tts,"ttsoptions").toString();
302 QString RbSettings::ttsVoice(QString tts)
304 return userSettingsGroupGet(tts,"ttsvoice","Microsoft Sam").toString();
306 int RbSettings::ttsSpeed(QString tts)
308 return userSettingsGroupGet(tts,"ttsspeed",0).toInt();
310 QString RbSettings::ttsLang(QString tts)
312 return userSettingsGroupGet(tts,"ttslanguage","english").toString();
315 bool RbSettings::ttsUseSapi4()
317 return userSettingsGroupGet("sapi","useSapi4",false).toBool();
320 QString RbSettings::encoderPath(QString enc)
322 return userSettingsGroupGet(enc,"encoderpath").toString();
324 QString RbSettings::encoderOptions(QString enc)
326 return userSettingsGroupGet(enc,"encoderoptions").toString();
329 double RbSettings::encoderQuality(QString enc)
331 return userSettingsGroupGet(enc,"quality",8.f).toDouble();
333 int RbSettings::encoderComplexity(QString enc)
335 return userSettingsGroupGet(enc,"complexity",10).toInt();
337 double RbSettings::encoderVolume(QString enc)
339 return userSettingsGroupGet(enc,"volume",1.f).toDouble();
341 bool RbSettings::encoderNarrowband(QString enc)
343 return userSettingsGroupGet(enc,"narrowband",false).toBool();
346 QStringList RbSettings::allPlatforms()
348 QStringList result;
349 devices->beginGroup("platforms");
350 QStringList a = devices->childKeys();
351 for(int i = 0; i < a.size(); i++)
353 result.append(devices->value(a.at(i), "null").toString());
355 devices->endGroup();
356 return result;
359 QStringList RbSettings::allLanguages()
361 QStringList result;
362 devices->beginGroup("languages");
363 QStringList a = devices->childKeys();
364 for(int i = 0; i < a.size(); i++)
366 result.append(devices->value(a.at(i), "null").toString());
368 devices->endGroup();
369 return result;
372 QString RbSettings::name(QString plattform)
374 devices->beginGroup(plattform);
375 QString name = devices->value("name").toString();
376 devices->endGroup();
377 return name;
380 QString RbSettings::brand(QString plattform)
382 devices->beginGroup(plattform);
383 QString brand = devices->value("brand").toString();
384 devices->endGroup();
385 return brand;
388 QString RbSettings::nameOfTargetId(int id)
390 QString result ="";
391 // get a list of ID -> target name
392 QStringList platforms;
393 devices->beginGroup("platforms");
394 platforms = devices->childKeys();
395 devices->endGroup();
396 for(int i = 0; i < platforms.size(); i++)
398 devices->beginGroup("platforms");
399 QString target = devices->value(platforms.at(i)).toString();
400 devices->endGroup();
401 devices->beginGroup(target);
402 if(devices->value("targetid").toInt() == id)
404 result = devices->value("name").toString();
406 devices->endGroup();
409 return result;
412 QMap<int, QString> RbSettings::usbIdMap()
414 QMap<int, QString> map;
415 // get a list of ID -> target name
416 QStringList platforms;
417 devices->beginGroup("platforms");
418 platforms = devices->childKeys();
419 devices->endGroup();
421 for(int i = 0; i < platforms.size(); i++)
423 devices->beginGroup("platforms");
424 QString target = devices->value(platforms.at(i)).toString();
425 devices->endGroup();
426 devices->beginGroup(target);
427 QStringList ids = devices->value("usbid").toStringList();
428 int j = ids.size();
429 while(j--)
430 map.insert(ids.at(j).toInt(0, 16), target);
432 devices->endGroup();
434 return map;
437 QMap<int, QString> RbSettings::usbIdErrorMap()
440 QMap<int, QString> map;
441 // get a list of ID -> target name
442 QStringList platforms;
443 devices->beginGroup("platforms");
444 platforms = devices->childKeys();
445 devices->endGroup();
447 for(int i = 0; i < platforms.size(); i++)
449 devices->beginGroup("platforms");
450 QString target = devices->value(platforms.at(i)).toString();
451 devices->endGroup();
452 devices->beginGroup(target);
453 QStringList ids = devices->value("usberror").toStringList();
454 int j = ids.size();
455 while(j--)
456 map.insert(ids.at(j).toInt(0, 16), target);
457 devices->endGroup();
459 return map;
463 QMap<int, QString> RbSettings::usbIdIncompatMap()
466 QMap<int, QString> map;
467 // get a list of ID -> target name
468 QStringList platforms;
469 devices->beginGroup("platforms");
470 platforms = devices->childKeys();
471 devices->endGroup();
473 for(int i = 0; i < platforms.size(); i++)
475 devices->beginGroup("platforms");
476 QString target = devices->value(platforms.at(i)).toString();
477 devices->endGroup();
478 devices->beginGroup(target);
479 QStringList ids = devices->value("usbincompat").toStringList();
480 int j = ids.size();
481 while(j--)
482 map.insert(ids.at(j).toInt(0, 16), target);
483 devices->endGroup();
485 return map;
489 QString RbSettings::curResolution()
491 return deviceSettingCurGet("resolution").toString();
494 int RbSettings::curTargetId()
496 return deviceSettingCurGet("targetid").toInt();
499 void RbSettings::setCurVersion(QString version)
501 userSettings->setValue("rbutil_version",version);
504 void RbSettings::setOfPath(QString path)
506 userSettings->setValue("ofpath",path);
509 void RbSettings::setCachePath(QString path)
511 userSettings->setValue("cachepath", path);
514 void RbSettings::setBuild(QString build)
516 userSettings->setValue("build", build);
519 void RbSettings::setLastTalkedDir(QString dir)
521 userSettings->setValue("last_talked_folder", dir);
524 void RbSettings::setVoiceLanguage(QString dir)
526 userSettings->setValue("voicelanguage", dir);
529 void RbSettings::setWavtrimTh(int th)
531 userSettings->setValue("wavtrimthreshold", th);
534 void RbSettings::setProxy(QString proxy)
536 userSettings->setValue("proxy", proxy);
539 void RbSettings::setProxyType(QString proxytype)
541 userSettings->setValue("proxytype", proxytype);
544 void RbSettings::setLang(QString lang)
546 userSettings->setValue("lang", lang);
549 void RbSettings::setMountpoint(QString mp)
551 userSettings->setValue("mountpoint",mp);
554 void RbSettings::setCurPlatform(QString platt)
556 userSettings->setValue("platform",platt);
560 void RbSettings::setCacheDisable(bool on)
562 userSettings->setValue("cachedisable",on);
565 void RbSettings::setCacheOffline(bool on)
567 userSettings->setValue("offline",on);
570 void RbSettings::setCurTTS(QString tts)
572 userSettings->setValue("tts",tts);
575 void RbSettings::setTTSPath(QString tts, QString path)
577 userSettingsGroupSet(tts,"ttspath",path);
580 void RbSettings::setTTSOptions(QString tts, QString options)
582 userSettingsGroupSet(tts,"ttsoptions",options);
585 void RbSettings::setTTSVoice(QString tts, QString voice)
587 userSettingsGroupSet(tts,"ttsvoice",voice);
590 void RbSettings::setTTSSpeed(QString tts, int speed)
592 userSettingsGroupSet(tts,"ttsspeed",speed);
595 void RbSettings::setTTSLang(QString tts, QString lang)
597 userSettingsGroupSet(tts,"ttslanguage",lang);
600 void RbSettings::setTTSUseSapi4(bool value)
602 userSettingsGroupSet("sapi","useSapi4",value);
605 void RbSettings::setEncoderPath(QString enc, QString path)
607 userSettingsGroupSet(enc,"encoderpath",path);
610 void RbSettings::setEncoderOptions(QString enc, QString options)
612 userSettingsGroupSet(enc,"encoderoptions",options);
615 void RbSettings::setEncoderQuality(QString enc, double q)
617 userSettingsGroupSet(enc,"quality",q);
619 void RbSettings::setEncoderComplexity(QString enc, int c)
621 userSettingsGroupSet(enc,"complexity",c);
623 void RbSettings::setEncoderVolume(QString enc,double v)
625 userSettingsGroupSet(enc,"volume",v);
627 void RbSettings::setEncoderNarrowband(QString enc,bool nb)
629 userSettingsGroupSet(enc,"narrowband",nb);