locationsystemui/locationsysui/locsuplsettingsui/src/locsuplservereditor.cpp
branchRCL_3
changeset 49 10852b179f64
parent 45 6b6920c56e2f
child 55 ea98413ce11f
--- a/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplservereditor.cpp	Tue Sep 14 22:09:33 2010 +0300
+++ b/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplservereditor.cpp	Wed Sep 15 12:40:28 2010 +0300
@@ -69,7 +69,7 @@
         					TBool aIsEditable,
                             CLocSUPLSettingsUiEngine&       aEngine,
         					TInt64 aSlpId
-		):iIsEditMode( aIsEditable ), iEngine( aEngine ), iSlpId( aSlpId )
+		):iIsEditMode( aIsEditable ), iEngine( aEngine ), iSlpId( aSlpId ), iIsAccessPointDefined(EFalse)
     {
     if( aIsEditable )
     	{
@@ -184,28 +184,10 @@
 				case ELocSuplServerIdServerAddr:
 					{
 					aMenuPane->SetItemDimmed( ELocServerEditorDefine, 	ETrue );
-		       		aMenuPane->SetItemDimmed( ELocServerEditorChange, 	ETrue );   
 					break;
 					}
 				case ELocSuplServerIdAccessPoint:
 					{
-			       	TInt isIapChanged = EFalse;
-			        CEikEdwin* apSelector = 
-			        			static_cast < CEikEdwin* > ( ControlOrNull( IdOfFocusControl() ) );           
-			        if( apSelector )
-			            {  
-			            if( iIap->Length() > 0 ) 
-			            	isIapChanged = ETrue;
-			            } 
-			            
-			       	if( isIapChanged )
-			       		{
-			       		aMenuPane->SetItemDimmed( ELocServerEditorDefine, 	ETrue );
-			       		}
-			       	else
-			       		{
-			       		aMenuPane->SetItemDimmed( ELocServerEditorChange, 	ETrue );		       		
-			       		}				
 					break;
 					}
 				case ELocSuplServerIdUsageInHomeNw:
@@ -215,8 +197,6 @@
 		        	TBool editableFlag = ETrue;
 		        	if( iSlpId )
 		        		TRAP_IGNORE( iEngine.GetEditableFlagL( iSlpId, editableFlag ) );        				        	
-		        	if( editableFlag == EFalse )					
-						aMenuPane->SetItemDimmed( ELocServerEditorChange, 	ETrue );
 		        	
 					break;
 					}
@@ -254,7 +234,6 @@
         		}
 
 			aMenuPane->SetItemDimmed( ELocServerEditorDefine, 	ETrue );
-       		aMenuPane->SetItemDimmed( ELocServerEditorChange, 	ETrue );		       			    	
        		aMenuPane->SetItemDimmed( ELocServerEditorRemove, 	ETrue );		       			    	
 	    	}	        
         }
@@ -300,27 +279,18 @@
             TRAP_IGNORE( iEngine.SetServerEnabledFlagL( iSlpId, ETrue ) );
             break;
             }
-        case ELocServerEditorDefine:
-            {
-            TRAP_IGNORE( iEngine.LaunchApConfiguratorL( iSlpId, this ) );
-            break;
-            }
-        case ELocServerEditorChange:
         case ELocServerEditorMSKChange:
             {
             CEikEdwin* usageInHomeNWPopupFieldText = (CEikEdwin*) Control(
                     ELocSuplServerIdUsageInHomeNw);
-            if (IdOfFocusControl() == ELocSuplServerIdAccessPoint)
-                {
-                TRAP_IGNORE( iEngine.LaunchApConfiguratorL( iSlpId, this ) );
-                }
-            else
-                {
+            HBufC* string;
+                            string = StringLoader::LoadLC(
+                                    R_LOC_SERVER_USAGEINHOMENETWORK_NO, iCoeEnv);
                 if (iIsNewServer)
                     {
                     TBuf<KMaxUsageTextSize> des;
                     usageInHomeNWPopupFieldText->GetText(des);
-                    if (!des.Compare(KNoUsageInHomeNetork))
+                    if (!des.CompareC(string->Des()))
                         {
                         SetUsageinHomeNetwork(ETrue);
                         }
@@ -337,7 +307,7 @@
                         {
                         TBuf<KMaxUsageTextSize> des;
                         usageInHomeNWPopupFieldText->GetText(des);
-                        if (!des.Compare(KNoUsageInHomeNetork))
+                        if (!des.CompareC(string->Des()))
                             {
                             SetUsageinHomeNetwork(ETrue);
                             }
@@ -346,8 +316,8 @@
                             SetUsageinHomeNetwork(EFalse);
                             }
                         }
+                CleanupStack::PopAndDestroy(string);
                     }
-                }
             break;
             }
         case EAknCmdHelp:
@@ -459,13 +429,6 @@
             retVal = EFalse;
         	break;
         	}
-        case ELocServerEditorMSKDefine:
-        	{
-        	TRAP_IGNORE( iEngine.LaunchApConfiguratorL( iSlpId, this ) );
-            //dont close editor            
-            retVal = EFalse;
-        	break;
-        	}
         case ELocServerEditorMSKChange:
         	{
         	ProcessCommandL( ELocServerEditorMSKChange );
@@ -491,9 +454,11 @@
 				{
             	if( iIsNewServer ) 
             		{
+                    // iap name is always set as KNullDesC since defining the access point is 
+                    // not allowed while creating a new server manually
             		TRAPD( err, iEngine.AddNewServerL(
             								iServerAddress->Des(),
-            								iIap->Des(),
+            								KNullDesC,
             								iUsageInHomeNw ) );
             		if( err == KErrNone )
             			{
@@ -627,7 +592,7 @@
         delete apText;
 
         HBufC* apString = StringLoader::LoadL( R_LOC_SERVER_NONE ); 
-        if( apString->Compare( iIap->Des() ) == 0 ) 
+        if (apString->CompareC(iIap->Des()) == 0)
         	{
         	iIap->Des().Copy( KNullDesC );
         	}
@@ -640,15 +605,19 @@
     if (usageInHomeNWPopupFieldText)
         {
         TBuf<KMaxUsageTextSize> des;
+        HBufC* string;
+                        string = StringLoader::LoadLC(
+                                R_LOC_SERVER_USAGEINHOMENETWORK_NO, iCoeEnv);
         usageInHomeNWPopupFieldText->GetText(des);
-        if (!des.Compare(KNoUsageInHomeNetork))
+        if (!des.CompareC(string->Des()))
+            {
+            iUsageInHomeNw = EFalse;
+            }
+        else
             {
             iUsageInHomeNw = ETrue;
             }
-        else
-            {
-            iUsageInHomeNw = EFalse;
-            }
+        CleanupStack::PopAndDestroy(string);
         }
 
     if( iServerAddress->Length() > 0 )
@@ -752,10 +721,18 @@
 // -----------------------------------------------------------------------------
 //
 TInt CLocSUPLServerEditor::ExecuteLD()
-    {    
-	return CAknForm::ExecuteLD( R_SUPLSERVER_EDITOR_FORM_DIALOG );    	
+    {
+    if (!iIsAccessPointDefined)
+        {
+        return CAknForm::ExecuteLD(R_SUPLSERVER_EDITOR_FORM_DIALOG_NOAP);
+        }
+    else
+        {
+        return CAknForm::ExecuteLD(R_SUPLSERVER_EDITOR_FORM_DIALOG);
+        }
     }
 
+
 // -----------------------------------------------------------------------------
 // CLocSUPLServerEditor::HandleControlStateChangeL
 // -----------------------------------------------------------------------------
@@ -808,15 +785,6 @@
 	DEBUG( + CLocSUPLServerEditor::LoadFormValuesFromDataL );
    	if( IsEditable() && iIsNewServer ) //if create new server
        	{
-       	CEikEdwin* apSelector = 
-        			static_cast < CEikEdwin* > ( ControlOrNull( ELocSuplServerIdAccessPoint ) );           
-       	if( apSelector )
-            {   
-            HBufC* apString = StringLoader::LoadL( R_LOC_SERVER_NONE );   
-            apSelector->SetTextL( apString );
-            delete apString;
-            }
-        apSelector->DrawNow();
 
         CEikEdwin* usageInHNWPopupFieldText = (CEikEdwin*) Control(
                 ELocSuplServerIdUsageInHomeNw);
@@ -862,7 +830,7 @@
 	        {
 	        // Error has occured 
 	        }  
-     	
+      
         CEikEdwin* serverAddress = 
         			static_cast < CEikEdwin* > ( ControlOrNull( ELocSuplServerIdServerAddr ) );           
         if( serverAddress )
@@ -873,31 +841,24 @@
         	serverAddress->DrawDeferred();
         	iServerAddress->Des().Copy( hslpAddr->Des() );
             } 
-
-        CEikEdwin* apSelector = 
-        			static_cast < CEikEdwin* > ( ControlOrNull( ELocSuplServerIdAccessPoint ) );           
-        if( apSelector )
-            {   
-            if( iapName->Length() > 0 )
-            	{
-            	apSelector->SetTextL( iapName );
-            	}
-            else
-            	{
-	            HBufC* apString = StringLoader::LoadL( R_LOC_SERVER_NONE ); 
-	            apSelector->SetTextL( apString );
-            	delete apString;
-            	}
-            	            
-        	apSelector->DrawNow();
-        	iIap->Des().Copy( iapName->Des() );
-            } 
-
+        
+            if (iIsAccessPointDefined)
+            {
+            CEikEdwin* apSelector = static_cast<CEikEdwin*> (ControlOrNull(
+                    ELocSuplServerIdAccessPoint));
+            if (apSelector)
+                {
+                apSelector->SetTextL(iapName);
+                apSelector->DrawNow();
+                iIap->Des().Copy(iapName->Des());
+                }
+            }
+       
         CEikEdwin* usageInHNWPopupFieldText = (CEikEdwin*) Control(
                 ELocSuplServerIdUsageInHomeNw);
         if (usageInHNWPopupFieldText)
             {
-            if (usageInHomeNwFlag)
+            if (!usageInHomeNwFlag)
                 SetUsageinHomeNetwork(EFalse);
             else
                 SetUsageinHomeNetwork(ETrue);
@@ -982,22 +943,6 @@
 	       		}
 	       	case ELocSuplServerIdAccessPoint:
 		       	{
-		       	TInt isIapChanged = EFalse;
-		        CEikEdwin* apSelector = 
-		        			static_cast < CEikEdwin* > ( ControlOrNull( IdOfFocusControl() ) );           
-		        if( apSelector && iIap )
-		            {   
-		            if( iIap->Length() > 0 )
-	            		isIapChanged = ETrue;
-		            } 
-		       	if( isIapChanged )
-		       		{
-		       		cba->SetCommandSetL( R_SUPLSERVER_EDITOR_OPTIONS_CHANGE_DONE );
-		       		}
-		       	else
-		       		{
-		       		cba->SetCommandSetL( R_SUPLSERVER_EDITOR_OPTIONS_DEFINE_DONE );		       		
-		       		}
 		       	break;	
 		       	}
 	       	case ELocSuplServerIdUsageInHomeNw:
@@ -1139,10 +1084,12 @@
     if (!IsEditable())
         {
         if (focusControl == ELocSuplServerIdUsageInHomeNw
-                || ELocSuplServerIdServerAddr || ELocSuplServerIdAccessPoint)
+                || focusControl == ELocSuplServerIdServerAddr)
             {
             ProcessCommandL(EAknFormCmdEdit);
             }
+        else
+            return;
         }
     else if (aEventID == MEikDialogPageObserver::EDialogPageTapped)
         {
@@ -1150,9 +1097,12 @@
             {
             if (usageInHomeNWPopupFieldText)
                 {
+                HBufC* string;
+                string = StringLoader::LoadLC(
+                        R_LOC_SERVER_USAGEINHOMENETWORK_NO, iCoeEnv);
                 TBuf<KMaxUsageTextSize> des;
                 usageInHomeNWPopupFieldText->GetText(des);
-                if (!des.Compare(KNoUsageInHomeNetork))
+                if (!des.CompareC(string->Des()))
                     {
                     SetUsageinHomeNetwork(ETrue);
                     }
@@ -1164,17 +1114,10 @@
                     {
                     iIsModified = ETrue;
                     }
+                CleanupStack::PopAndDestroy(string);
                 }
             return;
             }
-        if (focusControl == ELocSuplServerIdAccessPoint)
-            {
-            if (iapEditor)
-                {
-                //Launch IAP Dialog
-                TRAP_IGNORE( iEngine.LaunchApConfiguratorL( iSlpId, this ) );
-                }
-            }
         }DEBUG( -CLocSUPLServerEditor::HandleDialogPageEventL );
     }
 
@@ -1205,4 +1148,15 @@
     CleanupStack::PopAndDestroy(string);
     }
 
+// -----------------------------------------------------------------------------
+// CLocSUPLServerEditor::SetAccessPointEnabled
+// 
+// -----------------------------------------------------------------------------
+//
+void CLocSUPLServerEditor::SetAccessPointEnabled (TBool aEnabled)
+    {
+    iIsAccessPointDefined = aEnabled;
+    }
+
+
 // End of file