coreapplicationuis/Rfs/Plugins/cprfsplugin/src/cprfssettingsform.cpp
branchRCL_3
changeset 19 924385140d98
--- /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 <hbdataformmodelitem.h>
+#include <hbdataformmodel.h>
+#include <hbpushbutton.h>
+#include <rfsHandler.h>
+
+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::DataItemType>(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::DataItemType>(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<HbDataFormModelItem *> (index.internalPointer());
+    // to deal with orbit change temparialy
+    if (itemData->type() > HbDataFormModelItem::GroupPageItem)
+        {
+        //get the widget of setting item
+        HbAbstractViewItem* viewitem  = static_cast<HbAbstractItemView*>(this)->itemByIndex(index);
+        HbWidget* widget =static_cast<HbDataFormViewItem*>(viewitem)->dataItemContentWidget(); 
+		if (itemData == mNormalRfs)
+            {
+            activateNormalRfs(widget);
+            }
+		if (itemData == mDeepRfs)
+            {
+            activateDeepRfs(widget);
+            }
+        }
+    }
+
+void CpRfsSettingsForm::activateNormalRfs(HbWidget* widget)
+    {
+    HbPushButton *advanced = qobject_cast<HbPushButton *> (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<HbPushButton *> (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);
+    }