--- 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);