browserui/browser/BrowserAppSrc/BrowserPreferences.cpp
changeset 0 84ad3b177aa3
child 10 57d5b8e231c4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/browserui/browser/BrowserAppSrc/BrowserPreferences.cpp	Mon Mar 30 12:49:49 2009 +0300
@@ -0,0 +1,2242 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: 
+*     It manages WmlBrowser's preferences
+*
+*
+*/
+
+
+
+// INCLUDE FILES
+#include <s32stor.h>
+#include <eikappui.h>
+#include <eikapp.h>
+#include <eikenv.h>
+
+#include <ApSettingsHandlerUi.h>
+
+#include <ApEngineConsts.h>
+#include <aputils.h>
+#include <ApDataHandler.h>
+#include <ApDataHandler.h>
+#include <ApAccessPointItem.h>
+#include <ApSelect.h>
+#include <ApListItem.h>
+#include <ApListItemList.h>
+#include <VpnAPEngine.h>
+#include <VpnApItem.h>
+#include <aknutils.h>
+
+#include <COEMAIN.H>
+#include <FeatMgr.h>
+#include <BrCtlDefs.h>
+
+#include "CommsModel.h"
+#include "ApiProvider.h"
+#include "BrowserApplication.h"
+#include "BrowserPreferences.h"
+#include "Browser.hrh"
+#include "BrowserUiVariant.hrh"
+#include <bldvariant.hrh>
+#include "commonconstants.h"
+#include "BrowserAppUi.h"
+#include "BrowserOverriddenSettings.h"
+#include "SettingsContainer.h"  // for TEncoding
+#include "BrowserUtil.h" // for Util::AllocateUrlWithSchemeL
+#include "logger.h"
+
+#include "CmApplicationSettingsUi.h"
+#include <cmmanager.h>
+#include <cmdestination.h>
+
+// CONSTANTS
+
+//Shared data values for Full Screen setting
+const TInt KBrowserFullScreenSettingDataSoftkeysOff			 = 0; //full screen
+const TInt KBrowserFullScreenSettingDataSoftkeysOn			 = 1; //softkeys displayed
+
+//Shared data values for Adaptive Bookmarks setting
+const TInt KBrowserAdaptiveBookmarksSettingDataOn            = 0;
+const TInt KBrowserAdaptiveBookmarksSettingDataHideFolder    = 1;
+const TInt KBrowserAdaptiveBookmarksSettingDataOff           = 2;
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::ConstructL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::ConstructL( TBrowserOverriddenSettings* aSettings )
+    {
+    LOG_ENTERFN("CBrowserPreferences::ConstructL");
+    iObservers = new ( ELeave ) CArrayPtrFlat< MPreferencesObserver >( 1 );
+    iCommsModel.ApDb().AddObserverL( this );
+    	
+	iApDH = CApDataHandler::NewLC( iCommsModel.CommsDb() );
+	CleanupStack::Pop();
+	
+    iVpnEngine = CVpnApEngine::NewLC( &(iCommsModel.CommsDb()) );
+    CleanupStack::Pop();	
+	
+ 	CRepository* repository = CRepository::NewL( KCRUidBrowserUiLV );
+
+    if ( repository->Get( 
+         KBrowserUiCommonFlags, iEngineLocalFeaturesBitmask ) != KErrNone )
+        {
+        // in case of problems, assume everything is off
+        iEngineLocalFeaturesBitmask = 0;
+        } 
+    if ( repository->Get( 
+        KBrowserUiCommonFlags, iUiLocalFeaturesBitmask ) != KErrNone )
+        {
+        // in case of problems, assume everything is off
+        iUiLocalFeaturesBitmask = 0;
+        } 
+    if ( repository->Get( 
+        KBrowserUiCdmaFlags, iCdmaUiLocalFeaturesBitmask ) != KErrNone )
+        {
+        // in case of problems, assume everything is off
+        iCdmaUiLocalFeaturesBitmask = 0;
+        } 
+
+    delete repository;
+
+    iRepository = CRepository::NewL( KCRUidBrowser );
+
+    iEmbeddedMode = ApiProvider().IsEmbeddedModeOn(); // EFalse;
+    if( iEmbeddedMode )
+        {
+        // embedded mode doesn't allow multiple windows feature
+        iUiLocalFeaturesBitmask &= ~KBrowserMultipleWindows;
+        }
+    iOverriden = EFalse;
+
+    SetIntValueL( KBrowserConfirmedDTMFOnce, EFalse );
+
+    //Read ini values to local variables.
+    TRAP_IGNORE( RestoreSettingsL() );
+    
+    // and overwrite some of them if needed
+    if ( aSettings )
+        {
+        SetOverriddenSettingsL( aSettings );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::EngineLocalFeatureSupported
+// ----------------------------------------------------------------------------
+//
+TBool CBrowserPreferences::EngineLocalFeatureSupported( const TInt aFeature ) const
+    {
+LOG_ENTERFN("CBrowserPreferences::EngineLocalFeatureSupported");
+BROWSER_LOG( ( _L( "EnginLocalFeatureSupported returns %d" ),
+        (iEngineLocalFeaturesBitmask & aFeature) ) );
+    return (iEngineLocalFeaturesBitmask & aFeature);    
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::UiLocalFeatureSupported
+// ----------------------------------------------------------------------------
+//
+TBool CBrowserPreferences::UiLocalFeatureSupported( const TInt aFeature ) const
+    {
+LOG_ENTERFN("CBrowserPreferences::UiLocalFeatureSupported");
+BROWSER_LOG( ( _L( "UiLocalFeatureSupported returns %d" ),
+        (iUiLocalFeaturesBitmask & aFeature) ) );
+    return (iUiLocalFeaturesBitmask & aFeature);
+    }
+
+
+
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::NewLC
+// ----------------------------------------------------------------------------
+//
+CBrowserPreferences* CBrowserPreferences::NewLC
+    ( MCommsModel& aCommsModel, MApiProvider& aApiProvider , TBrowserOverriddenSettings* aSettings)
+	{
+LOG_ENTERFN("CBrowserPreferences::NewLC");
+	CBrowserPreferences* result;
+	result = new ( ELeave ) CBrowserPreferences( aCommsModel, aApiProvider );
+	CleanupStack::PushL( result );
+	result->ConstructL( aSettings );	
+	return result;
+	}
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::NewL
+// ----------------------------------------------------------------------------
+//
+CBrowserPreferences* CBrowserPreferences::NewL
+	( MCommsModel& aCommsModel, MApiProvider& aApiProvider, TBrowserOverriddenSettings* aSettings )
+	{
+LOG_ENTERFN("CBrowserPreferences::NewL");
+	CBrowserPreferences* result;
+	result = CBrowserPreferences::NewLC( aCommsModel, aApiProvider, aSettings );
+	CleanupStack::Pop();
+	return result;	
+	}
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::CBrowserPreferences
+// ----------------------------------------------------------------------------
+//
+CBrowserPreferences::CBrowserPreferences( MCommsModel& aCommsModel,
+                                            MApiProvider& aApiProvider) : 
+    iApiProvider( aApiProvider ),
+    iCommsModel( aCommsModel ),
+    iEmbeddedMode( EFalse )
+    {
+    LOG_ENTERFN("CBrowserPreferences::CBrowserPreferences");
+    iAllPreferences.iCookies = EWmlSettingsCookieAllow;
+    iAllPreferences.iHttpSecurityWarnings = ETrue;
+    iAllPreferences.iDownloadsOpen = ETrue;    
+    iAllPreferences.iConnDialogs = ETrue;
+    iAllPreferences.iHomePgURL = NULL;
+    iAllPreferences.iSearchPgURL = NULL;
+    iAllPreferences.iQueryOnExit = EFalse;
+    iAllPreferences.iSendReferrer = EFalse;
+    iAllPreferences.iAssocVpn = KWmlNoDefaultAccessPoint;
+    iAllPreferences.iDefaultAccessPoint = KWmlNoDefaultAccessPoint;
+    iAllPreferences.iDefaultSnapId = KWmlNoDefaultSnapId;
+    iAllPreferences.iDefaultAPDetails = NULL;
+    iAllPreferences.iShortCutFuncHomePg = NULL;
+    iAllPreferences.iShortCutFuncBkMark = NULL;
+    iAllPreferences.iShortCutFuncFindKeyWord = NULL;
+    iAllPreferences.iShortCutFuncPrePage = NULL;
+    iAllPreferences.iShortCutFuncSwitchWin = NULL;
+    iAllPreferences.iShortCutFuncMiniImage = NULL;
+    iAllPreferences.iShortCutFuncFullScreen = NULL;
+    iAllPreferences.iShortCutFuncGoAddr = NULL;
+    iAllPreferences.iShortCutFuncZoomIn = NULL;
+    iAllPreferences.iShortCutFuncZoomOut = NULL;
+    iAllPreferences.iShortCutFuncZoomMode = NULL;
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::~CBrowserPreferences
+// ----------------------------------------------------------------------------
+//
+CBrowserPreferences::~CBrowserPreferences()
+    {
+    LOG_ENTERFN("CBrowserPreferences::~CBrowserPreferences");
+    delete iObservers;
+    delete iApDH;
+    delete iVpnEngine;
+    delete iVpnItem;
+    iCommsModel.ApDb().RemoveObserver( this );
+    delete iSelfDownloadContentTypes;
+    iSelfDownloadContentTypes = 0;
+
+    // All Settings struct - for observers
+    delete iAllPreferences.iSearchPgURL;
+    iAllPreferences.iSearchPgURL = NULL;
+    delete iAllPreferences.iHomePgURL;
+    iAllPreferences.iHomePgURL = NULL;
+	delete iAllPreferences.iDefaultAPDetails;
+    delete iRepository;
+
+    // For short cut functions
+    delete iAllPreferences.iShortCutFuncHomePg;
+    iAllPreferences.iShortCutFuncHomePg = NULL; 
+
+    delete iAllPreferences.iShortCutFuncBkMark;
+    iAllPreferences.iShortCutFuncBkMark = NULL; 
+
+    delete iAllPreferences.iShortCutFuncFindKeyWord;
+    iAllPreferences.iShortCutFuncFindKeyWord = NULL; 
+
+    delete iAllPreferences.iShortCutFuncPrePage;
+    iAllPreferences.iShortCutFuncPrePage = NULL; 
+
+    delete iAllPreferences.iShortCutFuncSwitchWin;
+    iAllPreferences.iShortCutFuncSwitchWin = NULL; 
+
+    delete iAllPreferences.iShortCutFuncMiniImage;
+    iAllPreferences.iShortCutFuncMiniImage = NULL; 
+
+    delete iAllPreferences.iShortCutFuncFullScreen;
+    iAllPreferences.iShortCutFuncFullScreen = NULL; 
+
+    delete iAllPreferences.iShortCutFuncGoAddr;
+    iAllPreferences.iShortCutFuncGoAddr = NULL; 
+
+    delete iAllPreferences.iShortCutFuncZoomIn;
+    iAllPreferences.iShortCutFuncZoomIn = NULL; 
+
+    delete iAllPreferences.iShortCutFuncZoomOut;
+    iAllPreferences.iShortCutFuncZoomOut = NULL; 
+
+    delete iAllPreferences.iShortCutFuncZoomMode;
+    iAllPreferences.iShortCutFuncZoomMode = NULL; 
+
+    delete iAllPreferences.iUrlSuffixList;  
+    iAllPreferences.iUrlSuffixList = NULL;  
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::AddObserverL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::AddObserverL( MPreferencesObserver* anObserver )
+    {
+    LOG_ENTERFN("CBrowserPreferences::AddObserverL");
+    iObservers->AppendL( anObserver );
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::RemoveObserver
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::RemoveObserver( MPreferencesObserver* anObserver )
+    {
+    LOG_ENTERFN("CBrowserPreferences::RemoveObserver");
+    TInt i( 0 );
+    TInt count = iObservers->Count();
+    for ( i = 0; i < count; i++ )
+        {
+        if ( iObservers->At( i ) == anObserver )
+            {
+            iObservers->Delete( i );
+            break; 
+            }
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::NotifyObserversL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::NotifyObserversL( TPreferencesEvent aEvent,
+        TBrCtlDefs::TBrCtlSettings aSettingType = TBrCtlDefs::ESettingsUnknown )
+    {
+    LOG_ENTERFN("CBrowserPreferences::NotifyObserversL");
+    TInt i;
+    TInt count = iObservers->Count();
+    
+    // Passed struct of all preferences to observers
+    for ( i = 0; i < count; i++ )
+        {
+        iObservers->At( i )->HandlePreferencesChangeL( 
+                                                    aEvent, 
+                                                    iAllPreferences,
+                                                    aSettingType );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::RestoreSettingsL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::RestoreSettingsL()
+    {
+    LOG_ENTERFN("CBrowserPreferences::RestoreSettingsL");
+//
+//  READ USER VARIATED SETTINGS
+//
+    
+	//Read auto load content setting
+    iAllPreferences.iAutoLoadContent = GetIntValue( KBrowserNGImagesEnabled );
+    
+    //Read font size
+    iAllPreferences.iFontSize = GetIntValue( KBrowserNGFontSize );
+
+	// Read Allow Cookies setting
+    if ( GetIntValue( KBrowserNGCookiesEnabled ) )
+        {    
+        iAllPreferences.iCookies = EWmlSettingsCookieAllow;
+        }
+    else
+        {
+        iAllPreferences.iCookies = EWmlSettingsCookieReject;
+        }
+        
+    // Read ECMA Setting
+    if ( GetIntValue( KBrowserNGECMAScriptSupport ) )
+        {
+        iAllPreferences.iEcma = EWmlSettingsECMAEnable;
+        }
+    else
+        {
+        iAllPreferences.iEcma = EWmlSettingsECMADisable;
+        }
+
+    // Read IMEI Setting
+    if ( IMEI_NOTIFICATION )
+        {
+        if ( GetIntValue( KBrowserIMEINotification ) )
+            {
+            iAllPreferences.iIMEINotification = EWmlSettingsIMEIEnable;
+            }
+        else
+            {
+            iAllPreferences.iIMEINotification = EWmlSettingsIMEIDisable;
+            }
+        }
+    
+    TInt encoding;
+	iRepository->Get( KBrowserNGEncoding, encoding );
+    iAllPreferences.iEncoding = ( TUint32 ) encoding;
+    
+    iAllPreferences.iScriptLog = GetIntValue( KBrowserNGScriptLog ) ;
+
+    //Read Fullscreen setting
+    TInt value;
+    value = GetIntValue ( KBrowserNGFullScreen );
+
+    switch ( value )
+        {
+        case KBrowserFullScreenSettingDataSoftkeysOff:
+        	{
+            iAllPreferences.iFullScreen = EWmlSettingsFullScreenFullScreen;
+            break;
+        	}
+  
+        case KBrowserFullScreenSettingDataSoftkeysOn:
+            {
+            iAllPreferences.iFullScreen = EWmlSettingsFullScreenSoftkeysOnly;
+            break;
+            }
+ 
+        default:
+            {
+            break;
+            }
+        }
+
+	  iAllPreferences.iSendReferrer = (TBool) GetIntValue( KBrowserSendReferrerHeader );
+
+
+    //Read adaptive bookmarks setting
+    if (ADAPTIVEBOOKMARKS)
+        {
+        TInt adBm;
+        adBm = GetIntValue ( KBrowserNGAdaptiveBookmarks );
+
+        switch(adBm)
+            {
+            case (KBrowserAdaptiveBookmarksSettingDataOn):
+                {
+                iAllPreferences.iAdaptiveBookmarks = 
+                                            EWmlSettingsAdaptiveBookmarksOn;
+                break;
+                }
+            case (KBrowserAdaptiveBookmarksSettingDataHideFolder):
+                {
+                iAllPreferences.iAdaptiveBookmarks = 
+                                    EWmlSettingsAdaptiveBookmarksHideFolder;
+                break;
+                }
+            case (KBrowserAdaptiveBookmarksSettingDataOff):
+                {
+                iAllPreferences.iAdaptiveBookmarks = 
+                                    EWmlSettingsAdaptiveBookmarksOff;
+                break;
+                }
+            default:
+                {
+                break;
+                }
+            }        
+        }
+
+//  
+//  READ OPERATOR VARIATED SETTINGS
+//
+
+	iAllPreferences.iHomePgType = 
+                ( TWmlSettingsHomePage ) GetIntValue( KBrowserNGHomepageType );
+    iAllPreferences.iPageOverview = GetIntValue ( 
+		                                    KBrowserNGPageOverview );
+	iAllPreferences.iBackList = GetIntValue ( 
+		                                    KBrowserNGBackList );
+	iAllPreferences.iAutoRefresh = GetIntValue ( 
+		                                    KBrowserNGAutoRefresh );	
+    
+    if(PROGRESSIVE_DOWNLOAD)
+	    {
+    	iAllPreferences.iDownloadsOpen = GetIntValue ( KBrowserNGOpenDownloads );
+    	}
+    else
+    	{
+    	iAllPreferences.iDownloadsOpen = EFalse;
+    	}
+		                                    
+    //Read suppress security UI setting
+    iAllPreferences.iHTTPSecuritySupressed = GetIntValue ( KBrowserSecurityUI );
+
+    //Read show connection queries setting
+    iAllPreferences.iConnDialogs = GetIntValue( KBrowserConnectionDialogs );
+    
+    if( !iAllPreferences.iHTTPSecuritySupressed )
+        {
+        // Read HTTP security warnings setting
+	    iAllPreferences.iHttpSecurityWarnings = GetIntValue ( 
+		                            KBrowserNGShowSecurityWarnings );
+        }
+    else 
+        {
+        //we don't want to see sec warning because they're supressed
+        iAllPreferences.iHttpSecurityWarnings = EFalse;
+        }    
+    
+    // Media Volume uses different SD ini. Revert to Browser SD ini after use
+    iAllPreferences.iMediaVolume = GetIntValue( KBrowserMediaVolumeControl );
+    
+    // Pop up Blocking
+    iAllPreferences.iPopupBlocking = GetIntValue( KBrowserNGPopupBlocking );
+
+    // Form Data Saving
+    iAllPreferences.iFormDataSaving = (TWmlSettingsFormData) GetIntValue( KBrowserFormDataSaving );
+
+    // Access Keys
+    iAllPreferences.iAccessKeys = (TBool) GetIntValue( KBrowserNGAccessKeys );
+    
+    // The leaving functions come at the end
+
+    // Search Page
+    if ( iAllPreferences.iSearchPgURL )
+        {
+        delete iAllPreferences.iSearchPgURL;
+        iAllPreferences.iSearchPgURL = NULL;
+        }
+        
+    // Web reed feeds settings - begin
+    iAllPreferences.iAutomaticUpdatingAP = GetIntValue( KBrowserNGAutomaticUpdatingAccessPoint );
+    
+    iAllPreferences.iAutomaticUpdatingWhileRoaming = GetIntValue( KBrowserNGAutomaticUpdatingWhileRoaming );
+    
+    // Web reed feeds settings - end
+    if (CBrowserAppUi::Static()->OrientationCanBeChanged() )
+        {
+        iAllPreferences.iRotateDisplay = GetIntValue( KBrowserNGRotateDisplay );
+        }
+    else
+        {
+        iAllPreferences.iRotateDisplay = 0;
+        }
+      if ( iAllPreferences.iUrlSuffixList )
+        {
+        delete iAllPreferences.iUrlSuffixList;
+        iAllPreferences.iUrlSuffixList = NULL;
+        }
+    iAllPreferences.iUrlSuffixList = HBufC::NewL( KUrlSuffixMaxLength );
+    TPtr suffix = iAllPreferences.iUrlSuffixList->Des();
+    GetStringValueL( KBrowserUrlSuffix, KBrowserUrlSuffix, suffix );
+
+    // If something fails for an option, the default value will be used
+    TInt ap;
+
+    // Read Accesss point selection mode for advanced settings
+    const TInt selectionMode = GetIntValue( KBrowserAccessPointSelectionMode );
+    switch ( selectionMode )
+        {
+        case EBrowserCenRepApSelModeUserDefined: 
+             {
+             iAllPreferences.iAccessPointSelectionMode = EConnectionMethod; 
+             break; 
+             }
+        case EBrowserCenRepApSelModeAlwaysAsk: 
+             {
+             iAllPreferences.iAccessPointSelectionMode = EAlwaysAsk; 
+             break; 
+             }
+        case EBrowserCenRepApSelModeDestination:
+             {
+             iAllPreferences.iAccessPointSelectionMode = EDestination; 
+             break; 
+             }
+        default: // Default to Always ask.
+             {
+             iAllPreferences.iAccessPointSelectionMode = EAlwaysAsk; 
+             break; 
+             }
+        }
+ 
+    //we differentiate by connecting with a Snap or an access point                         
+   if (iAllPreferences.iAccessPointSelectionMode == EConnectionMethod)
+   	    {   		
+        //Read default AP setting
+        ap = GetIntValue( KBrowserDefaultAccessPoint );
+
+        SetDefaultAccessPointL( ap );   
+		}
+    else if (iAllPreferences.iAccessPointSelectionMode == EDestination)
+		{
+   		iAllPreferences.iDefaultSnapId = GetIntValue( KBrowserNGDefaultSnapId );
+		}
+	
+    // For Short Cut keys
+    if ( iAllPreferences.iShortCutFuncHomePg )
+        {
+        delete iAllPreferences.iShortCutFuncHomePg;
+        iAllPreferences.iShortCutFuncHomePg = NULL;
+        }
+    iAllPreferences.iShortCutFuncHomePg = HBufC::NewL( KShortCutFuncStringLength );
+    TPtr func1 = iAllPreferences.iShortCutFuncHomePg->Des();
+    GetStringValueL( KBrowserNGShortCutFuncHomePg, KShortCutFuncStringLength, func1 );
+
+    if ( iAllPreferences.iShortCutFuncBkMark )
+        {
+        delete iAllPreferences.iShortCutFuncBkMark;
+        iAllPreferences.iShortCutFuncBkMark = NULL;
+        }
+    iAllPreferences.iShortCutFuncBkMark = HBufC::NewL( KShortCutFuncStringLength );
+    TPtr func2 = iAllPreferences.iShortCutFuncBkMark->Des();
+    GetStringValueL( KBrowserNGShortCutFuncBkMark, KShortCutFuncStringLength, func2 );
+
+    if ( iAllPreferences.iShortCutFuncFindKeyWord )
+        {
+        delete iAllPreferences.iShortCutFuncFindKeyWord;
+        iAllPreferences.iShortCutFuncFindKeyWord = NULL;
+        }
+    iAllPreferences.iShortCutFuncFindKeyWord = HBufC::NewL( KShortCutFuncStringLength );
+    TPtr func3 = iAllPreferences.iShortCutFuncFindKeyWord->Des();
+    GetStringValueL( KBrowserNGShortCutFuncFindKeyWord, KShortCutFuncStringLength, func3 );
+
+    if ( iAllPreferences.iShortCutFuncPrePage )
+        {
+        delete iAllPreferences.iShortCutFuncPrePage;
+        iAllPreferences.iShortCutFuncPrePage = NULL;
+        }
+    iAllPreferences.iShortCutFuncPrePage = HBufC::NewL( KShortCutFuncStringLength );
+    TPtr func4 = iAllPreferences.iShortCutFuncPrePage->Des();
+    GetStringValueL( KBrowserNGShortCutFuncPrePage, KShortCutFuncStringLength, func4 );
+
+    if ( iAllPreferences.iShortCutFuncSwitchWin )
+        {
+        delete iAllPreferences.iShortCutFuncSwitchWin;
+        iAllPreferences.iShortCutFuncSwitchWin = NULL;
+        }
+    iAllPreferences.iShortCutFuncSwitchWin = HBufC::NewL( KShortCutFuncStringLength );
+    TPtr func5 = iAllPreferences.iShortCutFuncSwitchWin->Des();
+    GetStringValueL( KBrowserNGShortCutFuncSwitchWin, KShortCutFuncStringLength, func5 );
+
+    if ( iAllPreferences.iShortCutFuncMiniImage )
+        {
+        delete iAllPreferences.iShortCutFuncMiniImage;
+        iAllPreferences.iShortCutFuncMiniImage = NULL;
+        }
+    iAllPreferences.iShortCutFuncMiniImage = HBufC::NewL( KShortCutFuncStringLength );
+    TPtr func6 = iAllPreferences.iShortCutFuncMiniImage->Des();
+    GetStringValueL( KBrowserNGShortCutFuncMiniImage, KShortCutFuncStringLength, func6 );
+
+    if ( iAllPreferences.iShortCutFuncGoAddr )
+        {
+        delete iAllPreferences.iShortCutFuncGoAddr;
+        iAllPreferences.iShortCutFuncGoAddr = NULL;
+        }
+    iAllPreferences.iShortCutFuncGoAddr = HBufC::NewL( KShortCutFuncStringLength );
+    TPtr func7 = iAllPreferences.iShortCutFuncGoAddr->Des();
+    GetStringValueL( KBrowserNGShortCutFuncGoAddr, KShortCutFuncStringLength, func7 );
+
+    if ( iAllPreferences.iShortCutFuncZoomIn )
+        {
+        delete iAllPreferences.iShortCutFuncZoomIn;
+        iAllPreferences.iShortCutFuncZoomIn = NULL;
+        }
+    iAllPreferences.iShortCutFuncZoomIn = HBufC::NewL( KShortCutFuncStringLength );
+    TPtr func8 = iAllPreferences.iShortCutFuncZoomIn->Des();
+    GetStringValueL( KBrowserNGShortCutFuncZoomIn, KShortCutFuncStringLength, func8 );
+
+    if ( iAllPreferences.iShortCutFuncZoomOut )
+        {
+        delete iAllPreferences.iShortCutFuncZoomOut;
+        iAllPreferences.iShortCutFuncZoomOut = NULL;
+        }
+    iAllPreferences.iShortCutFuncZoomOut = HBufC::NewL( KShortCutFuncStringLength );
+    TPtr func9 = iAllPreferences.iShortCutFuncZoomOut->Des();
+    GetStringValueL( KBrowserNGShortCutFuncZoomOut, KShortCutFuncStringLength, func9 );
+
+/*
+    if ( iAllPreferences.iShortCutFuncZoomMode )
+        {
+        delete iAllPreferences.iShortCutFuncZoomMode;
+        iAllPreferences.iShortCutFuncZoomMode = NULL;
+        }
+    iAllPreferences.iShortCutFuncZoomMode = HBufC::NewL( KShortCutFuncStringLength );
+    TPtr func11 = iAllPreferences.iShortCutFuncZoomMode->Des();
+    GetStringValueL( KBrowserNGShortCutFuncZoomMode, KShortCutFuncStringLength, func11 );
+*/
+
+    if ( iAllPreferences.iShortCutFuncFullScreen )
+        {
+        delete iAllPreferences.iShortCutFuncFullScreen;
+        iAllPreferences.iShortCutFuncFullScreen = NULL;
+        }
+    iAllPreferences.iShortCutFuncFullScreen = HBufC::NewL( KShortCutFuncStringLength );
+    TPtr func10 = iAllPreferences.iShortCutFuncFullScreen->Des();
+    GetStringValueL( KBrowserNGShortCutFuncFullScreen, KShortCutFuncStringLength, func10 );
+
+    // For Configuring Toolbar Buttons
+    iAllPreferences.iToolbarOnOff       = GetIntValue( KToolbarOnOff );
+    
+    iAllPreferences.iToolbarButton1Cmd  = GetIntValue( KToolbarButton1Cmd );
+    iAllPreferences.iToolbarButton2Cmd  = GetIntValue( KToolbarButton2Cmd );
+    iAllPreferences.iToolbarButton3Cmd  = GetIntValue( KToolbarButton3Cmd );
+    iAllPreferences.iToolbarButton4Cmd  = GetIntValue( KToolbarButton4Cmd );
+    iAllPreferences.iToolbarButton5Cmd  = GetIntValue( KToolbarButton5Cmd );
+    iAllPreferences.iToolbarButton6Cmd  = GetIntValue( KToolbarButton6Cmd );
+    iAllPreferences.iToolbarButton7Cmd  = GetIntValue( KToolbarButton7Cmd );
+    
+    // For configuring Shortcut Keys 
+    iAllPreferences.iShortcutKeysForQwerty  = GetIntValue( KShortcutKeysForQwerty );
+	
+    iAllPreferences.iShortcutKey1Cmd  = GetIntValue( KShortcutKey1Cmd );
+    iAllPreferences.iShortcutKey2Cmd  = GetIntValue( KShortcutKey2Cmd );
+    iAllPreferences.iShortcutKey3Cmd  = GetIntValue( KShortcutKey3Cmd );
+    iAllPreferences.iShortcutKey4Cmd  = GetIntValue( KShortcutKey4Cmd );
+    iAllPreferences.iShortcutKey5Cmd  = GetIntValue( KShortcutKey5Cmd );
+    iAllPreferences.iShortcutKey6Cmd  = GetIntValue( KShortcutKey6Cmd );
+    iAllPreferences.iShortcutKey7Cmd  = GetIntValue( KShortcutKey7Cmd );
+    iAllPreferences.iShortcutKey8Cmd  = GetIntValue( KShortcutKey8Cmd );
+    iAllPreferences.iShortcutKey9Cmd  = GetIntValue( KShortcutKey9Cmd );
+    iAllPreferences.iShortcutKey0Cmd  = GetIntValue( KShortcutKey0Cmd );
+    iAllPreferences.iShortcutKeyStarCmd  = GetIntValue( KShortcutKeyStarCmd );
+    iAllPreferences.iShortcutKeyHashCmd  = GetIntValue( KShortcutKeyHashCmd );
+
+
+    iAllPreferences.iZoomLevelMin = GetIntValue( KBrowserNGZoomMin );
+    iAllPreferences.iZoomLevelMax = GetIntValue( KBrowserNGZoomMax );
+    iAllPreferences.iZoomLevelDefault = GetIntValue( KBrowserNGZoomDefault );
+            
+    iAllPreferences.iMaxRecentUrlsToShow = GetIntValue( KBrowserNGMaxRecentUrls );
+
+    }
+
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::AllPreferencesL
+// ----------------------------------------------------------------------------
+//
+const TPreferencesValues& CBrowserPreferences::AllPreferencesL()
+    {
+    return iAllPreferences;
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::VpnDataL
+// ----------------------------------------------------------------------------
+//
+TBool CBrowserPreferences::VpnDataL( TUint aDefaultAccessPoint, CVpnApItem& aVpnItem )
+    {
+    TBool ret( EFalse );
+    
+    if( iVpnEngine->IsVpnApL( aDefaultAccessPoint ) )
+        {
+        iVpnEngine->VpnDataL( aDefaultAccessPoint, aVpnItem );
+        ret = ETrue;
+        }
+    
+    return ret;
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetDefaultAccessPointL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetDefaultAccessPointL( TUint aDefaultAccessPoint, TUint aAssocVpn )
+	{
+    LOG_ENTERFN("CBrowserPreferences::SetDefaultAccessPointL");
+	BROWSER_LOG( ( _L( " aDefaultAccessPoint: %u" ), aDefaultAccessPoint ) );
+
+    //get the connection identifier based on the connection type
+    switch ( AccessPointSelectionMode() )
+        {
+        //get the destination identifyer based on the snap Id
+        case EDestination:
+        	{
+		    RCmManager        cmManager;
+		    cmManager.OpenL();
+
+            // if user-defined destination then check that destination still exists.
+            // if it doesn't, reset access point to always ask and homepage to blank access point home page.
+            TUint snapId = iAllPreferences.iDefaultSnapId;
+            if (snapId != KWmlNoDefaultSnapId)
+                {            
+    			TRAPD(err, RCmDestination dest = cmManager.DestinationL( snapId ));
+    			if (err != KErrNone)
+    			    {
+    			    aDefaultAccessPoint = KWmlNoDefaultAccessPoint;
+        	    	aAssocVpn = KWmlNoDefaultAccessPoint;
+        	    	
+        			SetAccessPointSelectionModeL(EAlwaysAsk );
+        			if (iAllPreferences.iHomePgType == EWmlSettingsHomePageAccessPoint)
+        				{
+        				HBufC* buf = HBufC::NewLC( KMaxHomePgUrlLength );  // cleanupstack
+            			TPtr ptr( buf->Des() );
+            			// read user defined home page from SD shouldn't get any error
+                        HomePageUrlL( ptr, ETrue );
+                        SetHomePageUrlL(ptr);
+            			CleanupStack::PopAndDestroy( buf );
+        				}
+    			    }
+                }
+ 		    cmManager.Close();
+
+			break;
+        	}
+        	
+        //if connecting with Iap Id
+        case EConnectionMethod:
+            {
+            // if user-defined access point then check that access point still exists.
+            // if it doesn't, reset access point to always ask and homepage to blank access point home page.
+  	        CApListItem* apItem = iCommsModel.AccessPointsL()->ItemForUid( aDefaultAccessPoint );
+	        if (apItem == NULL)
+		        {
+    	    	aDefaultAccessPoint = KWmlNoDefaultAccessPoint;
+    	    	aAssocVpn = KWmlNoDefaultAccessPoint;
+    	    	delete iAllPreferences.iDefaultAPDetails;
+    			iAllPreferences.iDefaultAPDetails = NULL;
+    			SetAccessPointSelectionModeL(EAlwaysAsk );
+    			if (iAllPreferences.iHomePgType == EWmlSettingsHomePageAccessPoint)
+    				{
+    				HBufC* buf = HBufC::NewLC( KMaxHomePgUrlLength );  // cleanupstack
+        			TPtr ptr( buf->Des() );
+        			// read user defined home page from SD shouldn't get any error
+                    HomePageUrlL( ptr, ETrue );
+                    SetHomePageUrlL(ptr);
+        			CleanupStack::PopAndDestroy( buf );
+    				}
+		    	}
+            
+		    break;	
+        	}
+
+        default:
+        	{
+        	break;	
+        	}
+        }
+    
+    	
+	// check web feeds for deleted access point
+	CApListItem* apItem = iCommsModel.AccessPointsL()->ItemForUid( iAllPreferences.iAutomaticUpdatingAP );
+	if (apItem == NULL)
+		{
+        SetAutomaticUpdatingApL( KWmlNoDefaultAccessPoint );
+		}
+    bool checkAPMode = ( (iAllPreferences.iAccessPointSelectionMode != EDestination) && (iAllPreferences.iAccessPointSelectionMode != EAlwaysAsk) );
+    if( ( KWmlNoDefaultAccessPoint != aDefaultAccessPoint ) && ( checkAPMode ) && iVpnEngine->IsVpnApL( aDefaultAccessPoint ) )
+        {
+        delete iVpnItem;
+        iVpnItem = NULL;
+
+        iVpnItem = CVpnApItem::NewLC();
+        CleanupStack::Pop();
+
+        iVpnEngine->VpnDataL( aDefaultAccessPoint, *iVpnItem );
+
+        TUint32 ass( aDefaultAccessPoint );
+        iVpnItem->ReadUint( EApVpnWapAccessPointID, ass );
+        aAssocVpn = ass;            
+
+        // get real WAP id
+        TUint32 ap( aDefaultAccessPoint );
+        iVpnItem->ReadUint( EApVpnRealWapID, ap );
+        aDefaultAccessPoint = ap;
+        }    
+    BROWSER_LOG( ( _L( "VPN OK" ) ) );
+	iAllPreferences.iDefaultAccessPoint = aDefaultAccessPoint;
+	iAllPreferences.iAssocVpn = aAssocVpn;
+	
+	CApAccessPointItem* api = CApAccessPointItem::NewLC();//maybe we can optimise this too	    
+	BROWSER_LOG( ( _L( "CApAccessPointItem OK" ) ) );
+    TInt err;
+    if  ( iOverridenSettings )
+        {
+        iCustomAp = iOverridenSettings->GetBrowserSetting( 
+                                                EBrowserOverSettingsCustomAp );
+        }
+    if ( ( iOverridenSettings ) &&  iCustomAp  )
+        {
+	    TRAP( err, iApDH->AccessPointDataL( iCustomAp, *api ) );
+        if ( err != KErrNone )
+            {
+            iCustomAp = 0;
+	        TRAP( err, iApDH->AccessPointDataL( iAllPreferences.iDefaultAccessPoint, *api ) );
+            }
+        }
+    else
+        {
+	    TRAP( err, iApDH->AccessPointDataL( 
+	                            iAllPreferences.iDefaultAccessPoint, *api ) );	        
+        }
+    BROWSER_LOG( ( _L( " AccessPointDataL: %d" ), err ) );
+	//Reset default AP pointer and delete the data
+	delete iAllPreferences.iDefaultAPDetails;
+	iAllPreferences.iDefaultAPDetails = NULL;
+	if  ( err != KErrNone )//Let's select the first 
+		{
+#ifndef __WINSCW__ //we will not select on Wins (defaultap will be assigned a uid indicating that there is 
+					//no default ap) but rather let ConnMan show the Conn Dlg
+		// The first valid access point has to be selected if exists
+		LOG_WRITE("WE SHOULD NOT BE HERE!!!");
+		CApSelect* apSelect = CApSelect::NewLC
+			(
+			iCommsModel.CommsDb(),
+			KEApIspTypeAll, //KEApIspTypeWAPMandatory, 
+			EApBearerTypeAll,
+			KEApSortNameAscending,
+			EIPv4 | EIPv6
+			);
+		if ( apSelect->MoveToFirst() )
+			{
+			iAllPreferences.iDefaultAccessPoint = apSelect->Uid();
+			iApDH->AccessPointDataL( iAllPreferences.iDefaultAccessPoint, *api );
+			iAllPreferences.iDefaultAPDetails = api;//save the ap details
+			}
+		else
+			{
+			iAllPreferences.iDefaultAccessPoint = KWmlNoDefaultAccessPoint;
+			iAllPreferences.iDefaultAPDetails = NULL;
+			delete api;
+			}
+		CleanupStack::PopAndDestroy(); // apSelect
+		CleanupStack::Pop();//api
+#else
+		iAllPreferences.iDefaultAccessPoint = KWmlNoDefaultAccessPoint;
+		iAllPreferences.iDefaultAPDetails = NULL;
+		CleanupStack::PopAndDestroy( api );		
+#endif//WINSCW	
+		}
+	else
+		{
+		iAllPreferences.iDefaultAPDetails = api;//store new default accesspoint details
+		CleanupStack::Pop( ); // api			
+		}
+	/*
+	* If VPN set VPN AP ID to default access point!
+	*/
+	if( KWmlNoDefaultAccessPoint != iAllPreferences.iAssocVpn )
+	    {
+	    iAllPreferences.iDefaultAccessPoint = iAllPreferences.iAssocVpn;
+	    }
+    if( !iEmbeddedMode )
+        {
+	    //Store ini value / gateway 
+        SetIntValueL ( KBrowserDefaultAccessPoint, 
+                                        iAllPreferences.iDefaultAccessPoint );
+        }
+    NotifyObserversL( EPreferencesItemChange );
+	    
+	//  LOG_LEAVEFN("CBrowserPreferences::SetDefaultAccessPointL");
+	}
+	
+	
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetDefaultSnapId: DestNetChange
+// ----------------------------------------------------------------------------
+//
+ void CBrowserPreferences::SetDefaultSnapId (TUint aSnapId)
+		{
+	
+		//storing the value of the default snap ID
+		iAllPreferences.iDefaultSnapId = aSnapId;
+		                                        
+        SetIntValueL ( KBrowserNGDefaultSnapId, 
+                                        iAllPreferences.iDefaultSnapId );
+	
+		}
+
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetAutoLoadContentL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetAutoLoadContentL( TInt aAutoLoadContent )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetAutoLoadContentL");
+    if ( aAutoLoadContent != iAllPreferences.iAutoLoadContent )
+        {
+        iAllPreferences.iAutoLoadContent = aAutoLoadContent;
+
+        // Store value in Shared Data and forward new setting to BrCtl
+        if( !iEmbeddedMode )
+            {
+            SetIntValueL( KBrowserNGImagesEnabled, 
+                                    iAllPreferences.iAutoLoadContent );
+            }
+        NotifyObserversL( EPreferencesItemChange, 
+                                        TBrCtlDefs::ESettingsAutoLoadImages );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetPageOverviewL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetPageOverviewL( TBool aPageOverview )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetPageOverviewL");
+    if ( aPageOverview != iAllPreferences.iPageOverview )
+        {
+        iAllPreferences.iPageOverview = aPageOverview;
+
+        // Store value in Shared Data and forward new setting to BrCtl
+        if( !iEmbeddedMode )
+            {
+            SetIntValueL( KBrowserNGPageOverview, 
+                                        iAllPreferences.iPageOverview );
+            }
+        NotifyObserversL( EPreferencesItemChange,
+                            TBrCtlDefs::ESettingsPageOverview);
+        }
+    }
+    
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetBackListL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetBackListL( TBool aBackList )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetBackListL");
+    if ( aBackList != iAllPreferences.iBackList )
+        {
+        iAllPreferences.iBackList = aBackList;
+
+        // Store value in Shared Data and forward new setting to BrCtl
+        if( !iEmbeddedMode )
+            {
+            SetIntValueL( KBrowserNGBackList, 
+                                        iAllPreferences.iBackList );
+            }
+        NotifyObserversL( EPreferencesItemChange,
+                            TBrCtlDefs::ESettingsBackList);
+        }
+    }
+    
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetAutoRefreshL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetAutoRefreshL( TBool aAutoRefresh )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetAutoRefreshL");
+    if ( aAutoRefresh != iAllPreferences.iAutoRefresh )
+        {
+        iAllPreferences.iAutoRefresh = aAutoRefresh;
+
+        // Store value in Shared Data and forward new setting to BrCtl
+        if( !iEmbeddedMode )
+            {
+            SetIntValueL( KBrowserNGAutoRefresh, 
+                                        iAllPreferences.iAutoRefresh );
+            }
+        NotifyObserversL( EPreferencesItemChange,
+                            TBrCtlDefs::ESettingsAutoRefresh);
+        }
+    }    
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetTextWrapL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetTextWrapL( TBool aTextWrap )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetTextWrapL");
+    if ( aTextWrap != iAllPreferences.iTextWrap )
+        {
+        iAllPreferences.iTextWrap = aTextWrap;
+
+        // Store value in Shared Data and forward new setting to BrCtl
+        if ( !iEmbeddedMode )
+            {
+            SetIntValueL( KBrowserTextWrapEnabled, iAllPreferences.iTextWrap );
+            }            
+        NotifyObserversL( EPreferencesItemChange, 
+                                        TBrCtlDefs::ESettingsTextWrapEnabled );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetFontSizeL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetFontSizeL( TInt aFontSize )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetFontSizeL");
+    if ( aFontSize != iAllPreferences.iFontSize )
+        {
+        iAllPreferences.iFontSize = aFontSize;
+
+        // Store value in Shared Data and forward new setting to BrCtl
+        if( !iEmbeddedMode )
+            {
+            SetIntValueL( KBrowserNGFontSize, iAllPreferences.iFontSize );
+            }
+        NotifyObserversL( EPreferencesItemChange, 
+                                            TBrCtlDefs::ESettingsFontSize );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetEncodingL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetEncodingL( TUint32 aEncoding )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetEncodingL");
+    if ( aEncoding != iAllPreferences.iEncoding )
+        {
+        iAllPreferences.iEncoding = aEncoding;
+    
+        // Store value in Shared Data and forward new setting to BrCtl
+        if( !iEmbeddedMode )
+            {
+            SetIntValueL ( KBrowserNGEncoding, 
+                            ( TInt ) iAllPreferences.iEncoding );
+            }
+        NotifyObserversL( EPreferencesItemChange, 
+                                        TBrCtlDefs::ESettingsCharacterset );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetScriptLogL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetScriptLogL( TUint32 aScriptLog )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetScriptLogL");
+    if ( aScriptLog != iAllPreferences.iScriptLog )
+        {
+        iAllPreferences.iScriptLog = aScriptLog;
+    
+        // Store value in Shared Data and forward new setting to BrCtl
+        if( !iEmbeddedMode )
+            {
+            TBool ret = SetIntValueL ( KBrowserNGScriptLog, 
+                            ( TInt ) iAllPreferences.iScriptLog );
+            }
+        NotifyObserversL( EPreferencesItemChange, 
+                                        TBrCtlDefs::ESettingsScriptLog );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetAdaptiveBookmarksL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetAdaptiveBookmarksL( 
+                            TWmlSettingsAdaptiveBookmarks aAdaptiveBookmarks )
+    {
+    LOG_ENTERFN( "CBrowserPreferences::SetAdaptiveBookmarksL" );
+    
+    if ( ADAPTIVEBOOKMARKS )
+        {
+        if ( aAdaptiveBookmarks != iAllPreferences.iAdaptiveBookmarks )
+            {
+            iAllPreferences.iAdaptiveBookmarks = aAdaptiveBookmarks;
+            
+            if( !iEmbeddedMode )
+                {
+
+            switch( iAllPreferences.iAdaptiveBookmarks )
+                {
+				case (EWmlSettingsAdaptiveBookmarksOn):
+                    {
+             
+       				SetIntValueL ( KBrowserNGAdaptiveBookmarks, 
+       					KBrowserAdaptiveBookmarksSettingDataOn );                   
+                    break;
+                    }
+                case (EWmlSettingsAdaptiveBookmarksHideFolder):
+                    {
+                    SetIntValueL ( KBrowserNGAdaptiveBookmarks, 
+                    	KBrowserAdaptiveBookmarksSettingDataHideFolder );
+                    break;
+                    }
+                case (EWmlSettingsAdaptiveBookmarksOff):
+                    {
+                    SetIntValueL ( KBrowserNGAdaptiveBookmarks, 
+                    	KBrowserAdaptiveBookmarksSettingDataOff );
+                    break;
+                    }
+                    default:
+                        {
+                        break;
+                        }
+                    }
+                }
+            NotifyObserversL( EPreferencesItemChange ); // Bookmarks View is interested
+            }
+        }
+    }
+
+// ---------------------------------------------------------
+// CBrowserPreferences::SetFullScreenL
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetFullScreenL( TWmlSettingsFullScreen aFullScreen )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetFullScreenL");
+  
+    if ( aFullScreen != iAllPreferences.iFullScreen )
+        {
+        iAllPreferences.iFullScreen = aFullScreen;
+        if( !iEmbeddedMode )
+            {
+            switch ( iAllPreferences.iFullScreen )
+                {
+				case EWmlSettingsFullScreenSoftkeysOnly:
+                    {
+                    SetIntValueL ( KBrowserNGFullScreen, 
+                    	KBrowserFullScreenSettingDataSoftkeysOn );
+                    break;
+                    }
+                case EWmlSettingsFullScreenFullScreen:
+                    {
+                    SetIntValueL ( KBrowserNGFullScreen, 
+                    	KBrowserFullScreenSettingDataSoftkeysOff );
+                    break;
+                    }
+                default:
+                    {
+                    break;
+                    }    
+                }
+            }
+        NotifyObserversL( EPreferencesItemChange ); // ContentView is interested
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetCookiesL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetCookiesL( TWmlSettingsCookies aCookies )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetCookiesL");
+    if ( aCookies != iAllPreferences.iCookies )
+        {
+        iAllPreferences.iCookies = aCookies;
+
+        // Store value in Shared Data and forward new setting to BrCtl
+        if( !iEmbeddedMode )
+            {
+            SetIntValueL( KBrowserNGCookiesEnabled, 
+                                            iAllPreferences.iCookies );
+            }
+        NotifyObserversL( EPreferencesItemChange, 
+                                        TBrCtlDefs::ESettingsCookiesEnabled );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetEcmaL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetEcmaL( TWmlSettingsECMA aEcma )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetEcmaL");
+    if ( aEcma != iAllPreferences.iEcma )
+        {
+        iAllPreferences.iEcma = aEcma;
+
+        // Store value in Shared Data and forward new setting to BrCtl
+        if( !iEmbeddedMode )
+            {
+			SetIntValueL( KBrowserNGECMAScriptSupport, 
+			                                    iAllPreferences.iEcma );
+            }
+        NotifyObserversL( EPreferencesItemChange, 
+                                    TBrCtlDefs::ESettingsECMAScriptEnabled );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetDownloadsOpen
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetDownloadsOpenL( TBool aOpen )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetDownloadsOpenL");
+    if ( aOpen != iAllPreferences.iDownloadsOpen )
+        {
+        iAllPreferences.iDownloadsOpen = aOpen;
+        if( !iEmbeddedMode )
+            {
+			SetIntValueL ( KBrowserNGOpenDownloads, 
+				        (TInt) iAllPreferences.iDownloadsOpen );
+            }
+        NotifyObserversL( EPreferencesItemChange, 
+                                    TBrCtlDefs::ESettingsAutoOpenDownloads );
+        }
+    }
+
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetHttpSecurityWarningsL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetHttpSecurityWarningsL( TBool aWarningsOn )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetHttpSecurityWarningsL");
+    if ( aWarningsOn != iAllPreferences.iHttpSecurityWarnings )
+        {
+        iAllPreferences.iHttpSecurityWarnings = aWarningsOn;
+        if( !iEmbeddedMode )
+            {
+			SetIntValueL ( KBrowserNGShowSecurityWarnings, 
+				        (TInt) iAllPreferences.iHttpSecurityWarnings );
+            }
+        NotifyObserversL( EPreferencesItemChange, 
+                                    TBrCtlDefs::ESettingsSecurityWarnings );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetIMEINotification
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetIMEINotificationL( 
+                                        TWmlSettingsIMEI aIMEINotification )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetIMEINotificationL");
+    if ( IMEI_NOTIFICATION )
+        {
+        if ( aIMEINotification != iAllPreferences.iIMEINotification )
+            {
+            iAllPreferences.iIMEINotification = aIMEINotification;
+            
+            // Store value in Shared Data and forward new setting to BrCtl
+            if( !iEmbeddedMode )
+                {
+                SetIntValueL( KBrowserIMEINotification, 
+                                        iAllPreferences.iIMEINotification );
+                }
+            NotifyObserversL( EPreferencesItemChange, 
+                                    TBrCtlDefs::ESettingsIMEINotifyEnabled );
+            }
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::HandleApDbEventL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::HandleApDbEventL( TEvent anEvent )
+    {
+    LOG_ENTERFN("CBrowserPreferences::HandleApDbEventL");
+    if ( anEvent == EDbChanged )//maybe somebody has modified the AP (not very likely though)
+        {
+        SetDefaultAccessPointL( iAllPreferences.iDefaultAccessPoint );
+        }    
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::HomePageUrlL
+// Get the user defined home page URL from shared data file.
+// ----------------------------------------------------------------------------
+//
+TInt CBrowserPreferences::HomePageUrlL( TDes& aUrl, TBool aForceLoadFromSD ) const
+    {
+LOG_ENTERFN("CBrowserPreferences::HomePageUrlL");
+    TInt homePgFound( KErrNotFound );
+    TBool homepage = UiLocalFeatureSupported( KBrowserUiHomePageSetting );
+    TWmlSettingsHomePage pgtype = HomePageType();
+BROWSER_LOG( ( _L( " pgtype: %d" ), pgtype ) );
+
+	if (homepage)
+		{
+		if (aForceLoadFromSD || (pgtype != EWmlSettingsHomePageAccessPoint))
+			{
+			// if we are requiring a force load from the shared data, or our homepage
+		    // is set to be something other than the access point's home page, get
+		    // the value of the home page from the shared data
+			homePgFound = GetStringValueL( KBrowserNGHomepageURL, KMaxHomePgUrlLength, aUrl );
+			}
+		else if ((iAllPreferences.iAccessPointSelectionMode == EConnectionMethod) && 
+				 (pgtype == EWmlSettingsHomePageAccessPoint))
+        {
+			// The user has a defined access point, and wants to use the access point's
+    		// home page
+BROWSER_LOG( ( _L( "HomePageUrl, Access Point" ) ) );
+        
+        TUint defaultAp = DefaultAccessPoint();
+        if ( defaultAp != KWmlNoDefaultAccessPoint ) // There is an access point defined
+            {
+            CApAccessPointItem* apItem = iAllPreferences.iDefaultAPDetails;
+            if ( apItem )
+                {
+                const HBufC* defaultHP = apItem->ReadConstLongTextL( EApWapStartPage );
+                if ( defaultHP->Length() )
+                    {
+                    aUrl.Zero();
+                    aUrl.Append( *defaultHP );
+                    homePgFound = KErrNone;
+                    }
+                }
+            else
+            	{
+BROWSER_LOG( ( _L( "HomePageUrl, Read from Central Repository" ) ) );
+            	homePgFound = GetStringValueL( KBrowserNGHomepageURL, KMaxHomePgUrlLength, aUrl );
+            	}
+            }
+        }
+        }
+BROWSER_LOG( ( _L( "CBrowserPreferences::HomePageUrlL returns %d" ), homePgFound ) );
+    return homePgFound;
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::HomePageFromIapL
+// Get the home page URL from belongs to the access point.
+// ----------------------------------------------------------------------------
+//
+TInt CBrowserPreferences::HomePageFromIapL( TDes& aUrl, TUint aIap ) const
+    {
+LOG_ENTERFN("CBrowserPreferences::HomePageFromIapL");
+    TInt homePgFound( KErrNotFound );
+
+    CApListItem* apItem = iCommsModel.AccessPointsL()->ItemForUid( aIap );
+    if ( apItem )
+        {
+        TPtrC defaultHP( apItem->StartPage() );
+        if ( defaultHP.Length() )
+            {
+            aUrl.Zero();
+            aUrl.Append( defaultHP );
+            homePgFound = KErrNone;
+            }
+        }
+BROWSER_LOG( ( _L( "CBrowserPreferences::HomePageFromIapL returns %d" ), homePgFound ) );
+    return homePgFound;
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SearchPageUrlL
+// Get the user defined search page URL from shared data file.
+// ----------------------------------------------------------------------------
+//
+TPtrC CBrowserPreferences::SearchPageUrlL()
+    {
+LOG_ENTERFN("CBrowserPreferences::SearchPageUrlL");    
+    TBool urlTooBig = EFalse;
+    TInt error = KErrTooBig;
+    TInt length = 512;
+
+    do
+        {
+        HBufC* temp = HBufC::NewL( length );
+        if ( iAllPreferences.iSearchPgURL )
+            {
+            delete iAllPreferences.iSearchPgURL;
+            iAllPreferences.iSearchPgURL = NULL;
+            }
+
+        iAllPreferences.iSearchPgURL = temp;
+        TPtr ptr = iAllPreferences.iSearchPgURL->Des();
+        // Here should handle the error variable, but its still not clear
+        // how big can a CenRep string be.( KMaxUnicodeStringLength )
+		error = iRepository->Get( KBrowserNGSearchPageURL, ptr);
+
+        if ( error == KErrTooBig )
+            {
+            if ( length >= KMaxSearchPgUrlLength )
+                {
+                urlTooBig = ETrue;
+                break;
+                }
+            else
+                length = length * 2;
+            }
+        } while ( error == KErrTooBig );
+
+    // If the URL exceeds the limit, return NULL.
+    if ( urlTooBig )
+        {
+        delete iAllPreferences.iSearchPgURL;
+        iAllPreferences.iSearchPgURL = NULL;
+        iAllPreferences.iSearchPgURL = KNullDesC().AllocL();
+        }
+
+    NotifyObserversL( EPreferencesItemChange );
+    
+#ifdef _DEBUG
+    TPtrC logString = *iAllPreferences.iSearchPgURL;
+    BROWSER_LOG( ( _L( "CBrowserPreferences::SearchPageUrlL returns %S" ), &logString ) );
+#endif // _DEBUG
+    return iAllPreferences.iSearchPgURL->Des();
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetPopupBlockingL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetPopupBlockingL( TBool aPopupBlocking )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetPopupBlockingL");
+    if ( aPopupBlocking != iAllPreferences.iPopupBlocking )
+        {
+        iAllPreferences.iPopupBlocking = aPopupBlocking;
+        SetIntValueL( KBrowserNGPopupBlocking, iAllPreferences.iPopupBlocking );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetFormDataSavingL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetFormDataSavingL( TWmlSettingsFormData aFormDataSaving )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetFormDataSavingL");
+    if ( aFormDataSaving != iAllPreferences.iFormDataSaving )
+        {
+        iAllPreferences.iFormDataSaving = aFormDataSaving;
+
+
+        // TO DO: Add to cenrep
+        SetIntValueL( KBrowserFormDataSaving, 
+                        iAllPreferences.iFormDataSaving );
+        }
+    NotifyObserversL( EPreferencesItemChange,
+                            TBrCtlDefs::ESettingsAutoFormFillEnabled );
+    }    
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::GetIntValue
+// ----------------------------------------------------------------------------
+//
+TInt CBrowserPreferences::GetIntValue( TUint32 aKey) const
+    {
+LOG_ENTERFN("CBrowserPreferences::GetIntValue");
+    TInt retVal = 0; 
+      
+	if ( iRepository )
+	   	{
+    	iRepository->Get(aKey, retVal);	
+    	}
+                
+BROWSER_LOG( ( _L( "CBrowserPreferences::GetIntValue returns %d" ), retVal ) );
+    return retVal;
+    }
+    									   
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetIntValueL
+// ----------------------------------------------------------------------------
+//
+TBool CBrowserPreferences::SetIntValueL ( TUint32 aKey, const TInt& aValue )
+    {
+LOG_ENTERFN("CBrowserPreferences::SetIntValueL");
+BROWSER_LOG( ( _L( "aValue: %d" ), aValue ) );
+    
+    // Log setting value BEFORE the change
+    #ifdef I__BROWSER_LOG_ENABLED
+        TInt preValue;
+    	iRepository->Get( aKey, preValue );
+        BROWSER_LOG( ( _L( "Prechange CenRep setting value: %d" ), preValue ) );
+    #endif // I__BROWSER_LOG_ENABLED
+    
+    TBool retVal=EFalse;
+	if ( iRepository && ( KErrNone == iRepository->Set( aKey, aValue ) ) )
+    	{
+    	retVal = ETrue;
+    	}	
+
+    // Log setting value AFTER the change
+    #ifdef I__BROWSER_LOG_ENABLED
+        TInt postValue;
+    	iRepository->Get( aKey, postValue );
+        BROWSER_LOG( ( _L( "Postchange CenRep setting value: %d" ), postValue ) );
+    #endif // I__BROWSER_LOG_ENABLED
+
+    BROWSER_LOG( ( _L( "CBrowserPreferences::SetIntValueL returns %d" ), retVal ) );
+    return retVal;
+    }	
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::GetStringValueL
+// ----------------------------------------------------------------------------
+//
+HBufC* CBrowserPreferences::GetStringValueL ( TUint32 aKey ) const
+    {
+LOG_ENTERFN("CBrowserPreferences::GetStringValueL(TUint32)");
+    HBufC* retVal = NULL;
+    TFileName value;
+    TInt err( KErrNotFound );
+
+	
+	if( iRepository )
+		{
+		err = iRepository->Get( aKey, value );
+		}
+
+    if ( err == KErrNone )
+       	{
+       	retVal = HBufC::NewL( value.Length() );
+       	TPtr ptr = retVal->Des();
+       	ptr.Copy ( value );
+       	}
+        
+    #ifdef _DEBUG
+        TPtrC logString = *retVal;
+        BROWSER_LOG( ( _L( "CBrowserPreferences::GetStringValueL returns %S" ), &logString ) );
+    #endif // _DEBUG
+    
+    return retVal;
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::GetStringValueL
+// ----------------------------------------------------------------------------
+//
+TInt CBrowserPreferences::GetStringValueL( 
+		TUint32 aKey, TInt aMaxBufSize, 
+		TDes& aBuf) const
+    {
+LOG_ENTERFN("CBrowserPreferences::GetStringValueL(TUint32,TInt,TDes&)");
+    // Not sure this works, but CRepository has no information about the return
+    // values of the methods. 
+    // So dont know if iRepository->Get returns with an errorid on error,therefore
+    // error = iRepository->Get( aKey, ptr ) may not work.
+    TInt length( 256 );
+    HBufC* value = HBufC::NewL( length );
+    TPtr ptr = value->Des();
+    TInt error;
+    
+	error = iRepository->Get( aKey, ptr );
+
+    for( length=length*2; (error==KErrTooBig) && (length<aMaxBufSize); length=length*2)
+        {
+        delete value;
+        value = HBufC::NewL( length );
+        ptr = value->Des();
+        
+		error = iRepository->Get( aKey, ptr );
+        }
+    if( error == KErrNone )
+        {
+        aBuf.Zero();
+        aBuf.Append( ptr );
+        }
+    delete value;
+    
+    BROWSER_LOG( ( _L( "CBrowserPreferences::GetStringValueL(TUint32,TInt,TDes&) returns %d" ),
+        error ) );
+    return error;
+    }
+
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetStringValueL
+// ----------------------------------------------------------------------------
+//
+TBool CBrowserPreferences::SetStringValueL( TUint32 aKey, const TDesC& aValue )
+    {
+LOG_ENTERFN("CBrowserPreferences::SetStringValueL");
+
+    // Log setting value BEFORE the change
+    #ifdef _DEBUG
+        TPtrC paramVal = aValue;
+        BROWSER_LOG( ( _L( "aValue %S" ), &paramVal ) );
+        HBufC* doNothing = HBufC::NewL( 512 );
+        TPtr preChange = doNothing->Des();
+    	iRepository->Get( aKey, preChange );	
+        BROWSER_LOG( ( _L( "Prechange CenRep setting value: %S" ), &preChange ) );
+        delete doNothing;
+    #endif // _DEBUG
+
+    TBool retVal=EFalse;
+	
+	if ( iRepository && ( KErrNone == iRepository->Set( aKey, aValue ) ) )
+    	{
+    	retVal = ETrue;
+    	}	
+    // Log setting value AFTER the change
+    #ifdef _DEBUG
+        HBufC* doNothing2 = HBufC::NewL( 512 );
+        TPtr postChange = doNothing2->Des();
+   		iRepository->Get( aKey, postChange );	
+        
+        BROWSER_LOG( ( _L( "Postchange CenRep setting value: %S" ), &postChange ) );
+        delete doNothing2;
+    #endif // _DEBUG
+    
+    BROWSER_LOG( ( _L( "CBrowserPreferences::SetStringValueL returns %d" ), retVal) );
+    return retVal;
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetOverridenSettingsL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetOverriddenSettingsL(TBrowserOverriddenSettings* aSettings)
+    {
+LOG_ENTERFN("CBrowserPreferences::SetOverriddenSettingsL");
+
+    if( aSettings != NULL )
+        {
+        TUint tempValue;
+        iOverriden = ETrue;
+        iOverridenSettings = aSettings;
+        
+        // Check overridden settings by looking at their default values
+        // (see how Launcher2 sets them in the OverriddenSettings constructor)
+        tempValue = iOverridenSettings->GetBrowserSetting( EBrowserOverSettingsCustomAp );
+        if( tempValue != 0 )
+            {
+            iAllPreferences.iAccessPointSelectionMode = EConnectionMethod;
+            iCustomAp = tempValue;
+          	SetDefaultAccessPointL( iCustomAp );
+            }
+        tempValue = iOverridenSettings->GetBrowserSetting( EBrowserOverSettingsAutoLoadImages );
+        if( tempValue != KMaxTUint )
+            {           
+            iAllPreferences.iAutoLoadContent = tempValue;
+            }
+
+        tempValue = iOverridenSettings->GetBrowserSetting( EBrowserOverSettingsFontSize );
+        if( tempValue != EBrowserOverFontSizeLevelUndefined )
+            {
+            iAllPreferences.iFontSize = tempValue;
+            }
+        tempValue = iOverridenSettings->GetBrowserSetting( EBrowserOverSettingsFullScreen );
+        switch( tempValue )
+            {
+            case KBrowserFullScreenSettingDataSoftkeysOff:
+                {
+                iAllPreferences.iFullScreen = EWmlSettingsFullScreenFullScreen;
+                break;
+                }
+            case KBrowserFullScreenSettingDataSoftkeysOn:
+            default:
+                {
+                iAllPreferences.iFullScreen = EWmlSettingsFullScreenSoftkeysOnly;
+                break;
+                }
+            }
+        }
+    return;
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetEmbeddedModeL(TBool aEmbeddedMode)
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetEmbeddedModeL(TBool aEmbeddedMode)
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetEmbeddedModeL");
+
+    iEmbeddedMode = aEmbeddedMode;
+    if( iEmbeddedMode /* && ApiProvider().StartedUp()*/ )
+        {
+        NotifyObserversL( EPreferencesItemChange, 
+                                            TBrCtlDefs::ESettingsEmbedded );
+        }
+    return;
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetMediaVolumeL( TInt aMediaVolume )
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetMediaVolumeL( TInt aMediaVolume )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetMediaVolumeL");
+
+    // Media Volume uses different SD ini. Revert to Browser SD ini after use
+    iAllPreferences.iMediaVolume = aMediaVolume;
+    SetIntValueL ( KBrowserMediaVolumeControl, iAllPreferences.iMediaVolume );
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetHomePageTypeL( TWmlSettingsHomePage aHomePageType )
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetHomePageTypeL( TWmlSettingsHomePage aHomePageType )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetHomePageTypeL");
+	SetIntValueL( KBrowserNGHomepageType, aHomePageType );
+    iAllPreferences.iHomePgType = aHomePageType;
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetHomePageUrlL( TDesC& aHomePageURL )
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetHomePageUrlL( const TDesC& aHomePageURL )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetHomePageUrlL");
+
+    if( aHomePageURL.Length() )
+        {
+        // Save the homepage with a scheme (default is http if not specified).
+        HBufC* temp = Util::AllocateUrlWithSchemeL( aHomePageURL ); 
+        delete iAllPreferences.iHomePgURL;
+        iAllPreferences.iHomePgURL = temp;
+        SetStringValueL( KBrowserNGHomepageURL, 
+                                        iAllPreferences.iHomePgURL->Des() );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetSearchPageUrlL( TDesC& aSearchPageURL )
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetSearchPageUrlL( const TDesC& aSearchPageURL )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetSearchPageUrlL");
+
+    // Save the searchpage with a scheme (default is http if not specified).
+    HBufC* temp = Util::AllocateUrlWithSchemeL( aSearchPageURL ); 
+    delete iAllPreferences.iSearchPgURL;
+    iAllPreferences.iSearchPgURL = temp;
+    SetStringValueL( KBrowserNGSearchPageURL, 
+	                            iAllPreferences.iSearchPgURL->Des() );
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::FlushSD()
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::FlushSD()
+    {
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::CustomAccessPointDefined()
+// ----------------------------------------------------------------------------
+//
+TBool CBrowserPreferences::CustomAccessPointDefined()
+    {
+LOG_ENTERFN("CBrowserPreferences::CustomAccessPointDefined");
+    TBool retval( iOverridenSettings && iCustomAp );
+    BROWSER_LOG( ( _L( "CBrowserPreferences::CustomAccessPointDefined returns %d" ),
+        (TInt)retval ) );
+    return retval;
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SelfDownloadContentTypesL
+// ----------------------------------------------------------------------------
+//
+TPtrC CBrowserPreferences::SelfDownloadContentTypesL()
+    {
+LOG_ENTERFN("CBrowserPreferences::SelfDownloadContentTypesL");
+
+    TInt error = KErrNone;
+    const TInt KLengthIncrement = 32; // 32 characters
+    TInt length = KLengthIncrement; // Initially KLengthIncrement
+
+    do
+        {
+        HBufC* temp = HBufC::NewL( length );
+        delete iSelfDownloadContentTypes;
+        iSelfDownloadContentTypes = temp;
+        TPtr ptr = iSelfDownloadContentTypes->Des();
+		error = iRepository->Get( KBrowserSelfDownloadContentTypes, ptr );
+
+        if ( error == KErrOverflow )
+            {
+            // Increase the size of the placeholder
+            length += KLengthIncrement;
+            }
+        } while ( error == KErrOverflow );
+
+    #ifdef _DEBUG
+        TPtrC logString = *iSelfDownloadContentTypes;
+        BROWSER_LOG( ( _L( "CBrowserPreferences::SelfDownloadContentTypesL returns %S" ),
+            &logString ) );
+    #endif // _DEBUG
+
+    return (*iSelfDownloadContentTypes);
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::AccessPointAlwaysAsk()
+// ----------------------------------------------------------------------------
+//
+TCmSettingSelectionMode CBrowserPreferences::AccessPointSelectionMode()
+    {
+LOG_ENTERFN("CBrowserPreferences::AccessPointSelectionMode");
+BROWSER_LOG( ( _L( "CBrowserPreferences::AccessPointSelectionMode returns %d" ),
+        iAllPreferences.iAccessPointSelectionMode ) );
+    return iAllPreferences.iAccessPointSelectionMode;
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetAccessPointSelectionModeL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetAccessPointSelectionModeL( 
+                TCmSettingSelectionMode aAccessPointSelectionMode )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetAccessPointSelectionModeL");
+
+	if ( aAccessPointSelectionMode != iAllPreferences.iAccessPointSelectionMode )
+		{
+		iAllPreferences.iAccessPointSelectionMode = aAccessPointSelectionMode;
+
+        switch ( aAccessPointSelectionMode )                              
+            {
+            case EAlwaysAsk:
+                {
+                SetIntValueL ( KBrowserAccessPointSelectionMode, EBrowserCenRepApSelModeAlwaysAsk ); 
+                break; 
+                }
+            case EDestination:
+                {
+                SetIntValueL ( KBrowserAccessPointSelectionMode, EBrowserCenRepApSelModeDestination ); 
+                break; 
+                }
+            case EConnectionMethod:
+                {
+                SetIntValueL ( KBrowserAccessPointSelectionMode, EBrowserCenRepApSelModeUserDefined ); 
+                break;
+                }
+            default:
+                {
+                SetIntValueL ( KBrowserAccessPointSelectionMode, EBrowserCenRepApSelModeAlwaysAsk ); 
+                break; 
+                }
+            }          
+		}  
+    }
+
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetAutomaticUpdatingApL
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetAutomaticUpdatingApL( TUint aSetting )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetAutomaticUpdatingApL");
+
+    iAllPreferences.iAutomaticUpdatingAP = aSetting;
+    SetIntValueL ( KBrowserNGAutomaticUpdatingAccessPoint, aSetting );
+    }
+
+
+void CBrowserPreferences::SetAutomaticUpdatingWhileRoamingL( TBool aAutoUpdateRoaming )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetAutomaticUpdatingWhileRoamingL");
+    if ( aAutoUpdateRoaming != iAllPreferences.iAutomaticUpdatingWhileRoaming )
+        {
+        iAllPreferences.iAutomaticUpdatingWhileRoaming = aAutoUpdateRoaming;
+        SetIntValueL( KBrowserNGAutomaticUpdatingWhileRoaming, 
+                                        iAllPreferences.iAutomaticUpdatingWhileRoaming );
+    	}
+    	
+    }
+
+
+   
+// ---------------------------------------------------------
+// CBrowserPreferences::SetToolbarOnOffL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetToolbarOnOffL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iToolbarOnOff )
+        {
+        iAllPreferences.iToolbarOnOff = aCommand;
+        SetIntValueL( KToolbarOnOff, iAllPreferences.iToolbarOnOff );
+        
+        NotifyObserversL( EPreferencesItemChange, 
+                          TBrCtlDefs::ESettingsToolbarOnOff );
+        }
+    }
+
+    
+    
+// ---------------------------------------------------------
+// CBrowserPreferences::SetToolbarButton1CmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetToolbarButton1CmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iToolbarButton1Cmd )
+        {
+        iAllPreferences.iToolbarButton1Cmd = aCommand;
+        SetIntValueL( KToolbarButton1Cmd, iAllPreferences.iToolbarButton1Cmd );
+        
+        NotifyObserversL( EPreferencesItemChange, 
+                          TBrCtlDefs::ESettingsToolbarButton1Cmd );
+        }
+    }
+
+
+// ---------------------------------------------------------
+// CBrowserPreferences::SetToolbarButton2CmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetToolbarButton2CmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iToolbarButton2Cmd )
+        {
+        iAllPreferences.iToolbarButton2Cmd = aCommand;
+        SetIntValueL( KToolbarButton2Cmd, iAllPreferences.iToolbarButton2Cmd );
+        
+        NotifyObserversL( EPreferencesItemChange, 
+                          TBrCtlDefs::ESettingsToolbarButton2Cmd );
+        }
+    }
+
+// ---------------------------------------------------------
+// CBrowserPreferences::SetToolbarButton3CmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetToolbarButton3CmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iToolbarButton3Cmd )
+        {
+        iAllPreferences.iToolbarButton3Cmd = aCommand;
+        SetIntValueL( KToolbarButton3Cmd, iAllPreferences.iToolbarButton3Cmd );
+        
+        NotifyObserversL( EPreferencesItemChange, 
+                          TBrCtlDefs::ESettingsToolbarButton3Cmd );
+        }
+    }
+
+// ---------------------------------------------------------
+// CBrowserPreferences::SetToolbarButton4CmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetToolbarButton4CmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iToolbarButton4Cmd )
+        {
+        iAllPreferences.iToolbarButton4Cmd = aCommand;
+        SetIntValueL( KToolbarButton4Cmd, iAllPreferences.iToolbarButton4Cmd );
+        
+        NotifyObserversL( EPreferencesItemChange, 
+                          TBrCtlDefs::ESettingsToolbarButton4Cmd );
+        }
+    }
+
+// ---------------------------------------------------------
+// CBrowserPreferences::SetToolbarButton5CmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetToolbarButton5CmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iToolbarButton5Cmd )
+        {
+        iAllPreferences.iToolbarButton5Cmd = aCommand;
+        SetIntValueL( KToolbarButton5Cmd, iAllPreferences.iToolbarButton5Cmd );
+        
+        NotifyObserversL( EPreferencesItemChange, 
+                          TBrCtlDefs::ESettingsToolbarButton5Cmd );
+        }
+    }
+
+// ---------------------------------------------------------
+// CBrowserPreferences::SetToolbarButton6CmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetToolbarButton6CmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iToolbarButton6Cmd )
+        {
+        iAllPreferences.iToolbarButton6Cmd = aCommand;
+        SetIntValueL( KToolbarButton6Cmd, iAllPreferences.iToolbarButton6Cmd );
+        
+        NotifyObserversL( EPreferencesItemChange, 
+                          TBrCtlDefs::ESettingsToolbarButton6Cmd );
+        }
+    }
+
+// ---------------------------------------------------------
+// CBrowserPreferences::SetToolbarButton7CmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetToolbarButton7CmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iToolbarButton7Cmd )
+        {
+        iAllPreferences.iToolbarButton7Cmd = aCommand;
+        SetIntValueL( KToolbarButton7Cmd, iAllPreferences.iToolbarButton7Cmd );
+        
+        NotifyObserversL( EPreferencesItemChange, 
+                          TBrCtlDefs::ESettingsToolbarButton7Cmd );
+        }
+    }
+
+// ---------------------------------------------------------
+// CBrowserPreferences::SetShortcutKey1CmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetShortcutKey1CmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iShortcutKey1Cmd )
+        {
+        iAllPreferences.iShortcutKey1Cmd = aCommand;
+        SetIntValueL( KShortcutKey1Cmd, iAllPreferences.iShortcutKey1Cmd );
+        }
+    }
+
+// ---------------------------------------------------------
+// CBrowserPreferences::SetShortcutKey2CmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetShortcutKey2CmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iShortcutKey2Cmd )
+        {
+        iAllPreferences.iShortcutKey2Cmd = aCommand;
+        SetIntValueL( KShortcutKey2Cmd, iAllPreferences.iShortcutKey2Cmd );
+        }
+    }
+    
+// ---------------------------------------------------------
+// CBrowserPreferences::SetShortcutKey3CmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetShortcutKey3CmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iShortcutKey3Cmd )
+        {
+        iAllPreferences.iShortcutKey3Cmd = aCommand;
+        SetIntValueL( KShortcutKey3Cmd, iAllPreferences.iShortcutKey3Cmd );
+        }
+    }
+
+// ---------------------------------------------------------
+// CBrowserPreferences::SetShortcutKey4CmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetShortcutKey4CmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iShortcutKey4Cmd )
+        {
+        iAllPreferences.iShortcutKey4Cmd = aCommand;
+        SetIntValueL( KShortcutKey4Cmd, iAllPreferences.iShortcutKey4Cmd );
+        }
+    }
+
+// ---------------------------------------------------------
+// CBrowserPreferences::SetShortcutKey5CmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetShortcutKey5CmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iShortcutKey5Cmd )
+        {
+        iAllPreferences.iShortcutKey5Cmd = aCommand;
+        SetIntValueL( KShortcutKey5Cmd, iAllPreferences.iShortcutKey5Cmd );
+        }
+    }
+
+// ---------------------------------------------------------
+// CBrowserPreferences::SetShortcutKey6CmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetShortcutKey6CmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iShortcutKey6Cmd )
+        {
+        iAllPreferences.iShortcutKey6Cmd = aCommand;
+        SetIntValueL( KShortcutKey6Cmd, iAllPreferences.iShortcutKey6Cmd );
+        }
+    }
+
+// ---------------------------------------------------------
+// CBrowserPreferences::SetShortcutKey7CmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetShortcutKey7CmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iShortcutKey7Cmd )
+        {
+        iAllPreferences.iShortcutKey7Cmd = aCommand;
+        SetIntValueL( KShortcutKey7Cmd, iAllPreferences.iShortcutKey7Cmd );
+        }
+    }
+
+// ---------------------------------------------------------
+// CBrowserPreferences::SetShortcutKey8CmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetShortcutKey8CmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iShortcutKey8Cmd )
+        {
+        iAllPreferences.iShortcutKey8Cmd = aCommand;
+        SetIntValueL( KShortcutKey8Cmd, iAllPreferences.iShortcutKey8Cmd );
+        }
+    }
+
+// ---------------------------------------------------------
+// CBrowserPreferences::SetShortcutKey9CmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetShortcutKey9CmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iShortcutKey9Cmd )
+        {
+        iAllPreferences.iShortcutKey9Cmd = aCommand;
+        SetIntValueL( KShortcutKey9Cmd, iAllPreferences.iShortcutKey9Cmd );
+        }
+    }
+
+// ---------------------------------------------------------
+// CBrowserPreferences::SetShortcutKey0CmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetShortcutKey0CmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iShortcutKey0Cmd )
+        {
+        iAllPreferences.iShortcutKey0Cmd = aCommand;
+        SetIntValueL( KShortcutKey0Cmd, iAllPreferences.iShortcutKey0Cmd );
+        }
+    }
+
+// ---------------------------------------------------------
+// CBrowserPreferences::SetShortcutKeyStarCmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetShortcutKeyStarCmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iShortcutKeyStarCmd )
+        {
+        iAllPreferences.iShortcutKeyStarCmd = aCommand;
+        SetIntValueL( KShortcutKeyStarCmd, iAllPreferences.iShortcutKeyStarCmd );
+        }
+    }
+
+// ---------------------------------------------------------
+// CBrowserPreferences::SetShortcutKeyHashCmdL()
+// ---------------------------------------------------------
+//
+void CBrowserPreferences::SetShortcutKeyHashCmdL(TInt aCommand)
+    {
+    if ( aCommand != iAllPreferences.iShortcutKeyHashCmd )
+        {
+        iAllPreferences.iShortcutKeyHashCmd = aCommand;
+        SetIntValueL( KShortcutKeyHashCmd, iAllPreferences.iShortcutKeyHashCmd );
+        }
+    }
+
+    
+// ----------------------------------------------------------------------------
+// CBrowserPreferences::SetURLSuffixList
+// ----------------------------------------------------------------------------
+//
+void CBrowserPreferences::SetURLSuffixList( HBufC* aSetting )
+    {
+    LOG_ENTERFN("CBrowserPreferences::SetUpdateHoursDefined");
+        
+    SetStringValueL ( KBrowserUrlSuffix, aSetting->Des() );    
+
+    TPtr ptr = iAllPreferences.iUrlSuffixList->Des();
+    ptr.Copy( aSetting->Des() );
+    }
+
+// End of File