camerauis/cameraxui/cxui/src/cxuisettingradiobuttonlist.cpp
changeset 28 3075d9b614e6
parent 19 d9aefe59d544
child 29 699651f2666f
child 43 0e652f8f1fbd
equal deleted inserted replaced
19:d9aefe59d544 28:3075d9b614e6
    51         QStringList settingStrings;
    51         QStringList settingStrings;
    52         mSettingValues.clear();
    52         mSettingValues.clear();
    53 
    53 
    54         CxUiSettings::SettingItem setting;
    54         CxUiSettings::SettingItem setting;
    55         foreach (setting, data->mSettingPairList) {
    55         foreach (setting, data->mSettingPairList) {
       
    56             CX_DEBUG(("CxuiSettingRadioButtonList - appending setting value: %s", setting.mValue.toString().toAscii().data()));
    56             settingStrings.append(setting.mItem); // setting string
    57             settingStrings.append(setting.mItem); // setting string
    57             mSettingValues.append(setting.mValue); // engine value for setting
    58             mSettingValues.append(setting.mValue); // engine value for setting
    58         }
    59         }
    59 
    60 
    60         // Set the setting strings to the model.
    61         // Set the setting strings to the model.
   119 {
   120 {
   120     CX_DEBUG_ENTER_FUNCTION();
   121     CX_DEBUG_ENTER_FUNCTION();
   121 
   122 
   122     QString value;
   123     QString value;
   123     int err = mEngine->settings().get(mSettingId, value);
   124     int err = mEngine->settings().get(mSettingId, value);
       
   125     CX_DEBUG(("CxuiSettingRadioButtonList - original value: [%s]", value.toAscii().data()));
   124 
   126 
   125     int index = 0;
   127     int index = 0;
   126 
   128 
   127     if (err == CxeError::None) {
   129     if (err == CxeError::None) {
   128         index = mSettingValues.indexOf(QVariant(value));
   130         index = mSettingValues.indexOf(QVariant(value));
       
   131         CX_DEBUG(("CxuiSettingRadioButtonList - got original index of: %d", index));
   129     }
   132     }
   130 
   133 
   131     mOriginalIndex = index;
   134     mOriginalIndex = index;
   132     setSelected(mOriginalIndex);
   135     setSelected(mOriginalIndex);
   133 
   136 
   178 
   181 
   179     CX_DEBUG(("id: %s", mSettingId.toAscii().data()));
   182     CX_DEBUG(("id: %s", mSettingId.toAscii().data()));
   180 
   183 
   181     if (!mSettingId.isEmpty() && !mSettingValues.isEmpty()) {
   184     if (!mSettingId.isEmpty() && !mSettingValues.isEmpty()) {
   182         QVariant value = mSettingValues.at(index);
   185         QVariant value = mSettingValues.at(index);
   183         if (value.canConvert<int>()) {
   186         if (value.type() == QVariant::Int) {
   184             CX_DEBUG(("index:%d value:%d", index, value.toInt()));
   187             CX_DEBUG(("index:%d value:%d", index, value.toInt()));
   185 
   188 
   186             // Don't set the value again, if it is the current value.
   189             // Don't set the value again, if it is the current value.
   187             // For e.g. video quality it would result in re-preparation etc.
   190             // For e.g. video quality it would result in re-preparation etc.
   188             int current(0);
   191             int current(0);
   191             if (status != CxeError::None || current != value.toInt()) {
   194             if (status != CxeError::None || current != value.toInt()) {
   192                 mEngine->settings().set(mSettingId, value.toInt());
   195                 mEngine->settings().set(mSettingId, value.toInt());
   193             }
   196             }
   194             // inform interested clients about value changed event
   197             // inform interested clients about value changed event
   195             emit valueSelected(value.toInt());
   198             emit valueSelected(value.toInt());
   196         } else if(value.canConvert<QString>()) {
   199 
       
   200         } else if (value.type() == QVariant::String) {
   197             CX_DEBUG(("index:%d value:[%s]", index, value.toString().toAscii().constData()));
   201             CX_DEBUG(("index:%d value:[%s]", index, value.toString().toAscii().constData()));
   198             mEngine->settings().set(mSettingId, value.toString());
   202 
       
   203             QString current;
       
   204             CxeError::Id status(mEngine->settings().get(mSettingId, current));
       
   205             CX_DEBUG(("settings model value:[%s]", current.toAscii().constData()));
       
   206 
       
   207             if (status != CxeError::None || current != value.toString()) {
       
   208                 mEngine->settings().set(mSettingId, value.toString());
       
   209             }
   199         }
   210         }
   200     }
   211     }
   201 
   212 
   202     CX_DEBUG_EXIT_FUNCTION();
   213     CX_DEBUG_EXIT_FUNCTION();
   203 }
   214 }