diff -r 624337f114fe -r 23411a3be0db controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenview.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenview.cpp Fri May 14 15:53:07 2010 +0300 @@ -0,0 +1,156 @@ +/* + * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0"" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: + * + */ + +#include "cpkeyscreenview.h" +#include "cpkeyscreenmodel.h" +#include "cpkeyscreenconstants.h" +#include +#include +#include +#include +#include +#include +#include + + +CpKeyScreenView::CpKeyScreenView(QGraphicsItem *parent) : + CpBaseSettingView(0,parent), + mScreenRadioButton(0), + mRotateCheckbox(0), + mBrightSliderItem(0), + mCallibItem(0), + mModel(0) +{ + HbDataForm *form = qobject_cast ( widget() ); + if (form) { + form->setHeading(hbTrId("txt_cp_subhead_keys_screen")); + mModel = new CpKeyScreenModel(); + HbDataFormModel *model = new HbDataFormModel; + + if ( mModel->isKeyguardSupported() ) { + makeScreenItem(*model); + } + + if ( mModel->isRotateSupported() ) { + makeRotateItem(*model); + } + + makeBrightnessItem(*model); + + if ( mModel->isCallibrationSupported() ) { + makeCallibrationItem(*model); + } + + form->setModel(model); + } +} + +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()); + + // 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; + } + if ( (KCpKeyscreenLock15s != period) && (KCpKeyscreenLock30s != period) && + (KCpKeyscreenLock45s != period) && (KCpKeyscreenLock60s != period) && + (KCpKeyscreenLock120s != period) ){ + mModel->setKeyguard(KCpKeyscreenLockDefault30s); // Set keyguard and backlight period to default + selectedIndex = EKeyScreenLockItem2; + } + mScreenRadioButton->setContentWidgetData( QString("items"), sList ); + mScreenRadioButton->setContentWidgetData( QString("selected"), selectedIndex); +} + +void CpKeyScreenView::makeRotateItem(HbDataFormModel& model) +{ + mRotateCheckbox = new CpSettingFormItemData(HbDataFormModelItem::CheckBoxItem, QString()); + qobject_cast ( widget() )->addConnection(mRotateCheckbox,SIGNAL(stateChanged(int)),this,SLOT(rotateValueChanged(int))); + model.appendDataFormItem(mRotateCheckbox, model.invisibleRootItem()); + + mRotateCheckbox->setContentWidgetData( QString("text"), QVariant(hbTrId("txt_cp_list_autorotate_display")) ); + mRotateCheckbox->setData(HbDataFormModelItem::DescriptionRole, QString( hbTrId("txt_cp_info_rotate_the_display_content_automatical") )); + Qt::CheckState state; + if ( mModel->rotate() ){ + state = Qt::Checked; + } else { + state = Qt::Unchecked; + } + mRotateCheckbox->setContentWidgetData( QString("checkState"), state ); +} + +void CpKeyScreenView::makeBrightnessItem(HbDataFormModel& model) +{ + mBrightSliderItem = new CpSettingFormItemData(HbDataFormModelItem::SliderItem, hbTrId("txt_cp_setlabel_brightness")); + qobject_cast ( widget() )->addConnection(mBrightSliderItem,SIGNAL(valueChanged(int)),this,SLOT(brightValueChanged(int))); + model.appendDataFormItem(mBrightSliderItem, model.invisibleRootItem()); + + mBrightSliderItem->setContentWidgetData( QString("value"), mModel->brightness() ); + mBrightSliderItem->setContentWidgetData( QString("minimum"), 1 ); + mBrightSliderItem->setContentWidgetData( QString("maximum"), 5 ); +} + +void CpKeyScreenView::makeCallibrationItem(HbDataFormModel& model) +{ + mCallibItem = new CpSettingFormItemData(HbDataFormModelItem::ToggleValueItem, + QString()); + qobject_cast ( widget() )->addConnection(mCallibItem,SIGNAL(pressed()),this,SLOT(launchCallib())); + model.appendDataFormItem(mCallibItem, model.invisibleRootItem()); + mCallibItem->setContentWidgetData( QString("text"), hbTrId("txt_cp_button_touch_screen_calibration")); +} + +CpKeyScreenView::~CpKeyScreenView() +{ + delete mModel; + mModel = 0; +} + +void CpKeyScreenView::screenValueChanged(int index) +{ + int period = (index + 1) * KCpKeyscreenTimeCoeff; + if (EKeyScreenLockItem5 == index){ + period = KCpKeyscreenLock120s; + } + mModel->setKeyguard(period); +} + +void CpKeyScreenView::rotateValueChanged(int value) +{ + mModel->setRotate( value ); +} + +void CpKeyScreenView::brightValueChanged(int value) +{ + mModel->setBrightness(value); +} + +void CpKeyScreenView::launchCallib() +{ +} + +