fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepPredictiveSettingDialog.cpp
changeset 36 a7632c26d895
parent 35 0f326f2e628e
child 42 b3eaa440ab06
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepPredictiveSettingDialog.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,798 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0""
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:          
-*
-*/
-
-
-
-
-
-
-
-
-
-
-/*
- * ============================================================================
- *  Name     : CAknFepPredictiveSettingList from AknFepPredictiveSettingList 
- * ============================================================================
- */
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <uikon/eikctrlstatus.h>
-#endif
-#include <centralrepository.h>
-#include <AknQueryDialog.h>
-#include <AknFepInternalCRKeys.h>
-#include <PtiDefs.h>
-#include <e32property.h>
-#include <AvkonInternalCRKeys.h>
-#include <AknFepGlobalEnums.h>
-#include "AknFepPredictiveSettingDialog.h"
-#include <aknnotewrappers.h>
-#include <aknfep.rsg>
-#include <hlplch.h>
-//#include <csxhelp/cp.hlp.hrh> 
-#include <akntitle.h> //CAknTitlePane
-#include <StringLoader.h>
-#include <aknnavide.h>
-
-_LIT(KFEPIMPLPREDINPUT_HLP_INPUT, "PREDINPUT_HLP_INPUT"); // 
-
-CAknFepPredictiveSettingDialog *CAknFepPredictiveSettingDialog::NewL(TInt aMenuResId, TInt aConfirmationQueryResId, TInt aTitlePaneResId)
-	{
-	CAknFepPredictiveSettingDialog* self = CAknFepPredictiveSettingDialog::NewLC(aMenuResId, aConfirmationQueryResId, aTitlePaneResId);		
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CAknFepPredictiveSettingDialog *CAknFepPredictiveSettingDialog::NewLC(TInt aMenuResId, TInt aConfirmationQueryResId, TInt aTitlePaneResId)
-	{
-	CAknFepPredictiveSettingDialog* self = new (ELeave) CAknFepPredictiveSettingDialog(aConfirmationQueryResId, aTitlePaneResId);
-	CleanupStack::PushL(self);
-	self->ConstructL(aMenuResId);
-    return self;
-	}
-
-void CAknFepPredictiveSettingDialog::ConstructL( TInt aMenuTitleResourceId )
-	{
-	CAknDialog::ConstructL(aMenuTitleResourceId);
-	PrepareStatusPaneL();
-	iItemCloseEventCheck = CIdle::NewL(CActive::EPriorityStandard);
-	}
-
-CAknFepPredictiveSettingDialog ::CAknFepPredictiveSettingDialog(TInt aConfirmationQueryResId, TInt aTitlePaneResId):
-	iConfirmationQueryResId(aConfirmationQueryResId),
-	iPredictiveSettingOffQueryNotShown(ETrue),
-	iTitlePane(NULL),
-	iNaviPane(NULL),
-	iNaviDecoratedTabGroup(NULL),
-	iLastTitle(NULL),
-	iStatusTitle(NULL),
-	iTitlePaneResId(aTitlePaneResId),
-	iSettingItemInEditingState(EFalse)
-	{
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-	RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout, iOriginalKeyboardLayout);
-#endif //__ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-	}
-	
-CAknFepPredictiveSettingDialog::~CAknFepPredictiveSettingDialog()
-	{
-	TRAP_IGNORE(RestoreStatusPaneL());
-	delete iSettingsData;
-
-	delete iItemCloseEventCheck;
-	iItemCloseEventCheck = NULL;
-	if (iAknFepRepository)
-		delete iAknFepRepository;
-	
-	delete iLastTitle;
-	delete iStatusTitle;
-	}
-
-
-SEikControlInfo CAknFepPredictiveSettingDialog::CreateCustomControlL(TInt /*aControlType*/)
-{
-	
-	// construct the data object the settings list will use
-	iSettingsData = CAknFepPredictiveSettingData::NewL();
-	iAknFepRepository = CRepository::NewL(KCRUidAknFep);	
-	ReadSettingsDataL();
-		
-	iSettingsList = CAknFepPredictiveSettingList::NewL(*iSettingsData, *this);
-	
-	SEikControlInfo controlInfo;
-	controlInfo.iFlags = EEikControlHasEars;
-	controlInfo.iTrailerTextId = 0;
-	controlInfo.iControl = iSettingsList;
-	STATIC_CAST(CAknFepPredictiveSettingList*, controlInfo.iControl)->SetContainerWindowL(*this);
-	
-	return controlInfo;
-}
-
-
-CAknFepPredictiveSettingDialog::TFormControlTypes CAknFepPredictiveSettingDialog::ConvertCustomControlTypeToBaseControlType(TInt /*aControlType*/) const
-{
-	return EPopfieldDerived;
-}
-
-
-TBool CAknFepPredictiveSettingDialog::OkToExitL(TInt aButtonId)
-{
-	TBool retValue = EFalse;
-	switch(aButtonId)
-	{
-	case EAknSoftkeyBack:
-		iSettingsList->StoreSettingsL();
-		SaveSettingsDataL();
-		retValue = ETrue;
-		break;
-	
-	case EAknSoftkeyOptions:
-		DisplayMenuL();
-		break;
-	
-	case EAknSoftkeyChange:
-        EditItemL(EFalse);
-		break;
-	}
-	return retValue;
-}
-
-void CAknFepPredictiveSettingDialog::ProcessCommandL(TInt aCommandId)
-	{
-    if(iSettingItemInEditingState && aCommandId == EAknCmdExit)
-        {
-        // If we are currently editing the settings item then generate a cancel event
-        RWsSession& wsSession = CEikonEnv::Static()->WsSession();
-        TKeyEvent escapeEvent = {EKeyEscape, EStdKeyEscape, 0, 0};
-        TRAP_IGNORE(CEikonEnv::Static()->SimulateKeyEventL(escapeEvent, EEventKey));
-        wsSession.Flush();
-		// After generating cancel event, start the callback function so the settings
-		// page is dismissed.
-        iItemCloseEventCheck->Start( TCallBack(EventCheckCallback, this) );
-        return;
-        }   	
-	
-	// This is TSW eror fixing.
-	// This function is called by dialog framework, whenever menu item is 
-	// selected. we should have to hide existing display menu first to maitain the
-	// control stack .
-	// If user try to stop displaying menu after creating any control
-	// In that situation whenever application goes to background framework remove the
-	// control from the stack when try to remove the menubar from control stack.
-	CAknDialog::ProcessCommandL(aCommandId);
-	
-	switch(aCommandId)
-		{
-		case EAknFepCmdPredSettingChange:
-			EditItemL(ETrue);
-			break;
-		case EAknCmdHelp:
-			{
-				
-            const TInt KArrayGranularity = 3;
-            CArrayFix<TCoeHelpContext>* contexts =
-                    new (ELeave) CArrayFixFlat<TCoeHelpContext>( KArrayGranularity );
-	    	CleanupStack::PushL ( contexts );
-	    	TUid appuid = { 0x100058EC };
-	    	contexts->AppendL( TCoeHelpContext( appuid, KFEPIMPLPREDINPUT_HLP_INPUT ) );
-	    	CleanupStack::Pop( contexts );
-	    	HlpLauncher::LaunchHelpApplicationL( CEikonEnv::Static()->WsSession(), contexts );		
-			}
-			break;
-		case EAknCmdExit:
-			// Save the setting and exit application.
-			iSettingsList->StoreSettingsL();
-			SaveSettingsDataL();
-			// Pass the EAknCmdExit command to Avkon 
-			// Framework 
-			iAvkonAppUi->ProcessCommandL(aCommandId);
-			break;
-		}
-	}
-
-void CAknFepPredictiveSettingDialog::ReadSettingsDataL()
-    {
-    TInt autoWordCompl = 0;
-	TInt typingCorrection = 0;
-	TInt numberCandidates = 0;
-	TInt primaryCandidate = 0;
-	TInt physicalKeyboards = 0;
-    // Read CenRep 
-	if( iAknFepRepository )
-		{
-		iAknFepRepository->Get(KAknFepPredTxtFlagExtension, iPredictiveTextFlag);
-		iAknFepRepository->Get(KAknFepAutoCompleteFlag, autoWordCompl);
-		iAknFepRepository->Get(KAknFepTypingCorrectionLevel, typingCorrection);
-		iAknFepRepository->Get(KAknFepNumberCandidateFlag, numberCandidates);
-		iAknFepRepository->Get(KAknFepPrimaryCandidateFlag, primaryCandidate);
-		iAknFepRepository->Get(KAknFepPhysicalKeyboards, physicalKeyboards);
-		}
-
-    // Parse keyboard dependent settings for current keyboard from bitmask
-	TInt keyboardLayout = 0;
-	RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout);
-	TPtiKeyboardType layout = (TPtiKeyboardType)keyboardLayout;
-	TInt autoTmp = autoWordCompl;
-	
-	// This part of code for error fixing:	    
-	// IF ITI is off for QWERTY/ITU-T iPredictiveTextFlag = 0
-	// IF ITI is on for ITU-T 		  iPredictiveTextFlag = 1
-	// IF ITI is on for QWERTY 	  	  iPredictiveTextFlag = 2
-	
-	switch(layout)
-	    {
-	    case EPtiKeyboardNone:
-	        break;
-	  	case EPtiKeyboard12Key:
-	        autoTmp &= EKeyboardStyle12Key;
-	        iPredictiveTextFlag &= EKeyboardStyle12Key;
-	        break;
-	    case EPtiKeyboardHalfQwerty:
-	        autoTmp &= EKeyboardStyleHalfQwerty;
-	        iPredictiveTextFlag &= EKeyboardStyleHalfQwerty;
-	        break;
-	  	case EPtiKeyboardQwerty4x12:
-	  	case EPtiKeyboardQwerty4x10:
-	  	case EPtiKeyboardQwerty3x11:	  	
-	  	case EPtiKeyboardCustomQwerty:
-	        autoTmp &= EKeyboardStyleQwerty;
-	        iPredictiveTextFlag &= EKeyboardStyleQwerty;
-	        break;
-	  	default:
-	  	    break;
-	    }
-	
-	//load setting data
-	iSettingsData->LoadL(( autoTmp ? 1 : 0), typingCorrection, numberCandidates,
-	           primaryCandidate, physicalKeyboards, autoWordCompl);
-   
-    }
-    
-
-void CAknFepPredictiveSettingDialog::SaveSettingsDataL() const
-    {
-    // Read setting data and fill CenRep.
-	if( iAknFepRepository )
-	  	{
-	   	TInt autoFlag = 0;
-	   	iAknFepRepository->Get(KAknFepAutoCompleteFlag, autoFlag);
-	   	TInt predFlag = 0;
-	   	iAknFepRepository->Get(KAknFepPredTxtFlagExtension, predFlag);
-
-	   	// Parse keyboard dependent settings for current keyboard from bitmask
-	   	TInt keyboardLayout = 0;
-	   	RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout);
-	   	TPtiKeyboardType layout = (TPtiKeyboardType)keyboardLayout;
-	   	switch(layout)
-	   	    {
-	   	    case EPtiKeyboardNone:
-	   	        break;
-	   	    case EPtiKeyboard12Key:
-	   	        if (iSettingsData->AutoWordCompl())
-	   	            {
-	   	            autoFlag |= EKeyboardStyle12Key;
-	   	            }
-	   	        else
-	   	            {
-	   	            autoFlag &= ~EKeyboardStyle12Key;
-	   	            }
-	   	        break;
-	   	    case EPtiKeyboardHalfQwerty:
-	   	        if (iSettingsData->AutoWordCompl())
-	   	            {
-	   	            autoFlag |= EKeyboardStyleHalfQwerty;
-	   	            }
-	   	        else
-	   	            {
-	   	            autoFlag &= ~EKeyboardStyleHalfQwerty;
-	   	            }
-	   	    case EPtiKeyboardQwerty4x12:
-	   	    case EPtiKeyboardQwerty4x10:
-	   	    case EPtiKeyboardQwerty3x11:
-	   	    
-	   	    case EPtiKeyboardCustomQwerty:
-	   	        if (iSettingsData->AutoWordCompl())
-	   	            {
-	   	            autoFlag |= EKeyboardStyleQwerty;
-	   	            }
-	   	        else
-	   	            {
-	   	            autoFlag &= ~EKeyboardStyleQwerty;
-	   	            }
-	   	        break;
-	   	    default:
-	   	        break;
-	   	    }
-
-	    if(iSettingsList->DeviceHasMultipleKeyboards())
-	        {
-	        iAknFepRepository->Set(KAknFepAutoCompleteFlag, iSettingsData->AWCBitmask());
-	        }
-	    else
-	        {
-	        iAknFepRepository->Set(KAknFepAutoCompleteFlag, autoFlag);            
-	        }
-	    iAknFepRepository->Set(KAknFepTypingCorrectionLevel, iSettingsData->TypingCorrection());
-	    iAknFepRepository->Set(KAknFepNumberCandidateFlag, iSettingsData->NumberCandidates());
-	    iAknFepRepository->Set(KAknFepPrimaryCandidateFlag, iSettingsData->PrimaryCandidate());
-	    }
-    }
-
-void CAknFepPredictiveSettingDialog::SaveCurrentSettingsDataL() const
-    {
-    // Read setting data and fill CenRep.
-   	if(iAknFepRepository)
-      	{
-      	if(EAutoWordCompletion == iSettingsList->ListBox()->CurrentItemIndex())
-      		{
-	   		TInt autoFlag = 0;
-	   		iAknFepRepository->Get(KAknFepAutoCompleteFlag, autoFlag);
-	   		TInt predFlag = 0;
-	   		iAknFepRepository->Get(KAknFepPredTxtFlagExtension, predFlag);
-
-	   		// Parse keyboard dependent settings for current keyboard from bitmask
-	   		TInt keyboardLayout = 0;
-		   	RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout);
-		   	TPtiKeyboardType layout = (TPtiKeyboardType)keyboardLayout;
-	   		switch(layout)
-	   	    	{
-		   	    case EPtiKeyboardNone:
-		   	        break;
-	   		    case EPtiKeyboard12Key:
-	   	    	    if (iSettingsData->AutoWordCompl())
-	   	        	    {
-	   	            	autoFlag |= EKeyboardStyle12Key;
-		   	            }
-		   	        else
-	   		            {
-	   	    	        autoFlag &= ~EKeyboardStyle12Key;
-	   	        	    }
-		   	        break;
-		   	    case EPtiKeyboardHalfQwerty:
-	   		        if (iSettingsData->AutoWordCompl())
-	   	    	        {
-	   	        	    autoFlag |= EKeyboardStyleHalfQwerty;
-	   	            	}
-		   	        else
-		   	            {
-	   		            autoFlag &= ~EKeyboardStyleHalfQwerty;
-	   	    	        }
-		   	        break;
-		   	    case EPtiKeyboardQwerty4x12:
-	   		    case EPtiKeyboardQwerty4x10:
-	   	    	case EPtiKeyboardQwerty3x11:
-		   	    case EPtiKeyboardCustomQwerty:
-	   		        if (iSettingsData->AutoWordCompl())
-	   	    	        {
-	   	        	    autoFlag |= EKeyboardStyleQwerty;
-	   	            	}
-		   	        else
-		   	            {
-	   		            autoFlag &= ~EKeyboardStyleQwerty;
-	   	    	        }
-		   	        break;
-		   	    default:
-	   		        break;
-	   	    	}
-
-		    if(iSettingsList->DeviceHasMultipleKeyboards())
-	    	    {
-	        	iAknFepRepository->Set(KAknFepAutoCompleteFlag, iSettingsData->AWCBitmask());
-		        }
-		    else
-	    	    {
-	        	iAknFepRepository->Set(KAknFepAutoCompleteFlag, autoFlag);            
-		        }
-      		}
-        else if(ETypingCorrectionLevel == iSettingsList->ListBox()->CurrentItemIndex())
-        	{
-        	iAknFepRepository->Set(KAknFepTypingCorrectionLevel, iSettingsData->TypingCorrection());
-        	}
-        else if(ENumberCandidate  == iSettingsList->ListBox()->CurrentItemIndex())
-        	{
-        	iAknFepRepository->Set(KAknFepNumberCandidateFlag, iSettingsData->NumberCandidates());	
-        	}
-        else if(EPrimaryCandidate == iSettingsList->ListBox()->CurrentItemIndex())
-        	{
-        	iAknFepRepository->Set(KAknFepPrimaryCandidateFlag, iSettingsData->PrimaryCandidate());	
-        	}
-        }
-    }
-
-
-void CAknFepPredictiveSettingDialog::EditItemL(TBool aCalledFromMenu)
-	{
-	TInt prevSettings = CurrentSettings();
-	
-	// Set the flag as we are currently editing the settings item
-	iSettingItemInEditingState = ETrue;
-
-	iSettingsList->EditCurrentItemL(aCalledFromMenu);
-	if(iSettingItemInEditingState == EFalse)
-	    {
-	    User::Leave(KErrNone);
-	    }
-	LaunchPredictiveSettingOffQueryIfNecessaryL(prevSettings);
-	SaveCurrentSettingsDataL();
-
-	//Reset the flag as the current item edit is over
-	iSettingItemInEditingState = EFalse;	
-	}
-
-void CAknFepPredictiveSettingDialog::LaunchPredictiveSettingOffQueryIfNecessaryL(TInt prevSettings)
-	{
-	if(iPredictiveSettingOffQueryNotShown)
-		{
-   		if(iAknFepRepository)
-   			{
-   			iAknFepRepository->Get(KAknFepPredTxtFlagExtension,iPredictiveTextFlag);
-   			}
-   		TInt keyboardLayout = 0;
-       	RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout);
-       	TPtiKeyboardType layout = (TPtiKeyboardType)keyboardLayout;   		
-       	TBool QueryNeeded = EFalse;
-		if(iSettingsList->DeviceHasMultipleKeyboards())
-			{
-			TInt activateITIForKbd = 0;
-       		if(EAutoWordCompletion == iSettingsList->ListBox()->CurrentItemIndex() && 
-       			iSettingsData->AWCBitmask() != prevSettings & 0xF)
-       			{
-       			// if AWC is ON and Prev.Settings of AWC is not ON and ITI is OFF
-       			if((iSettingsData->AWCBitmask() & EKeyboardStyle12Key) && 
-       			   ((prevSettings & 0xF) & EKeyboardStyle12Key)!=1 &&
-       			   (iPredictiveTextFlag & EKeyboardStyle12Key) == 0)
-       				{
-       				QueryNeeded = ETrue;
-       				activateITIForKbd |= EKeyboardStyle12Key ;
-       				if(layout == EPtiKeyboard12Key)
-       					iPredictiveSettingOffQueryNotShown = EFalse;
-       				}
-       			// if AWC is ON and Prev.Settings of AWC is not ON and ITI is OFF		
-       			if((iSettingsData->AWCBitmask() & EKeyboardStyleQwerty) && 
-       			   ((prevSettings & 0xF) & EKeyboardStyleQwerty)!=2 &&
-       			   (iPredictiveTextFlag & EKeyboardStyleQwerty) == 0)
-       				{
-       				QueryNeeded = ETrue;
-       				activateITIForKbd |= EKeyboardStyleQwerty ;
-       				if(layout == EKeyboardStyleQwerty)
-       					iPredictiveSettingOffQueryNotShown = EFalse;
-       				}
-       			if((iSettingsData->AWCBitmask() & EKeyboardStyleHalfQwerty) && 
-       			   ((prevSettings & 0xF) & EKeyboardStyleHalfQwerty)!=4 &&
-       			   (iPredictiveTextFlag & EKeyboardStyleHalfQwerty) == 0)
-       				{
-       				QueryNeeded = ETrue;
-       				activateITIForKbd |= EKeyboardStyleHalfQwerty ;
-       				if(layout == EKeyboardStyleHalfQwerty)
-       					iPredictiveSettingOffQueryNotShown = EFalse;
-       				}
-       			}
-       		// if Prev.Setting of TypingCorrection != Curr.Settng of TypingCorrection and
-       		// Current TypingCorrection != OFF and ITI is OFF	
-       		else if(iSettingsData->iTypingCorrection != ((prevSettings >> 4)&0xF) &&
-					ETypingCorrectionLevel == iSettingsList->ListBox()->CurrentItemIndex() && 
-			        0 != iSettingsData->TypingCorrection() &&
-			        (iPredictiveTextFlag & EKeyboardStyleQwerty) == 0)
-				{
-				QueryNeeded = ETrue;
-				iPredictiveSettingOffQueryNotShown = EFalse;
-				activateITIForKbd |= EKeyboardStyleQwerty ;
-				}
-			// if Prev.Setting of NumberCandidate != Curr.Settng of NumberCandidate and
-       		// Current NumberCandidate is ON and ITI is OFF		
-       		else if(iSettingsData->iNumberCandidates != ((prevSettings >> 8)&0xF) &&
-       				ENumberCandidate == iSettingsList->ListBox()->CurrentItemIndex() && 
-			        1 == iSettingsData->NumberCandidates() &&
-			        (iPredictiveTextFlag & EKeyboardStyleQwerty) == 0)
-       			{
-       			QueryNeeded = ETrue;
-       			iPredictiveSettingOffQueryNotShown = EFalse;
-       			activateITIForKbd |= EKeyboardStyleQwerty ;
-       			}
-			
-			if(QueryNeeded)
-				{
-				CAknQueryDialog* dlg = CAknQueryDialog::NewL();
-				if(dlg->ExecuteLD(iConfirmationQueryResId))
-					{
-				    if(activateITIForKbd & EKeyboardStyle12Key)
-				    	{
-				    	iPredictiveTextFlag |= EKeyboardStyle12Key;
-				    	}
-		       	    	
-		       	    if(activateITIForKbd & EKeyboardStyleQwerty)
-		       	    	{
-		       	    	iPredictiveTextFlag |= EKeyboardStyleQwerty;
-		       	    	}
-						if(activateITIForKbd & EKeyboardStyleHalfQwerty)
-		       	    	{
-		       	    	iPredictiveTextFlag |= EKeyboardStyleHalfQwerty;
-		       	    	} 	
-		       	    }
-				}
-			}
-		else
-			{
-			TInt predFlag = 0;
-			iAknFepRepository->Get(KAknFepPredTxtFlagExtension, predFlag);
-			TInt autoFlag = 0;
-       		iAknFepRepository->Get(KAknFepAutoCompleteFlag, autoFlag);
-
-	       	switch(layout)
-    	   	    {
-       		    case EPtiKeyboardNone:
-       	    	    break;
-       	    	case EPtiKeyboard12Key:
-       	    		autoFlag = ((autoFlag & EPtiKeyboard12Key)!=0);
-	       	    	// if ITI is ON for QWERTY then iPredictiveTextFlag = 2; In that case we have to find out the ITI state for ITU-T
-    	   	        if (!( iPredictiveTextFlag & EKeyboardStyle12Key ))
-       		            {
-       	    	        predFlag |= EKeyboardStyle12Key;
-       	        	    }
-       	    		
-       	    		break;
-       	    	case EPtiKeyboardHalfQwerty:
-       	    		autoFlag = ((autoFlag & EKeyboardStyleHalfQwerty)!=0);
-    	   	        if (!(iPredictiveTextFlag & EKeyboardStyleHalfQwerty ))
-       		            {
-       	    	        predFlag |= EKeyboardStyleHalfQwerty;
-       	            	}
-       	    		break;
-				case EPtiKeyboardQwerty4x12:
-       	    	case EPtiKeyboardQwerty4x10:
-       	    	case EPtiKeyboardQwerty3x11:
-       	    	case EPtiKeyboardCustomQwerty:
-       	    		autoFlag = ((autoFlag & EKeyboardStyleQwerty)!=0);
-	       	    	// if ITI is ON for ITU-T then iPredictiveTextFlag = 1; In that case we have to find out the ITI state for QWERTY
-    	   	        if (!(iPredictiveTextFlag & EKeyboardStyleQwerty ))
-       		            {
-       	    	        predFlag |= EKeyboardStyleQwerty;
-       	            	}
-       	    		break;
-       	    	default:
-       	    		break;
-    	   	    }
-
-			
-			if (predFlag != iPredictiveTextFlag)
-			    {
-			    switch(iSettingsList->ListBox()->CurrentItemIndex())
-			    	{
-			    	case EAutoWordCompletion:
-			    		if(iSettingsData->iAutoWordCompl != autoFlag &&
-			    			1 == iSettingsData->AutoWordCompl())
-			    			{
-			    			QueryNeeded = ETrue;	
-			    			}
-			    		break;
-			    	case ETypingCorrectionLevel:
-			    		if(iSettingsData->iTypingCorrection != ((prevSettings >> 4)&0xF) && 
-			    			0 != iSettingsData->TypingCorrection())
-			    			{
-			    			QueryNeeded = ETrue;
-			    			}
-			    		break;
-			    	case ENumberCandidate:
-			    		if(iSettingsData->iNumberCandidates != ((prevSettings >> 8)&0xF) && 
-			    			0 != iSettingsData->NumberCandidates())
-			    			{
-			    			QueryNeeded = ETrue;
-			    			}
-			    		break;
-			    	}
-				
-				if(QueryNeeded)
-					{
-					CAknQueryDialog* dlg = CAknQueryDialog::NewL();
-					if(dlg->ExecuteLD(iConfirmationQueryResId))
-						iPredictiveTextFlag = predFlag;
-
-					iPredictiveSettingOffQueryNotShown = EFalse;	
-					}
-				}
-			}
-		if(iAknFepRepository && QueryNeeded)
-			{
-			iAknFepRepository->Set(KAknFepPredTxtFlagExtension,iPredictiveTextFlag);
-       		iAknFepRepository->Set(KAknFepPredTxtFlag, iPredictiveTextFlag != 0); // For backwards compatibility							
-			}						
-		}
-	}
-TInt CAknFepPredictiveSettingDialog::CurrentSettings()
-	{
-	TInt settings = 0;
-	//settings are the values of first 16 bits
-	//	settings & 0xF = iAWCBitmask
-	//	(settings >> 4) & 0xF = iNumberCandidates
-	//	(settings >> 8) & 0xF = iTypingCorrection
-	//	(settings >> 12) & 0xF = iPrimaryCandidate
-	settings = (iSettingsData->iPrimaryCandidate << 12) |
-				(iSettingsData->iNumberCandidates << 8) |
-				(iSettingsData->iTypingCorrection << 4) |
-				(iSettingsData->AWCBitmask());
-	return settings;				
-	}
-
-// This part of code for error fixing multiple layout.
-void CAknFepPredictiveSettingDialog::HandleResourceChange(TInt aType)
-	{
-	
-    CAknDialog::HandleResourceChange(aType);
- 
-    // Check for keyboard layout change
-    // If layout is changed, load the setting information based on 
-    // Layout.
-    if(aType==KEikDynamicLayoutVariantSwitch)
-        {
-    
-    	// Read the Predictive setting
-         if(iAknFepRepository)
-        	{
-        	iAknFepRepository->Get(KAknFepPredTxtFlagExtension, iPredictiveTextFlag);
-        	}
-   
-   		// Adjust predictive flag after layout switch
-        TInt keyboardLayout = EPtiKeyboardNone;
-        RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout);
-	//settings page not to be retained on change of keyboard layout for Touch Input.
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-        if (iOriginalKeyboardLayout != keyboardLayout)
-            {
-            if(iSettingItemInEditingState)
-            	{
-            	// If we are currently editing the settings item then generate a cancel event
-            	// and start the scheduler so as to close the settings page 
-            	// when the blocking call completes. 
-            	RWsSession& wsSession = CEikonEnv::Static()->WsSession();
-            	TKeyEvent escapeEvent = {EKeyEscape, EStdKeyEscape, 0, 0};
-            	TRAP_IGNORE(CEikonEnv::Static()->SimulateKeyEventL(escapeEvent, EEventKey));
-            	wsSession.Flush();
-            	iItemCloseEventCheck->Start( TCallBack(EventCheckCallback, this) );
-            	}
-            else
-	            {
-    	        // In case the current settings item is not in editing state then directly 
-    	        // close the settings page.
-            	TRAP_IGNORE(TryExitL(EAknSoftkeyBack));	
-    	        }
-            return;
-            }
-#endif //__ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-     	switch(keyboardLayout)
-   	    	{
-	   	    case EPtiKeyboard12Key:
-	   	    	// Dictionary is ON for ITU-T
-	   	    	iPredictiveTextFlag	&= EKeyboardStyle12Key;
-	   	    	break;
-	   	    case EPtiKeyboardQwerty4x12:
-	   	    case EPtiKeyboardQwerty4x10:
-	   	    case EPtiKeyboardQwerty3x11:
-	   	    case EPtiKeyboardHalfQwerty:
-	   	    case EPtiKeyboardCustomQwerty:
-	   	    	// 	// Dictionary is ON for QWERTY
-	   	    	iPredictiveTextFlag &= EKeyboardStyleQwerty;
-	   	    case EPtiKeyboardNone:
-	   	    default:
-	   	        break;
-   	        }
-        TRAP_IGNORE(SetTitlePaneL());
-        }    
-	}
-
-TInt CAknFepPredictiveSettingDialog::EventCheckCallback(TAny* aObj)
-	{
-    TRAP_IGNORE(static_cast<CAknFepPredictiveSettingDialog*>(aObj)->AttemptToExitL());
-    return KErrNone;	
-	}
-	
-void CAknFepPredictiveSettingDialog::AttemptToExitL()
-	{
-	if(iItemCloseEventCheck->IsActive())
-		{
-		iItemCloseEventCheck->Cancel();	
-		}
-	// iSettingItemInEditingState sets before the blocking call of editing item state and 
-	// gets reset after the blocking call.
-    if (!iSettingItemInEditingState)
-    	{
-    	// In case we are here, then we need to close the settings item because of layout change
-    	TRAP_IGNORE(TryExitL(EAknSoftkeyBack));	
-    	}
-    else
-    	{
-    	// Because of priority we hit the scheduler first and then the blocking call gets
-    	// executed. To handle such a scenario, restart the scheduler.
-    	iItemCloseEventCheck->Start( TCallBack(EventCheckCallback, this) );	
-    	}
-	}
-	
-void CAknFepPredictiveSettingDialog::PrepareStatusPaneL()
-    {
-    CCoeEnv* coeEnv = CCoeEnv::Static();
-    CAknAppUi* appUi = static_cast<CAknAppUi*>(coeEnv->AppUi());
-    CEikStatusPane* statusPane = appUi->StatusPane();
-    
-    iTitlePane = static_cast<CAknTitlePane*>( statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
-    
-    const TDesC* appTitle = iTitlePane->Text();
-    iLastTitle = appTitle->AllocL();
-    CleanupStack::PushL(iLastTitle);
-    
-    iStatusTitle = StringLoader::LoadLC( iTitlePaneResId,coeEnv);
-    SetTitlePaneL();
-    CleanupStack::Pop(iStatusTitle);
-    CleanupStack::Pop(iLastTitle);
-    
-    iNaviPane = static_cast<CAknNavigationControlContainer*>(statusPane->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
-    
-    if(iNaviPane)
-        {
-        // Create a new tab Groub for Settings Page and push it on the Navigation Pane
-        // This is done so as to avoid previous page Tab Group to be used
-        iNaviDecoratedTabGroup = iNaviPane->CreateTabGroupL();
-        if(iNaviDecoratedTabGroup)
-            {
-            // Tab Group visibility is set to false
-            iNaviDecoratedTabGroup->MakeVisible(EFalse);
-            iNaviPane->PushL(*iNaviDecoratedTabGroup);
-            }
-        } 
-    }
-
-void CAknFepPredictiveSettingDialog::SetTitlePaneL()
-    {
-    iTitlePane->SetTextL( *iStatusTitle );
-    }
-
-void CAknFepPredictiveSettingDialog::RestoreStatusPaneL()
-    {
-    iTitlePane->SetTextL( *iLastTitle );
-    
-    if(iNaviPane && iNaviDecoratedTabGroup)
-        {
-        // Pop the Tab Group created for the Settings page
-        iNaviPane->Pop();
-        delete iNaviDecoratedTabGroup;
-        iNaviDecoratedTabGroup = NULL;
-        }    
-    }
-
-void CAknFepPredictiveSettingDialog::HandlePointerEventL(const TPointerEvent& aPointerEvent)
-    {
-    if ( aPointerEvent.iType == TPointerEvent::EDrag )
-        {
-        iSettingsList->HandlePointerEventL(aPointerEvent);
-        }
-    else
-        {
-        CAknDialog::HandlePointerEventL(aPointerEvent);
-        }
-    }
-
-/**
- *From MEikCommandObserver
- */
-void CAknFepPredictiveSettingDialog::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane) 
-    {
-    if ( iAvkonAppUi->IsSingleClickCompatible() )
-        {
-        if ( R_PREDICTIVESETTINGDIALOG_MENU == aResourceId )
-            {
-            aMenuPane->SetItemDimmed(EAknFepCmdPredSettingChange, ETrue);
-            }
-        } 
-    }