equal
deleted
inserted
replaced
71 setListBoxType(data->mListboxType); |
71 setListBoxType(data->mListboxType); |
72 |
72 |
73 // Store the original setting value and focus matching item. |
73 // Store the original setting value and focus matching item. |
74 QString value; |
74 QString value; |
75 mEngine->settings().get(mSettingId, value); |
75 mEngine->settings().get(mSettingId, value); |
76 CX_DEBUG(("CxuiSettingRadioButtonList - original value: [%s]", value.toAscii().data())); |
76 CX_DEBUG(("CxuiSettingRadioButtonList - original value: [%s]", qPrintable(value))); |
77 setOriginalSelectedItemByValue(QVariant(value)); |
77 setOriginalSelectedItemByValue(QVariant(value)); |
78 } |
78 } |
79 } |
79 } |
80 |
80 |
81 /*! |
81 /*! |
85 */ |
85 */ |
86 void CxuiSettingRadioButtonList::setOriginalSelectedItemByValue(const QVariant &value) |
86 void CxuiSettingRadioButtonList::setOriginalSelectedItemByValue(const QVariant &value) |
87 { |
87 { |
88 CX_DEBUG_ENTER_FUNCTION(); |
88 CX_DEBUG_ENTER_FUNCTION(); |
89 |
89 |
|
90 // Find the index of given value among setting values. |
|
91 // Default to first item, if given value is not found. |
90 int index = mSettingValues.indexOf(QVariant(value)); |
92 int index = mSettingValues.indexOf(QVariant(value)); |
91 if (index >= 0) { |
93 if (index < 0) { |
92 mOriginalIndex = index; |
94 CX_DEBUG(("[WARNING] Value [%s] not found, selecting first item", qPrintable(value.toString()))); |
93 setSelected(index); |
95 index = 0; |
94 // ensure that currently selected item is visible |
96 } |
95 scrollTo(currentIndex()); |
97 |
96 } else { |
98 // Store the original value. |
97 CX_DEBUG(("[WARNING] Value %s not found, defaulting to first item", value.toString().toAscii().data())); |
99 mOriginalIndex = index; |
98 } |
100 // Select the index with current value item. |
|
101 setSelected(index); |
|
102 // Ensure that currently selected item is visible. |
|
103 scrollTo(currentIndex()); |
|
104 |
99 CX_DEBUG_EXIT_FUNCTION(); |
105 CX_DEBUG_EXIT_FUNCTION(); |
100 } |
106 } |
101 |
107 |
102 /*! |
108 /*! |
103 * Set list texts. |
109 * Set list texts. |
188 */ |
194 */ |
189 void CxuiSettingRadioButtonList::commit(int index) |
195 void CxuiSettingRadioButtonList::commit(int index) |
190 { |
196 { |
191 CX_DEBUG_ENTER_FUNCTION(); |
197 CX_DEBUG_ENTER_FUNCTION(); |
192 |
198 |
193 CX_DEBUG(("id: %s", mSettingId.toAscii().data())); |
199 CX_DEBUG(("CxuiSettingRadioButtonList - id: %s", qPrintable(mSettingId))); |
194 |
200 |
195 if (!mSettingId.isEmpty() && !mSettingValues.isEmpty()) { |
201 if (!mSettingId.isEmpty() && !mSettingValues.isEmpty()) { |
196 QVariant value = mSettingValues.at(index); |
202 QVariant value = mSettingValues.at(index); |
197 if (value.type() == QVariant::Int) { |
203 if (value.type() == QVariant::Int) { |
198 CX_DEBUG(("index:%d value:%d", index, value.toInt())); |
204 CX_DEBUG(("CxuiSettingRadioButtonList - index:%d value:%d", index, value.toInt())); |
199 |
205 |
200 // Don't set the value again, if it is the current value. |
206 // Don't set the value again, if it is the current value. |
201 // For e.g. video quality it would result in re-preparation etc. |
207 // For e.g. video quality it would result in re-preparation etc. |
202 int current(0); |
208 int current(0); |
203 CxeError::Id status(mEngine->settings().get(mSettingId, current)); |
209 CxeError::Id status(mEngine->settings().get(mSettingId, current)); |
207 } |
213 } |
208 // inform interested clients about value changed event |
214 // inform interested clients about value changed event |
209 emit valueSelected(value.toInt()); |
215 emit valueSelected(value.toInt()); |
210 |
216 |
211 } else if (value.type() == QVariant::String) { |
217 } else if (value.type() == QVariant::String) { |
212 CX_DEBUG(("index:%d value:[%s]", index, value.toString().toAscii().constData())); |
218 CX_DEBUG(("CxuiSettingRadioButtonList - index:%d value:[%s]", index, qPrintable(value.toString()))); |
213 |
219 |
214 QString current; |
220 QString current; |
215 CxeError::Id status(mEngine->settings().get(mSettingId, current)); |
221 CxeError::Id status(mEngine->settings().get(mSettingId, current)); |
216 CX_DEBUG(("settings model value:[%s]", current.toAscii().constData())); |
222 CX_DEBUG(("CxuiSettingRadioButtonList - settings model value:[%s]", qPrintable(current))); |
217 |
223 |
218 if (status != CxeError::None || current != value.toString()) { |
224 if (status != CxeError::None || current != value.toString()) { |
219 mEngine->settings().set(mSettingId, value.toString()); |
225 mEngine->settings().set(mSettingId, value.toString()); |
220 } |
226 } |
221 } |
227 } |