--- a/camerauis/cameraxui/cxui/src/cxuisettingradiobuttonlist.cpp Fri Apr 16 14:51:30 2010 +0300
+++ b/camerauis/cameraxui/cxui/src/cxuisettingradiobuttonlist.cpp Thu May 13 21:30:19 2010 +0300
@@ -53,6 +53,7 @@
CxUiSettings::SettingItem setting;
foreach (setting, data->mSettingPairList) {
+ CX_DEBUG(("CxuiSettingRadioButtonList - appending setting value: %s", setting.mValue.toString().toAscii().data()));
settingStrings.append(setting.mItem); // setting string
mSettingValues.append(setting.mValue); // engine value for setting
}
@@ -121,11 +122,13 @@
QString value;
int err = mEngine->settings().get(mSettingId, value);
+ CX_DEBUG(("CxuiSettingRadioButtonList - original value: [%s]", value.toAscii().data()));
int index = 0;
if (err == CxeError::None) {
index = mSettingValues.indexOf(QVariant(value));
+ CX_DEBUG(("CxuiSettingRadioButtonList - got original index of: %d", index));
}
mOriginalIndex = index;
@@ -180,7 +183,7 @@
if (!mSettingId.isEmpty() && !mSettingValues.isEmpty()) {
QVariant value = mSettingValues.at(index);
- if (value.canConvert<int>()) {
+ if (value.type() == QVariant::Int) {
CX_DEBUG(("index:%d value:%d", index, value.toInt()));
// Don't set the value again, if it is the current value.
@@ -193,9 +196,17 @@
}
// inform interested clients about value changed event
emit valueSelected(value.toInt());
- } else if(value.canConvert<QString>()) {
+
+ } else if (value.type() == QVariant::String) {
CX_DEBUG(("index:%d value:[%s]", index, value.toString().toAscii().constData()));
- mEngine->settings().set(mSettingId, value.toString());
+
+ QString current;
+ CxeError::Id status(mEngine->settings().get(mSettingId, current));
+ CX_DEBUG(("settings model value:[%s]", current.toAscii().constData()));
+
+ if (status != CxeError::None || current != value.toString()) {
+ mEngine->settings().set(mSettingId, value.toString());
+ }
}
}