diff -r aad866c37519 -r cc1cea6aabaf cpsecplugins/simpincodeplugin/src/cppincodepluginview.cpp --- a/cpsecplugins/simpincodeplugin/src/cppincodepluginview.cpp Fri Jun 11 14:28:40 2010 +0300 +++ b/cpsecplugins/simpincodeplugin/src/cppincodepluginview.cpp Thu Jun 24 12:46:20 2010 +0300 @@ -25,6 +25,7 @@ // User includes #include "cppincodepluginview.h" +#include <../../inc/cpsecplugins.h> /*! \class CpPinCodePluginView @@ -41,6 +42,7 @@ CpPinCodePluginView::CpPinCodePluginView(QGraphicsItem *parent /*= 0*/) : CpBaseSettingView(0,parent), mSecCodeSettings(new SecCodeSettings()) { + RDEBUG("0", 0); HbDataForm *form = qobject_cast(widget()); if (form) { QList protoTypeList = form->itemPrototypes(); @@ -48,7 +50,7 @@ form->setItemPrototypes(protoTypeList); form->setHeading(tr("PIN code")); - HbDataFormModel *formModel = new HbDataFormModel(); + mFormModel = new HbDataFormModel(this); mPinCodeRequestItem = new HbDataFormModelItem( HbDataFormModelItem::ToggleValueItem, tr("PIN code requests")); @@ -60,10 +62,10 @@ mPinCodeRequestItem->setContentWidgetData("text",tr("Off")); mPinCodeRequestItem->setContentWidgetData("additionalText", tr("Off")); } - - form->addConnection(mPinCodeRequestItem, SIGNAL(clicked()), this, - SLOT(changePinCodeRequest())); - formModel->appendDataFormItem(mPinCodeRequestItem); + RDEBUG("form->addConnection", 1); + connect(mFormModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)), + this, SLOT(toggleChange(QModelIndex, QModelIndex))); + mFormModel->appendDataFormItem(mPinCodeRequestItem); HbDataFormModelItem *pinCodeItem = new HbDataFormModelItem( static_cast @@ -73,7 +75,7 @@ pinCodeItem->setContentWidgetData("readOnly", true); form->addConnection(pinCodeItem, SIGNAL(clicked()), this, SLOT(changePinCode())); - formModel->appendDataFormItem(pinCodeItem); + mFormModel->appendDataFormItem(pinCodeItem); HbDataFormModelItem *pin2CodeItem = new HbDataFormModelItem( static_cast @@ -83,9 +85,9 @@ pin2CodeItem->setContentWidgetData("readOnly", true); form->addConnection(pin2CodeItem, SIGNAL(clicked()), this, SLOT(changePin2Code())); - formModel->appendDataFormItem(pin2CodeItem); - - form->setModel(formModel); + mFormModel->appendDataFormItem(pin2CodeItem); + RDEBUG("form->setModel", 1); + form->setModel(mFormModel); } } @@ -98,10 +100,51 @@ } /*! + response for click pin code request +*/ +void CpPinCodePluginView::toggleChange(QModelIndex startIn, + QModelIndex /*endIn*/) +{ + RDEBUG("0", 0); + HbDataFormModelItem *item = mFormModel->itemFromIndex(startIn); + if(item->type() == HbDataFormModelItem::ToggleValueItem) { + if (mSecCodeSettings->changePinCodeRequest()) { + RDEBUG("got changePinCodeRequest", 1); + disconnect(mFormModel, + SIGNAL(dataChanged(QModelIndex, QModelIndex)), this, + SLOT(toggleChange(QModelIndex, QModelIndex))); + RDEBUG("disconnected", 1); + 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")); + } + RDEBUG("reconnect", 1); + connect(mFormModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)), + this, SLOT(toggleChange(QModelIndex, QModelIndex))); + } + else + { + RDEBUG("value was not changed", 0); + } + } + RDEBUG("0", 0); +} + +/*! response for click pin code */ void CpPinCodePluginView::changePinCode() { + RDEBUG("0", 0); mSecCodeSettings->changePinCode(); } @@ -110,26 +153,6 @@ */ void CpPinCodePluginView::changePin2Code() { + RDEBUG("0", 0); 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")); - } - } -}