diff -r 29c8f9bc68e1 -r 5960d2d03390 vpnui/vpnmanagementui/src/vpnmanagementuipolicyview.cpp --- 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);