vpnui/vpndialogmanager/src/vpndialogshower.cpp
branchRCL_3
changeset 46 29c8f9bc68e1
parent 0 33413c0669b9
child 49 5960d2d03390
--- a/vpnui/vpndialogmanager/src/vpndialogshower.cpp	Tue Sep 14 23:16:15 2010 +0300
+++ b/vpnui/vpndialogmanager/src/vpndialogshower.cpp	Wed Sep 15 13:20:54 2010 +0300
@@ -103,6 +103,16 @@
     return dialog;
     }
 
+CVpnMultiLineDialog* CVpnDialogShower::GetSecurIdPinDlgL(MVpnNotifierCallback* aNotifier, const TDesC8& aInput)
+    {
+    iValue1 = KNullDesC;
+    iValue2 = KNullDesC;
+    CKmdDlg* dialog = CKmdDlg::NewL(aNotifier, iValue1, iValue2, aInput, CAknQueryDialog::ENoTone);
+    dialog->SetResourceId(R_KMD_CRACK_SID_PIN_QUERY);
+    dialog->ExecuteLD(R_KMD_CRACK_SID_PIN_QUERY);
+    return dialog;
+    }
+
 CVpnMultiLineDialog* CVpnDialogShower::GetSecurIdNextDlgL(MVpnNotifierCallback* aNotifier, const TDesC8& aInput)
     {
     iValue1 = KNullDesC;
@@ -489,12 +499,14 @@
 
 CKmdDlg::CKmdDlg(MVpnNotifierCallback* aNotifier, const TTone& aTone) : CVpnMultiLineDialog(aNotifier, aTone)
     {
+    iResourceId = 0;
     }
 
 CKmdDlg::CKmdDlg(MVpnNotifierCallback* aNotifier, const TDesC8& aInput, const TTone& aTone)
 : CVpnMultiLineDialog(aNotifier, aTone)
     {
     iInput.Set(aInput);
+    iResourceId = 0;
     }
 
 CKmdDlg* CKmdDlg::NewL(MVpnNotifierCallback* aNotifier, TDes& aData1, TDes& aData2, TTone aTone)
@@ -521,11 +533,18 @@
     return self;
     }
 
+void CKmdDlg::SetResourceId(TInt aResourceId)
+    {
+    iResourceId = aResourceId;
+    }
 void CKmdDlg::PreLayoutDynInitL()
     {
-    SetMaxLengthOfFirstEditor(KMaxAuthenticationInputLength);
-    SetMaxLengthOfSecondEditor(KMaxAuthenticationInputLength);
-    
+    if (iResourceId == R_KMD_CRACK_SID_PIN_QUERY)
+        {
+        CAknQueryControl* secondControl = static_cast<CAknQueryControl*>(Control(EEikCidPasswordConfirm));
+        CEikSecretEditor* secretEditor = static_cast<CEikSecretEditor*>(secondControl->ControlByLayoutOrNull( EMultiDataSecondSecEd ));
+        secretEditor->SetDefaultInputMode(EAknEditorNumericInputMode);
+        }
     CAknMultiLineDataQueryDialog::PreLayoutDynInitL();
     
     CAknQueryControl* usernameControl = static_cast<CAknQueryControl*>(Control(EEikCidPassword));
@@ -543,6 +562,27 @@
         }
     }
 
+void CKmdDlg::UpdateLeftSoftKeyL()
+    {
+  
+    CAknQueryControl* secondControl = static_cast<CAknQueryControl*>(Control(EEikCidPasswordConfirm));
+    if (iResourceId == R_KMD_CRACK_SID_PIN_QUERY)
+        {
+        if ( (0 == secondControl->GetTextLength()) || 
+             (KMinSecurIDPINLength <= secondControl->GetTextLength()) )
+            MakeLeftSoftkeyVisible(ETrue);
+        else 
+            MakeLeftSoftkeyVisible(EFalse);
+        }
+    else 
+        {
+        if (0 != secondControl->GetTextLength())
+            MakeLeftSoftkeyVisible(ETrue);
+        else
+            MakeLeftSoftkeyVisible(EFalse);
+        }
+    }
+
 void CKmdDlg::SetInitialCurrentLine()
     {
     CAknMultiLineDataQueryDialog::SetInitialCurrentLine();