summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rbutil/rbutilqt/base/rbsettings.cpp20
-rw-r--r--rbutil/rbutilqt/base/rbsettings.h5
-rw-r--r--rbutil/rbutilqt/configure.cpp44
3 files changed, 44 insertions, 25 deletions
diff --git a/rbutil/rbutilqt/base/rbsettings.cpp b/rbutil/rbutilqt/base/rbsettings.cpp
index 8ab340faa3..150640f010 100644
--- a/rbutil/rbutilqt/base/rbsettings.cpp
+++ b/rbutil/rbutilqt/base/rbsettings.cpp
@@ -220,6 +220,25 @@ void RbSettings::setSubValue(QString sub, enum UserSettings setting, QVariant va
userSettings->setValue(s, value);
}
+
+QVariant RbSettings::platformValue(QString platform, enum SystemSettings setting)
+{
+ ensureRbSettingsExists();
+
+ // locate setting item
+ int i = 0;
+ while(SystemSettingsList[i].setting != setting)
+ i++;
+
+ QString s = SystemSettingsList[i].name;
+ s.replace(":platform:", platform);
+ QString d = SystemSettingsList[i].def;
+ d.replace(":platform:", platform);
+ qDebug() << "[Settings] GET P:" << s << systemSettings->value(s, d).toString();
+ return systemSettings->value(s, d);
+}
+
+
QStringList RbSettings::platforms()
{
ensureRbSettingsExists();
@@ -250,6 +269,7 @@ QStringList RbSettings::languages()
return result;
}
+
QString RbSettings::name(QString platform)
{
ensureRbSettingsExists();
diff --git a/rbutil/rbutilqt/base/rbsettings.h b/rbutil/rbutilqt/base/rbsettings.h
index 4f2a5c3617..c9aceb4039 100644
--- a/rbutil/rbutilqt/base/rbsettings.h
+++ b/rbutil/rbutilqt/base/rbsettings.h
@@ -114,7 +114,7 @@ class RbSettings : public QObject
static QMap<int, QString> usbIdMap(enum MapType);
//! get a value from system settings
static QVariant value(enum SystemSettings setting);
- //! get a vaulue from user settings
+ //! get a value from user settings
static QVariant value(enum UserSettings setting);
//! set a user setting value
static void setValue(enum UserSettings setting , QVariant value);
@@ -122,6 +122,8 @@ class RbSettings : public QObject
static QVariant subValue(QString sub, enum UserSettings setting);
//! set a user setting from a subvalue (ie for encoders and tts engines)
static void setSubValue(QString sub, enum UserSettings setting, QVariant value);
+ //! get a value from system settings for a named platform.
+ static QVariant platformValue(QString platform, enum SystemSettings setting);
private:
//! you shouldnt call this, its a fully static calls
@@ -137,3 +139,4 @@ class RbSettings : public QObject
};
#endif
+
diff --git a/rbutil/rbutilqt/configure.cpp b/rbutil/rbutilqt/configure.cpp
index 23d275dd6e..43406c00e7 100644
--- a/rbutil/rbutilqt/configure.cpp
+++ b/rbutil/rbutilqt/configure.cpp
@@ -367,18 +367,14 @@ void Config::updateTtsState(int index)
void Config::updateEncState()
{
- // FIXME: this is a workaround to make the encoder follow the device selection
- // even with the settings (and thus the device) being saved. Needs to be redone
- // properly later by extending the settings object
if(ui.treeDevices->selectedItems().size() == 0)
return;
QString devname = ui.treeDevices->selectedItems().at(0)->data(0, Qt::UserRole).toString();
- QString olddevice = RbSettings::value(RbSettings::Platform).toString();
- RbSettings::setValue(RbSettings::Platform, devname);
- QString encoder = RbSettings::value(RbSettings::CurEncoder).toString();
- ui.encoderName->setText(EncBase::getEncoderName(RbSettings::value(RbSettings::CurEncoder).toString()));
- RbSettings::setValue(RbSettings::Platform, olddevice);
+ QString encoder = RbSettings::platformValue(devname,
+ RbSettings::CurEncoder).toString();
+ ui.encoderName->setText(EncBase::getEncoderName(RbSettings::platformValue(devname,
+ RbSettings::CurEncoder).toString()));
EncBase* enc = EncBase::getEncoder(this,encoder);
@@ -673,14 +669,16 @@ void Config::testTts()
TTSBase* tts = TTSBase::getTTS(this,ui.comboTts->itemData(index).toString());
if(!tts->configOk())
{
- QMessageBox::warning(this,tr("TTS configuration invalid"),tr("TTS configuration invalid. \n Please configure TTS engine."));
+ QMessageBox::warning(this,tr("TTS configuration invalid"),
+ tr("TTS configuration invalid. \n Please configure TTS engine."));
return;
}
if(!tts->start(&errstr))
{
- QMessageBox::warning(this,tr("Could not start TTS engine"),tr("Could not start TTS engine.\n") + errstr
- +tr("\nPlease configure TTS engine."));
+ QMessageBox::warning(this,tr("Could not start TTS engine"),
+ tr("Could not start TTS engine.\n") + errstr
+ + tr("\nPlease configure TTS engine."));
return;
}
@@ -692,11 +690,12 @@ void Config::testTts()
if(tts->voice(tr("Rockbox Utility Voice Test"),filename,&errstr) == FatalError)
{
tts->stop();
- QMessageBox::warning(this,tr("Could not voice test string"),tr("Could not voice test string.\n") + errstr
- +tr("\nPlease configure TTS engine."));
+ QMessageBox::warning(this,tr("Could not voice test string"),
+ tr("Could not voice test string.\n") + errstr
+ + tr("\nPlease configure TTS engine."));
return;
}
- tts->stop();
+ tts->stop();
#if defined(Q_OS_LINUX)
QString exe = findExecutable("aplay");
if(exe == "") exe = findExecutable("play");
@@ -704,25 +703,21 @@ void Config::testTts()
{
QProcess::execute(exe+" "+filename);
}
-#else
+#else
QSound::play(filename);
-#endif
+#endif
}
void Config::configEnc()
{
- // FIXME: this is a workaround to make the encoder follow the device selection
- // even with the settings (and thus the device) being saved. Needs to be redone
- // properly later by extending the settings object
if(ui.treeDevices->selectedItems().size() == 0)
return;
QString devname = ui.treeDevices->selectedItems().at(0)->data(0, Qt::UserRole).toString();
- QString olddevice = RbSettings::value(RbSettings::CurrentPlatform).toString();
- RbSettings::setValue(RbSettings::CurrentPlatform,devname);
- QString encoder = RbSettings::value(RbSettings::CurEncoder).toString();
- ui.encoderName->setText(EncBase::getEncoderName(RbSettings::value(RbSettings::CurEncoder).toString()));
- RbSettings::setValue(RbSettings::CurrentPlatform,olddevice);
+ QString encoder = RbSettings::platformValue(devname,
+ RbSettings::CurEncoder).toString();
+ ui.encoderName->setText(EncBase::getEncoderName(RbSettings::platformValue(devname,
+ RbSettings::CurEncoder).toString()));
EncBase* enc = EncBase::getEncoder(this,encoder);
@@ -732,3 +727,4 @@ void Config::configEnc()
updateEncState();
}
+