diff -r 0818dd463d41 -r 924385140d98 coreapplicationuis/Rfs/Plugins/cprfsplugin/src/cprfssettingsform.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/coreapplicationuis/Rfs/Plugins/cprfsplugin/src/cprfssettingsform.cpp Tue Aug 31 15:24:25 2010 +0300 @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2010 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: Creates the view for "Reset" and "Delete Data and Resore" and activates the RFS operation based on the user selection. + * + */ + +#include "cprfssettingsform.h" +#include "cprfssettingsdataformcustomitem.h" + + +#include +#include +#include +#include + +CpRfsSettingsForm::CpRfsSettingsForm(QGraphicsItem *parent) : + HbDataForm(parent),mTrans("control_panel") + { + this->setHeading(hbTrId("txt_cp_subhead_reset")); + + //initialize the form model + initRfsSettingModel(); + + connect(this, SIGNAL(itemShown(QModelIndex)),this, SLOT(onItemActivated(QModelIndex))); + } + +CpRfsSettingsForm::~CpRfsSettingsForm() + { + + } + +void CpRfsSettingsForm::initRfsSettingModel() + { + HbDataFormModel *model = new HbDataFormModel(0); + + // Create the custom items because HbPushButton cannot be added to the HbDataFormModelItem + HbDataFormModelItem::DataItemType customItem1 = static_cast(HbDataFormModelItem::CustomItemBase + 1); + + mNormalRfs = model->appendDataFormItem(customItem1, QString(), model->invisibleRootItem()); + mNormalRfs->setLabel(hbTrId("txt_cp_setlabel_settings_reset")); + mNormalRfs->setDescription(hbTrId("txt_cp_info_original_settings_will_be_restored_no")); + HbDataFormModelItem::DataItemType customItem2 = static_cast(HbDataFormModelItem::CustomItemBase + 2); + + mDeepRfs = model->appendDataFormItem(customItem2, QString(), model->invisibleRootItem()); + mDeepRfs->setLabel(hbTrId("txt_cp_setlabel_device_reset")); + mDeepRfs->setDescription(hbTrId("txt_cp_info_all_data_will_be_deleted_and_factory_s")); + this->setModel(model); + } + +// On Item activated +void CpRfsSettingsForm::onItemActivated(const QModelIndex &index) + { + HbDataFormModelItem *itemData = static_cast (index.internalPointer()); + // to deal with orbit change temparialy + if (itemData->type() > HbDataFormModelItem::GroupPageItem) + { + //get the widget of setting item + HbAbstractViewItem* viewitem = static_cast(this)->itemByIndex(index); + HbWidget* widget =static_cast(viewitem)->dataItemContentWidget(); + if (itemData == mNormalRfs) + { + activateNormalRfs(widget); + } + if (itemData == mDeepRfs) + { + activateDeepRfs(widget); + } + } + } + +void CpRfsSettingsForm::activateNormalRfs(HbWidget* widget) + { + HbPushButton *advanced = qobject_cast (widget); + + if(advanced) + { + //TODO Issue in DataForm Calling the itemActivated twice + disconnect( advanced, SIGNAL(clicked()), this, SLOT(onPressedNormalRfs()) ); + + connect( advanced, SIGNAL(clicked()), this, SLOT(onPressedNormalRfs()) ); + } + } + +void CpRfsSettingsForm::activateDeepRfs(HbWidget* widget) + { + HbPushButton *advanced = qobject_cast (widget); + + if(advanced) + { + //TODO Issue in DataForm Calling the itemActivated twice + disconnect( advanced, SIGNAL(clicked()), this, SLOT(onPressedDeepRfs()) ); + + connect( advanced, SIGNAL(clicked()), this, SLOT(onPressedDeepRfs()) ); + } + } + +void CpRfsSettingsForm::onPressedNormalRfs() + { + CRfsHandler* rfsHandler = new ( ELeave ) CRfsHandler; + CleanupStack :: PushL(rfsHandler); + + //activate the Normal RFS + rfsHandler->ActivateRfsL( ERfsNormal ); + + CleanupStack :: PopAndDestroy(rfsHandler); + + } + +void CpRfsSettingsForm::onPressedDeepRfs() + { + CRfsHandler* rfsHandler = new ( ELeave ) CRfsHandler; + CleanupStack :: PushL(rfsHandler); + + //activate the Deep RFS + rfsHandler->ActivateRfsL( ERfsDeep ); + + CleanupStack :: PopAndDestroy(rfsHandler); + }