cpsecplugins/simpincodeplugin/src/cppincodepluginview.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 27 May 2010 13:44:17 +0300
changeset 22 6b63ca65093a
parent 19 098e361762d2
child 30 cc1cea6aabaf
child 37 7bad16cccaca
permissions -rw-r--r--
Revision: 201019 Kit: 2010121

/*
 * 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:  
 *
 */

// System includes
#include <hbdataform.h>
#include <hbdataformmodel.h>
#include <hbdataformmodelitem.h>
#include <hblineedit.h>
#include <seccodeeditdataformviewitem.h>
#include <seccodesettings.h>

// User includes
#include "cppincodepluginview.h"

/*!
    \class CpPinCodePluginView
    \brief Pin Code Setting view class

    This class is used to create PIN code setting view
*/

// ======== LOCAL FUNCTIONS ========

/*!
   Constructor
*/
CpPinCodePluginView::CpPinCodePluginView(QGraphicsItem *parent /*= 0*/)
	: CpBaseSettingView(0,parent), mSecCodeSettings(new SecCodeSettings())
{
    HbDataForm *form = qobject_cast<HbDataForm*>(widget());
    if (form) {
        QList<HbAbstractViewItem *> protoTypeList = form->itemPrototypes();
        protoTypeList.append(new SecCodeEditDataFormViewItem());
        form->setItemPrototypes(protoTypeList);     
        form->setHeading(tr("PIN code"));

        HbDataFormModel *formModel = new HbDataFormModel();
        mPinCodeRequestItem = new HbDataFormModelItem(
            HbDataFormModelItem::ToggleValueItem, tr("PIN code requests"));

        bool currentPinCodeRequest = mSecCodeSettings->pinCodeRequest();
        if (currentPinCodeRequest) { 
            mPinCodeRequestItem->setContentWidgetData("text", tr("On"));
            mPinCodeRequestItem->setContentWidgetData("additionalText", tr("On"));
        } else {
            mPinCodeRequestItem->setContentWidgetData("text",tr("Off"));
            mPinCodeRequestItem->setContentWidgetData("additionalText", tr("Off"));
        }

        form->addConnection(mPinCodeRequestItem, SIGNAL(clicked()), this,
        		SLOT(changePinCodeRequest()));
        formModel->appendDataFormItem(mPinCodeRequestItem);

        HbDataFormModelItem *pinCodeItem = new HbDataFormModelItem(
            static_cast<HbDataFormModelItem::DataItemType>
            (SecCodeEditDataFormViewItem::SecCodeEditItem), tr("PIN code"));
        pinCodeItem->setContentWidgetData("echoMode", HbLineEdit::Password);
        pinCodeItem->setContentWidgetData("text", "1111");
        pinCodeItem->setContentWidgetData("readOnly", true);
        form->addConnection(pinCodeItem, SIGNAL(clicked()), this,
        		SLOT(changePinCode()));
        formModel->appendDataFormItem(pinCodeItem);

        HbDataFormModelItem *pin2CodeItem = new HbDataFormModelItem(
            static_cast<HbDataFormModelItem::DataItemType>
            (SecCodeEditDataFormViewItem::SecCodeEditItem), tr("PIN2 code"));
        pin2CodeItem->setContentWidgetData("echoMode", HbLineEdit::Password);
        pin2CodeItem->setContentWidgetData("text", "1111");
        pin2CodeItem->setContentWidgetData("readOnly", true);
        form->addConnection(pin2CodeItem, SIGNAL(clicked()), this,
        		SLOT(changePin2Code()));
        formModel->appendDataFormItem(pin2CodeItem);

        form->setModel(formModel);
    }
}

/*!
   Destructor
*/
CpPinCodePluginView::~CpPinCodePluginView()
{
    delete mSecCodeSettings;
}

/*!
   response for click pin code
*/
void CpPinCodePluginView::changePinCode()
{
    mSecCodeSettings->changePinCode();
}

/*!
   response for click pin2 code
*/
void CpPinCodePluginView::changePin2Code()
{
    mSecCodeSettings->changePin2Code();
}

/*!
   response for click pin code request
*/
void CpPinCodePluginView::changePinCodeRequest()
{
    if (mSecCodeSettings->changePinCodeRequest()) {
        QString text = mPinCodeRequestItem->contentWidgetData("text").toString();
        if (0 == text.compare("On")) {
            mPinCodeRequestItem->setContentWidgetData("text", 
                    tr("Off"));
            mPinCodeRequestItem->setContentWidgetData("additionalText", 
                    tr("Off"));
        } else {
            mPinCodeRequestItem->setContentWidgetData("text", 
                    tr("On"));
            mPinCodeRequestItem->setContentWidgetData("additionalText", 
                    tr("On"));
        }
    }
}