diff -r 22d3abee08da -r 2883a5458389 controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenview.cpp --- a/controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenview.cpp Tue May 25 04:10:19 2010 +0800 +++ b/controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenview.cpp Thu Jun 10 16:07:41 2010 +0800 @@ -25,18 +25,27 @@ #include #include #include +#include CpKeyScreenView::CpKeyScreenView(QGraphicsItem *parent) : CpBaseSettingView(0,parent), - mScreenRadioButton(0), + mScreenComboButton(0), mRotateCheckbox(0), mBrightSliderItem(0), mCallibItem(0), mModel(0) -{ +{ HbDataForm *form = qobject_cast ( widget() ); if (form) { + // Valid range is: + // 15 secs, 30 secs, 45 secs, 1 min, 2 mins + mScreenLockValues.insert(KCpKeyscreenLock15s,hbTrId("txt_cp_setlabel_keys_screen_val_15_seconds")); + mScreenLockValues.insert(KCpKeyscreenLock30s,hbTrId("txt_cp_setlabel_keys_screen_val_30_seconds")); + mScreenLockValues.insert(KCpKeyscreenLock45s,hbTrId("txt_cp_setlabel_keys_screen_val_45_seconds")); + mScreenLockValues.insert(KCpKeyscreenLock60s,hbTrId("txt_cp_setlabel_keys_screen_val_1_minute")); + mScreenLockValues.insert(KCpKeyscreenLock120s,hbTrId("txt_cp_setlabel_keys_screen_val_2_minutes")); + form->setHeading(hbTrId("txt_cp_subhead_keys_screen")); mModel = new CpKeyScreenModel(); HbDataFormModel *model = new HbDataFormModel; @@ -61,30 +70,36 @@ void CpKeyScreenView::makeScreenItem(HbDataFormModel& model) { - mScreenRadioButton = new CpSettingFormItemData(HbDataFormModelItem::RadioButtonListItem, - hbTrId("txt_cp_setlabel_keys_screen_locked_after")); - qobject_cast ( widget() )->addConnection(mScreenRadioButton,SIGNAL(itemSelected(int)),this,SLOT(screenValueChanged(int))); - model.appendDataFormItem(mScreenRadioButton, model.invisibleRootItem()); + mScreenComboButton = new CpSettingFormItemData(HbDataFormModelItem::ComboBoxItem, + hbTrId("txt_cp_setlabel_keys_screen_locked_after")); + + qobject_cast ( widget() )->addConnection( + mScreenComboButton,SIGNAL(currentIndexChanged(QString)), + this,SLOT(screenValueChanged(QString))); + + model.appendDataFormItem(mScreenComboButton, model.invisibleRootItem()); - // Valid range is: - // 15 secs, 30 secs, 45 secs, 1 min, 2 mins - QStringList sList; - sList<< hbTrId("txt_cp_setlabel_keys_screen_val_15_seconds")<< hbTrId("txt_cp_setlabel_keys_screen_val_30_seconds") - << hbTrId("txt_cp_setlabel_keys_screen_val_45_seconds")<< hbTrId("txt_cp_setlabel_keys_screen_val_1_minute") - << hbTrId("txt_cp_setlabel_keys_screen_val_2_minutes"); int period = mModel->keyguard(); - int selectedIndex = period/KCpKeyscreenTimeCoeff - 1; - if ( KCpKeyscreenLock120s == period ){ // 2 minutes - selectedIndex = EKeyScreenLockItem5; + + int selectedIndex(-1); + + QMap::iterator it = mScreenLockValues.find(period); + if (it == mScreenLockValues.end()) { + mModel->setKeyguard(KCpKeyscreenLockDefault30s); // Set keyguard and backlight period to default + selectedIndex = 1; } - if ( (KCpKeyscreenLock15s != period) && (KCpKeyscreenLock30s != period) && - (KCpKeyscreenLock45s != period) && (KCpKeyscreenLock60s != period) && - (KCpKeyscreenLock120s != period) ){ - mModel->setKeyguard(KCpKeyscreenLockDefault30s); // Set keyguard and backlight period to default - selectedIndex = EKeyScreenLockItem2; + else { + for (it = mScreenLockValues.begin();it != mScreenLockValues.end();++it) { + selectedIndex++; + if (it.key() == period) { + break; + } + } } - mScreenRadioButton->setContentWidgetData( QString("items"), sList ); - mScreenRadioButton->setContentWidgetData( QString("selected"), selectedIndex); + + QStringList items = mScreenLockValues.values(); + mScreenComboButton->setContentWidgetData( QString("items"), items ); + mScreenComboButton->setContentWidgetData( QString("currentIndex"), selectedIndex); } void CpKeyScreenView::makeRotateItem(HbDataFormModel& model) @@ -110,9 +125,17 @@ qobject_cast ( widget() )->addConnection(mBrightSliderItem,SIGNAL(valueChanged(int)),this,SLOT(brightValueChanged(int))); model.appendDataFormItem(mBrightSliderItem, model.invisibleRootItem()); + QList sliderElements; + sliderElements << QVariant(HbSlider::IncreaseElement) << QVariant(HbSlider::TrackElement) + << QVariant(HbSlider::DecreaseElement); + mBrightSliderItem->setContentWidgetData("sliderElements",sliderElements); mBrightSliderItem->setContentWidgetData( QString("value"), mModel->brightness() ); mBrightSliderItem->setContentWidgetData( QString("minimum"), 1 ); mBrightSliderItem->setContentWidgetData( QString("maximum"), 5 ); + QMap< QString, QVariant > iconElements; + iconElements.insert(QString("IncreaseElement") , QVariant(":/icon/hb_vol_slider_increment.svg")); + iconElements.insert(QString("DecreaseElement"), QVariant(":/icon/hb_vol_slider_decrement.svg") ); + mBrightSliderItem->setContentWidgetData( QString( "elementIcons" ), iconElements ); } void CpKeyScreenView::makeCallibrationItem(HbDataFormModel& model) @@ -130,13 +153,15 @@ mModel = 0; } -void CpKeyScreenView::screenValueChanged(int index) -{ - int period = (index + 1) * KCpKeyscreenTimeCoeff; - if (EKeyScreenLockItem5 == index){ - period = KCpKeyscreenLock120s; +void CpKeyScreenView::screenValueChanged(const QString &value) +{ + for (QMap::iterator it = mScreenLockValues.begin(); + it != mScreenLockValues.end();++it) { + if (it.value() == value) { + mModel->setKeyguard(it.key()); + break; + } } - mModel->setKeyguard(period); } void CpKeyScreenView::rotateValueChanged(int value)