vpnui/vpnmanagementui/src/vpnmanagementuipolicyview.cpp
branchRCL_3
changeset 49 5960d2d03390
parent 41 e06095241a65
--- a/vpnui/vpnmanagementui/src/vpnmanagementuipolicyview.cpp	Wed Sep 15 13:20:54 2010 +0300
+++ b/vpnui/vpnmanagementui/src/vpnmanagementuipolicyview.cpp	Wed Oct 13 15:42:16 2010 +0300
@@ -108,13 +108,22 @@
         {
         TInt currentItem = iPolicyContainer->iListBox->CurrentItemIndex();
 
+        // the policy list is empty  all except Install and Exit is dimmed
         if ( currentItem == -1 )
             {
             aMenuPane->SetItemDimmed( EVpnUiCmdPolicyDetails, ETrue );
             aMenuPane->SetItemDimmed( EVpnUiCmdDeletePolicy, ETrue );
-          
+            aMenuPane->SetItemDimmed( EVpnUiCmdUpdatePolicy, ETrue );
+            // NSSM support is discontinued
+            aMenuPane->SetItemDimmed( EVpnUiCmdInstallPolicies, ETrue );
             }
-         
+        // at least one policy is installed, 
+        else 
+            {
+            aMenuPane->SetItemDimmed( EVpnUiCmdInstallPolicies, ETrue );
+            // NSSM support is discontinued
+            aMenuPane->SetItemDimmed( EVpnUiCmdUpdatePolicy, ETrue );
+            }
         }
     }
 
@@ -135,7 +144,8 @@
 //
 void CVpnManagementUiPolicyView::HandleCommandL( TInt aCommand )
     {
-     switch ( aCommand )
+    TBool ffsLow;
+    switch ( aCommand )
         {
         case EAknSoftkeyBack:
             {
@@ -155,7 +165,34 @@
             break;
             }
 
-     
+        case EVpnUiCmdInstallPolicies:
+            {
+            ffsLow = iLoader.FFSSpaceBelowCriticalLevelL( ETrue, 0 );
+    		if(!ffsLow)
+    			{
+            	iPolicyContainer->InstallPoliciesL();
+    			}
+            break;
+            }
+        case EVpnUiCmdUpdatePolicy:
+            {
+            ffsLow = iLoader.FFSSpaceBelowCriticalLevelL( ETrue, 0 );
+    		if(!ffsLow)
+    			{
+            	iCurrentPosition = iPolicyContainer->iListBox->CurrentItemIndex();
+            	//Save policy index for Connecting via note
+            	iLoader.iCurrentPolicyIndex = iCurrentPosition;
+            	//Save update operation for Connecting via note
+            	iLoader.iPolicyUpdate = ETrue;
+
+            	TVpnPolicyInfo policyInfo;
+            	policyInfo.iId = iLoader.VpnApiWrapperL().PolicyListL()->At(
+            	    iCurrentPosition).iId;
+            	iPolicyContainer->UpdatePolicyL(policyInfo.iId);
+    			}
+            break;
+            }
+
         case EVpnUiCmdDeletePolicy:
             {
             //confirmation query
@@ -275,6 +312,8 @@
 		ReadResourceL(*text, aResourceId);
 		cbaGroup->RemoveCommandFromStack(
 		    KVpnMSKControlId, EVpnUiCmdPolicyDetails);
+		cbaGroup->RemoveCommandFromStack(
+		    KVpnMSKControlId, EVpnUiCmdInstallPolicies);
 		cbaGroup->AddCommandToStackL(
 		    KVpnMSKControlId, aCommandId, text->Des());
 		CleanupStack::PopAndDestroy(text);