cpsecplugins/devicelockplugin/src/cpdevicelockpluginview.cpp
changeset 19 098e361762d2
child 22 6b63ca65093a
equal deleted inserted replaced
17:8957df7b0072 19:098e361762d2
       
     1 /*
       
     2  * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3  * All rights reserved.
       
     4  * This component and the accompanying materials are made available
       
     5  * under the terms of "Eclipse Public License v1.0""
       
     6  * which accompanies this distribution, and is available
       
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8  *
       
     9  * Initial Contributors:
       
    10  * Nokia Corporation - initial contribution.
       
    11  *
       
    12  * Contributors:
       
    13  *
       
    14  * Description:  
       
    15  *
       
    16  */
       
    17 
       
    18 #include "cpdevicelockpluginview.h"
       
    19 #include <QStringList>
       
    20 #include <hblineedit.h>
       
    21 #include <hbdataform.h>
       
    22 #include <hbdataformmodel.h>
       
    23 #include <hbdataformmodelitem.h>
       
    24 #include "cpremotelockdataformviewitem.h"
       
    25 #include <hblabel.h>
       
    26 #include <hbpushbutton.h>
       
    27 #include <hbmessagebox>
       
    28 #include <hbdataform.h>
       
    29 #include <QGraphicsLinearLayout>
       
    30 //#include <seccodeeditdataformviewitem.h>
       
    31 #include <secuisecuritysettings.h>
       
    32 #include <secuisecurityhandler.h>
       
    33 #include <etelmm.h>
       
    34 #include <rmmcustomapi.h>
       
    35 #include <hbinputdialog.h>
       
    36 #include <secui.h>
       
    37 #include <RemoteLockSettings.h>
       
    38 #include <e32cmn.h>
       
    39 #include <centralrepository.h>
       
    40 #include <settingsinternalcrkeys.h>
       
    41 #include <hbcombobox.h>
       
    42 #include<hbaction.h>
       
    43 #include <RemoteLockSettings.h>
       
    44 #include "debug.h"
       
    45 #include <qapplication.h>
       
    46 #include <qtranslator.h>
       
    47 
       
    48    
       
    49         
       
    50 /*
       
    51  *****************************************************************
       
    52  * Name        : CpDeviceLockPluginView()
       
    53  * Parameters  : QGraphicsItem*
       
    54  * Return value: None
       
    55  * Description : constructor
       
    56  *****************************************************************
       
    57  */
       
    58 CpDeviceLockPluginView::CpDeviceLockPluginView(QGraphicsItem *parent /*= 0*/)
       
    59 : CpBaseSettingView(0,parent)
       
    60 {
       
    61         QTranslator *translator = new QTranslator();
       
    62         QString lang = QLocale::system().name();
       
    63         QString path = "Z:/resource/qt/translations/";
       
    64         bool fine = translator->load("devicelocking_en.qm", path);
       
    65         if (fine)
       
    66             qApp->installTranslator(translator);
       
    67 
       
    68         QTranslator *commontranslator = new QTranslator();
       
    69 
       
    70         fine = commontranslator->load("common_" + lang, path);
       
    71         if (fine)
       
    72             qApp->installTranslator(commontranslator);
       
    73 
       
    74 
       
    75     
       
    76     TSecUi::InitializeLibL();
       
    77     mUiSecuSettings = CSecuritySettings::NewL();
       
    78     mRemoteLockSettings = CRemoteLockSettings::NewL();
       
    79     iALPeriodRep = CRepository::NewL( KCRUidSecuritySettings );  
       
    80     
       
    81     
       
    82     mRemoteLockSettingClicked = false;
       
    83     mHack = 0; 
       
    84 	if (HbDataForm *form = settingForm()) 
       
    85 	    {
       
    86         QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical);
       
    87 		QList<HbAbstractViewItem *> protoTypeList = form->itemPrototypes();
       
    88 		protoTypeList.append(new CpRemoteLockDataFormViewItem());
       
    89         form->setItemPrototypes(protoTypeList);
       
    90         form->setHeading(hbTrId("txt_cp_dblist_device_lock"));
       
    91         
       
    92         //DataFormModel
       
    93 		formModel = new HbDataFormModel();
       
    94 		
       
    95 		
       
    96 		//lockcode
       
    97 		HbDataFormModelItem *lockCodeItem = new HbDataFormModelItem(
       
    98 		        static_cast<HbDataFormModelItem::DataItemType>(CpRemoteLockDataFormViewItem::CpCodeEditItem),
       
    99 		        hbTrId("txt_devicelocking_dialog_lock_code"));		
       
   100 		lockCodeItem->setContentWidgetData("echomode",HbLineEdit::Password);
       
   101 		lockCodeItem->setContentWidgetData("text","1234");
       
   102 		lockCodeItem->setContentWidgetData("readonly",true);
       
   103 		form->addConnection(lockCodeItem,SIGNAL(clicked()),this,SLOT(onLockCodeClicked()));
       
   104 		formModel->appendDataFormItem(lockCodeItem);
       
   105 	
       
   106 		
       
   107 		//Autolock period
       
   108 		mAutolockPeriodItem= new HbDataFormModelItem(HbDataFormModelItem::ComboBoxItem,
       
   109                                                         hbTrId("txt_devicelocking_formlabel_automatic_locking"));
       
   110 		TInt autoLockVal;
       
   111 		TInt err = iALPeriodRep->Get(KSettingsAutoLockTime, autoLockVal);
       
   112 		TInt index = GetAutoLockIndex(autoLockVal);
       
   113 		Dprint((_L("Current AL period value %d"),autoLockVal));
       
   114 		//TODO: need to set autoLockVal in editor
       
   115 		QStringList autolockPeriodList;
       
   116 		autolockPeriodList<< hbTrId("txt_devicelocking_button_off")
       
   117 		                  << hbTrId("txt_devicelocking_setlabel_val_when_keys_screen")
       
   118 		                  << hbTrId("txt_devicelocking_setlabel_val_5_minutes")
       
   119 		                  << hbTrId("txt_devicelocking_setlabel_val_30_minutes")
       
   120 		                  << hbTrId("txt_devicelocking_setlabel_val_60_minutes");
       
   121 		mAutolockPeriodItem->setContentWidgetData(QString("items"),autolockPeriodList);
       
   122 		mAutolockPeriodItem->setContentWidgetData(QString("currentIndex"),index);
       
   123 		mAutolockPeriodItem->setContentWidgetData(QString("editable"),true);		
       
   124 		QVariant themeComboData = mAutolockPeriodItem->contentWidgetData(QString("currentIndex"));
       
   125 		mThemeComboPrevIndex = themeComboData.toInt();
       
   126 		
       
   127 		form->addConnection(mAutolockPeriodItem,SIGNAL(currentIndexChanged(int)),this,SLOT(onAutoLockChanged(int)));
       
   128 		//form->addConnection(mAutolockPeriodItem,SIGNAL(editTextChanged(const QString&)), this, SLOT(onAutoTextChanged(const QString&)));
       
   129 		formModel->appendDataFormItem(mAutolockPeriodItem);
       
   130 		
       
   131 		
       
   132 		//LockWhenSimChange
       
   133 		mLockWhenSimChangeItem = new HbDataFormModelItem(HbDataFormModelItem::ToggleValueItem,
       
   134                                                   hbTrId("txt_devicelocking_formlabel_lock_when_sim_changed"));
       
   135     	TBool lockVal = mUiSecuSettings->IsLockEnabledL(RMobilePhone::ELockPhoneToICC);
       
   136     	Dprint((_L("LockWhenSimChange enabled %d"),lockVal));
       
   137 		if(lockVal)
       
   138 		    {
       
   139             mLockWhenSimChangeItem->setContentWidgetData("text",hbTrId("txt_remotelocking_button_sim_changed_on"));
       
   140             mLockWhenSimChangeItem->setContentWidgetData("additionalText",
       
   141                                                             hbTrId("txt_devicelocking_button_sim_changed_off"));
       
   142 		    }
       
   143 		else
       
   144 		    {
       
   145             mLockWhenSimChangeItem->setContentWidgetData("text",hbTrId("txt_devicelocking_button_sim_changed_off"));
       
   146 		    mLockWhenSimChangeItem->setContentWidgetData("additionalText",
       
   147                                                             hbTrId("txt_remotelocking_button_sim_changed_on"));
       
   148 		    }
       
   149 		mLockWhenSimChangeItem->setContentWidgetData("readonly",true);
       
   150 		mPrevSIMLockData = mLockWhenSimChangeItem->contentWidgetData(QString("text"));
       
   151 		
       
   152 		connect(formModel,SIGNAL(dataChanged(QModelIndex, QModelIndex)),
       
   153                                      this,SLOT(onSIMLockDataChanged(QModelIndex,QModelIndex)));
       
   154 		formModel->appendDataFormItem(mLockWhenSimChangeItem);
       
   155 		
       
   156 		
       
   157 		
       
   158 		//Remote Lock Setting
       
   159 		TBool enabled = true;
       
   160 		TBool val = mRemoteLockSettings->GetEnabled(enabled);
       
   161 		Dprint((_L("Remote Lock Setting enabled %d"),val));
       
   162 		mDeviceRemoteLockItem = new HbDataFormModelItem(HbDataFormModelItem::ToggleValueItem,
       
   163                                                             hbTrId("txt_devicelocking_subhead_remote_locking"));
       
   164 
       
   165 		if(val && enabled)
       
   166 		    {
       
   167             mDeviceRemoteLockItem->setContentWidgetData("text",hbTrId("txt_devicelocking_button_remote_on"));
       
   168             mDeviceRemoteLockItem->setContentWidgetData("additionalText",hbTrId("txt_devicelocking_button_remote_off"));
       
   169 		    }
       
   170 		else
       
   171 		    {
       
   172             mDeviceRemoteLockItem->setContentWidgetData("text",hbTrId("txt_devicelocking_button_remote_off"));
       
   173             mDeviceRemoteLockItem->setContentWidgetData("additionalText",hbTrId("txt_devicelocking_button_remote_on"));
       
   174 	        }		    
       
   175 
       
   176 		mPrevRemLockData = mDeviceRemoteLockItem->contentWidgetData(QString("text"));
       
   177 		QString s = mPrevRemLockData.toString();
       
   178         connect(formModel,SIGNAL(dataChanged(QModelIndex, QModelIndex)),this,SLOT(onRemoteLockDataChanged(QModelIndex,QModelIndex)));
       
   179 		formModel->appendDataFormItem(mDeviceRemoteLockItem);	
       
   180 		
       
   181 		//Remote lock message
       
   182 		mRemoteLockMessageItem = new HbDataFormModelItem(
       
   183 		        static_cast<HbDataFormModelItem::DataItemType>(CpRemoteLockDataFormViewItem::CpCodeEditItem),
       
   184 		        hbTrId("txt_devicelocking_formlabel_locking_message"));
       
   185 		mRemoteLockMessageItem->setContentWidgetData("echoMode",HbLineEdit::Password);
       
   186 		mRemoteLockMessageItem->setContentWidgetData("text","1111");
       
   187 		mRemoteLockMessageItem->setContentWidgetData("readOnly",true);
       
   188 		
       
   189 		if(mPrevRemLockData.toString()== hbTrId("txt_devicelocking_button_remote_on"))
       
   190 		    mRemoteLockMessageItem->setEnabled(true);
       
   191 		else
       
   192 		    mRemoteLockMessageItem->setEnabled(false);
       
   193 		
       
   194 		form->addConnection(mRemoteLockMessageItem,SIGNAL(clicked()),this,SLOT(onLockMessageClicked()));
       
   195 		formModel->appendDataFormItem(mRemoteLockMessageItem);
       
   196 		
       
   197 		form->setModel(formModel);
       
   198 		layout->addItem(form);
       
   199 		setLayout(layout);
       
   200 	}
       
   201 }
       
   202 
       
   203 
       
   204 /*
       
   205  *****************************************************************
       
   206  * Name        : ~CpDeviceLockPluginView()
       
   207  * Parameters  : None
       
   208  * Return value: None
       
   209  * Description : destructor
       
   210  *****************************************************************
       
   211  */
       
   212 CpDeviceLockPluginView::~CpDeviceLockPluginView()
       
   213 {
       
   214     TSecUi::UnInitializeLib();
       
   215 }
       
   216 
       
   217 
       
   218 /*
       
   219  *****************************************************************
       
   220  * Name        : onLockCodeClicked()
       
   221  * Parameters  : None
       
   222  * Return value: None
       
   223  * Description : Enables user to change the lock code
       
   224  *****************************************************************
       
   225  */
       
   226 void CpDeviceLockPluginView::onLockCodeClicked()
       
   227 {
       
   228     Dprint(_L("CpDeviceLockPluginView::onLockCodeClicked()..Enter"));
       
   229     mUiSecuSettings->ChangeSecCodeL();
       
   230     Dprint(_L("CpDeviceLockPluginView::onLockCodeClicked()..Exit"));
       
   231 }
       
   232 
       
   233 
       
   234 /*
       
   235  ************************************************************************
       
   236  * Name        : onAutoLockChanged()
       
   237  * Parameters  : int
       
   238  * Return value: None
       
   239  * Description : handles the data when automatic lock timings are changed
       
   240  ************************************************************************
       
   241  */
       
   242 void CpDeviceLockPluginView::onAutoLockChanged(int index)
       
   243     {
       
   244     Dprint(_L("CpDeviceLockPluginView::onAutoLockChanged()..Enter"));
       
   245     if (index != mThemeComboPrevIndex)
       
   246         {
       
   247         //TODO: need to set user entered/selected value
       
   248         TInt lockValue = GetValueAtIndex(index);
       
   249         TInt newAutoLockVal = mUiSecuSettings->ChangeAutoLockPeriodL(
       
   250                 lockValue);
       
   251         if (newAutoLockVal == lockValue)
       
   252             {
       
   253         Dprint(_L("onAutoLockChanged().AL setting success !!"));
       
   254             TInt err = iALPeriodRep->Set(KSettingsAutoLockTime, lockValue);
       
   255             mThemeComboPrevIndex = index;
       
   256             }
       
   257         else
       
   258             {
       
   259             Dprint(_L("onAutoLockChanged()..Setting to previous value"));
       
   260             QVariant data(mThemeComboPrevIndex);
       
   261             mAutolockPeriodItem->setContentWidgetData(
       
   262                     QString("currentIndex"), data);
       
   263             }
       
   264 
       
   265         }
       
   266     Dprint(_L("CpDeviceLockPluginView::onAutoLockChanged()..Exit"));
       
   267 }
       
   268 
       
   269 
       
   270 /*
       
   271  *************************************************************************
       
   272  * Name        : onLockMessageClicked()
       
   273  * Parameters  : None
       
   274  * Return value: None
       
   275  * Description : verifies security code and enables user to change the lock 
       
   276  *               message
       
   277  **************************************************************************
       
   278  */
       
   279 void CpDeviceLockPluginView::onLockMessageClicked()
       
   280     {
       
   281     Dprint(_L("CpDeviceLockPluginView::onLockMessageClicked()..Exit"));
       
   282     TBuf<KRLockMaxLockCodeLength> remoteLockCode;
       
   283     TBool remoteLockStatus(EFalse);
       
   284     TInt retVal = KErrNone;
       
   285     TInt autoLockVal = -1;
       
   286     retVal = mUiSecuSettings->ChangeRemoteLockStatusL(remoteLockStatus,
       
   287             remoteLockCode, autoLockVal);
       
   288     if (retVal)
       
   289         {
       
   290         Dprint(_L("CpDeviceLockPluginView::onLockMessageClicked()..ChangeRemoteLockStatusL sucess"));
       
   291         }
       
   292     else
       
   293         {
       
   294         Dprint(_L("CpDeviceLockPluginView::onLockMessageClicked()..ChangeRemoteLockStatusL failed"));
       
   295         }
       
   296     Dprint(_L("CpDeviceLockPluginView::onLockMessageClicked()..Exit"));
       
   297     }
       
   298 
       
   299 
       
   300 /*
       
   301  *************************************************************************
       
   302  * Name        : onAutoTextChanged()
       
   303  * Parameters  : QString&
       
   304  * Return value: None
       
   305  * Description :  
       
   306   **************************************************************************
       
   307  */
       
   308 /*
       
   309  *This slot can be enabled once fix from obit team for this siganl is available 
       
   310  */
       
   311 
       
   312 #if 0
       
   313 void CpDeviceLockPluginView::onAutoTextChanged(const QString& aText)
       
   314     {
       
   315     Dprint(_L("CpDeviceLockPluginView::onAutoTextChanged()..Enter"));
       
   316     //TBool ret = DisplaySecurityDialog(); 
       
   317     Dprint(_L("CpDeviceLockPluginView::onAutoTextChanged()..Exit"));
       
   318     
       
   319     }
       
   320 #endif
       
   321 
       
   322 /*
       
   323  *************************************************************************
       
   324  * Name        : onRemoteLockDataChanged()
       
   325  * Parameters  : QModelIndex
       
   326  * Return value: None
       
   327  * Description : handles the data when remote lock settings is changed
       
   328  **************************************************************************
       
   329  */
       
   330 void CpDeviceLockPluginView::onRemoteLockDataChanged(QModelIndex aStartIn,QModelIndex aEndIn)
       
   331     {
       
   332     Q_UNUSED(aEndIn);
       
   333     Dprint(_L("CpDeviceLockPluginView::onRemoteLockDataChanged..Enter"));
       
   334     HbDataFormModelItem *item = formModel->itemFromIndex(aStartIn);
       
   335 
       
   336     if ((item->type() == HbDataFormModelItem::ToggleValueItem)
       
   337             && (item->data(HbDataFormModelItem::LabelRole).toString()
       
   338                     == hbTrId("txt_devicelocking_subhead_remote_locking")))
       
   339         {
       
   340 
       
   341         //The following If-Else condition should be removed once orbit team fix the issue with datachanged() signal
       
   342         /****************************************************************************************************************/
       
   343         if ((mHack % 2) == 0) //need to capture second datachanged() signal , not first one.
       
   344             {
       
   345             mHack++;
       
   346             return;
       
   347             }
       
   348         else
       
   349             {
       
   350             mHack++;
       
   351             }
       
   352         /****************************************************************************************************************/
       
   353         TInt autoLockVal;
       
   354         TInt retVal = KErrNone;
       
   355         TBuf<KRLockMaxLockCodeLength> remoteLockCode;
       
   356         TBool remoteLockStatus(EFalse);
       
   357         CRemoteLockSettings *remoteLockSetting = CRemoteLockSettings::NewL();
       
   358         TInt err = iALPeriodRep->Get(KSettingsAutoLockTime, autoLockVal);
       
   359         QVariant remLockData = mDeviceRemoteLockItem->contentWidgetData(
       
   360                 QString("text"));
       
   361         if (remLockData.toString() == hbTrId("txt_devicelocking_button_remote_on"))
       
   362             {
       
   363             remoteLockStatus = ETrue;
       
   364             retVal = mUiSecuSettings->ChangeRemoteLockStatusL(
       
   365                     remoteLockStatus, remoteLockCode, autoLockVal);
       
   366             }
       
   367         else
       
   368             {
       
   369             remoteLockStatus = EFalse;
       
   370             retVal = mUiSecuSettings->ChangeRemoteLockStatusL(
       
   371                     remoteLockStatus, remoteLockCode, autoLockVal);
       
   372             }
       
   373         if (retVal == KErrNone)
       
   374             {
       
   375             if (remoteLockStatus)
       
   376                 {
       
   377                 if (remoteLockSetting->SetEnabledL(remoteLockCode))
       
   378                     {
       
   379                     Dprint(_L("CpDeviceLockPluginView::onRemoteLockDataChanged..remoteLockSetting->SetEnabledL success"));
       
   380                     mPrevRemLockData
       
   381                             = mDeviceRemoteLockItem->contentWidgetData(
       
   382                                     QString("text"));
       
   383                     }
       
   384                 else
       
   385                     {
       
   386                     RollbackRemoteLockSettingState();
       
   387                     Dprint(_L("CpDeviceLockPluginView::onRemoteLockDataChanged..remoteLockSetting->SetEnabledL failed"));
       
   388                     }
       
   389                 }
       
   390             else
       
   391                 {
       
   392                 if (mRemoteLockSettings->SetDisabled())
       
   393                     {
       
   394                     Dprint(_L("CpDeviceLockPluginView::onRemoteLockDataChanged..remoteLockSetting->SetDisabled success"));
       
   395                     mPrevRemLockData
       
   396                             = mDeviceRemoteLockItem->contentWidgetData(
       
   397                                     QString("text"));
       
   398                     }
       
   399                 else
       
   400                     {
       
   401                     RollbackRemoteLockSettingState();
       
   402                     Dprint(_L("CpDeviceLockPluginView::onRemoteLockDataChanged..remoteLockSetting->SetDisabled failed"));
       
   403                     }
       
   404                 }
       
   405             }
       
   406         else
       
   407             {
       
   408             Dprint(_L("CpDeviceLockPluginView::onRemoteLockDataChanged..RollbackRemoteLockSettingState"));
       
   409             RollbackRemoteLockSettingState();
       
   410             }
       
   411         delete remoteLockSetting;
       
   412         }
       
   413     Dprint(_L("CpDeviceLockPluginView::onRemoteLockDataChanged..Exit"));
       
   414 }
       
   415 
       
   416 
       
   417 /*
       
   418  *************************************************************************
       
   419  * Name        : onSIMLockDataChanged()
       
   420  * Parameters  : QModelIndex
       
   421  * Return value: None
       
   422  * Description : handles the data afer Lock when SIM changed settings is 
       
   423  *               changed
       
   424  **************************************************************************
       
   425  */
       
   426 void CpDeviceLockPluginView::onSIMLockDataChanged(QModelIndex aStartIn, QModelIndex aEndIn)
       
   427     {
       
   428     Q_UNUSED(aEndIn);
       
   429     HbDataFormModelItem *item = formModel->itemFromIndex(aStartIn);
       
   430 
       
   431     if ((item->type() == HbDataFormModelItem::ToggleValueItem)
       
   432             && (item->data(HbDataFormModelItem::LabelRole).toString()
       
   433                     == hbTrId("txt_devicelocking_formlabel_lock_when_sim_changed")))
       
   434         {
       
   435         //The following If-Else condition should be removed once orbit team fix the issue with datachanged() signal
       
   436         /****************************************************************************************************************/
       
   437         if ((mHack % 2) == 0) //need to capture second datachanged() signal , not first one.
       
   438             {
       
   439             mHack++;
       
   440             return;
       
   441             }
       
   442         else
       
   443             {
       
   444             mHack++;
       
   445             }
       
   446         /****************************************************************************************************************/
       
   447 
       
   448         TBool ret = mUiSecuSettings->ChangeSimSecurityL();
       
   449         if (!ret)
       
   450             {
       
   451             /* 
       
   452              * disconnect to datachanged() signal as we are not interested in this signal
       
   453              * generated as a part of setContentWidgetData() API call below
       
   454              */
       
   455             disconnect(formModel,SIGNAL(dataChanged(QModelIndex, QModelIndex)), this,SLOT(onSIMLockDataChanged(QModelIndex,QModelIndex)));
       
   456             QVariant txt = mLockWhenSimChangeItem->contentWidgetData(QString("text"));
       
   457             QVariant additionalText =mLockWhenSimChangeItem->contentWidgetData(QString("additionalText"));
       
   458 
       
   459             mLockWhenSimChangeItem->setContentWidgetData(QString("text"),additionalText);
       
   460             mLockWhenSimChangeItem->setContentWidgetData(QString("additionalText"), txt);
       
   461             /*
       
   462              * Now connect back to datachanged() signal .
       
   463              */
       
   464             connect(formModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)),this, SLOT(onSIMLockDataChanged(QModelIndex,QModelIndex)));
       
   465             }
       
   466         }
       
   467     }
       
   468 
       
   469 
       
   470 /*
       
   471  *************************************************************************
       
   472  * Name        : GetAutoLockIndex()
       
   473  * Parameters  : TInt
       
   474  * Return value: TInt
       
   475  * Description : returns corresponding index for the given autolock value
       
   476  **************************************************************************
       
   477  */
       
   478 TInt CpDeviceLockPluginView::GetAutoLockIndex(TInt aValue)
       
   479     {
       
   480         TInt index = 0;
       
   481         switch(aValue)
       
   482             {
       
   483             case 0:
       
   484                     index = 0;
       
   485                     break;
       
   486             case 65535:
       
   487                     index = 1;
       
   488                     break;
       
   489             case 5:
       
   490                     index = 2;
       
   491                     break;
       
   492             case 30:
       
   493                     index = 3;
       
   494                     break;
       
   495             case 60:
       
   496                     index = 4;
       
   497                     break;
       
   498             default:
       
   499                     break;
       
   500             }  
       
   501         
       
   502         return index;    
       
   503     }
       
   504 
       
   505 
       
   506 /*
       
   507  *************************************************************************
       
   508  * Name        : GetValueAtIndex()
       
   509  * Parameters  : TInt
       
   510  * Return value: TInt
       
   511  * Description : returns the corresponding autolock value for the given 
       
   512  *               index.
       
   513  **************************************************************************
       
   514  */
       
   515 TInt CpDeviceLockPluginView::GetValueAtIndex(TInt aIndex)
       
   516     {
       
   517         TInt value = 0;
       
   518         
       
   519         switch(aIndex)
       
   520             {
       
   521             case 0:
       
   522                     value = 0;
       
   523                     break;
       
   524             case 1:
       
   525                     value = 65535;
       
   526                     break;
       
   527             case 2:
       
   528                     value = 5;
       
   529                     break;
       
   530             case 3:
       
   531                     value = 30;
       
   532                     break;
       
   533             case 4:
       
   534                     value = 60;
       
   535                     break;
       
   536             default:
       
   537                     break;
       
   538             }
       
   539         
       
   540         return value;
       
   541     }
       
   542 void CpDeviceLockPluginView::RollbackRemoteLockSettingState()
       
   543     {
       
   544     /* 
       
   545      * disconnect to datachanged() signal as we are not interested in this signal
       
   546      * generated as a part of setContentWidgetData() API call below
       
   547      */
       
   548     disconnect(formModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)),this, SLOT(onRemoteLockDataChanged(QModelIndex,QModelIndex)));
       
   549 
       
   550     QVariant txt = mDeviceRemoteLockItem->contentWidgetData(QString("text"));
       
   551     QVariant additionaltxt = mDeviceRemoteLockItem->contentWidgetData(QString("additionalText"));
       
   552     mDeviceRemoteLockItem->setContentWidgetData(QString("text"),additionaltxt);
       
   553     mDeviceRemoteLockItem->setContentWidgetData(QString("additionalText"),txt);
       
   554     /*
       
   555      * Now connect back to datachanged() signal .
       
   556      */
       
   557     connect(formModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)), this,SLOT(onRemoteLockDataChanged(QModelIndex,QModelIndex)));
       
   558 
       
   559     if (mPrevRemLockData.toString() == hbTrId("txt_devicelocking_button_remote_on"))
       
   560         mRemoteLockMessageItem->setEnabled(true);
       
   561     else
       
   562         mRemoteLockMessageItem->setEnabled(false);
       
   563 
       
   564     }