--- /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" ), ¶mVal ) );
+ 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