cpsecplugins/simpincodeplugin/src/cppincodepluginview.cpp
changeset 30 cc1cea6aabaf
parent 22 6b63ca65093a
--- 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<HbDataForm*>(widget());
     if (form) {
         QList<HbAbstractViewItem *> 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<HbDataFormModelItem::DataItemType>
@@ -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<HbDataFormModelItem::DataItemType>
@@ -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"));
-        }
-    }
-}