diff -r ebe688cedc25 -r 7fdbb852d323 email/imum/Utils/Src/ImumInSettingsDataCtrl.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/imum/Utils/Src/ImumInSettingsDataCtrl.cpp Wed Sep 01 12:31:54 2010 +0100 @@ -0,0 +1,298 @@ +/* +* 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 "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: ImumInSettingsDataCtrl.cpp +* +*/ + + +// INCLUDE FILES +#include +#include + +#include "ImumInSettingsDataCtrl.h" +#include "ImumInSettingsDataArray.h" + +// EXTERNAL DATA STRUCTURES +// EXTERNAL FUNCTION PROTOTYPES +// CONSTANTS +// MACROS +// LOCAL CONSTANTS AND MACROS +// MODULE DATA STRUCTURES +// LOCAL FUNCTION PROTOTYPES +// FORWARD DECLARATIONS + +// ============================ MEMBER FUNCTIONS =============================== + +// --------------------------------------------------------------------------- +// ImumInSettingsDataCtrl::IsText() +// --------------------------------------------------------------------------- +// +TBool ImumInSettingsDataCtrl::IsText( const TInt aAttributeType ) + { + return ( aAttributeType == ECmpNormal || aAttributeType == ECmpNormal8 ); + } + +// --------------------------------------------------------------------------- +// ImumInSettingsDataCtrl::IsNumber() +// --------------------------------------------------------------------------- +// +TBool ImumInSettingsDataCtrl::IsNumber( const TInt aAttributeType ) + { + return ( aAttributeType >= ECmpTInt8 && aAttributeType <= ECmpTInt64 ); + } + +// --------------------------------------------------------------------------- +// ImumInSettingsDataCtrl::MatchKey() +// --------------------------------------------------------------------------- +// +TInt ImumInSettingsDataCtrl::MatchKey( + const TUint aAttributeKey, + const TInt aRequiredKey ) + { + TInt error = TImumDaErrorCode::ENoError; + TInt type = GetKeyAttributeType( aAttributeKey ); + + // Requested key does not match with exisiting key, return error + if ( type != aRequiredKey ) + { + switch ( type ) + { + case ECmpNormal: + error = TImumDaErrorCode::ERequestedKeyIsTDesC; + break; + case ECmpNormal8: + error = TImumDaErrorCode::ERequestedKeyIsTDesC8; + break; + case ECmpTInt32: + error = TImumDaErrorCode::ERequestedKeyIsTInt; + break; + case ECmpTInt64: + error = TImumDaErrorCode::ERequestedKeyIsTInt64; + break; + case ECmpTUint32: + error = TImumDaErrorCode::ERequestedKeyIsTMsvId; + break; + default: + error = TImumDaErrorCode::ERequestedKeyIsUnknown; + break; + } + } + + // Panic, when key type is wrong + __ASSERT_DEBUG( !error, User::Panic( + KImumInSettingsDataArray, error ) ); + + return error; + } + +// --------------------------------------------------------------------------- +// ImumInSettingsDataCtrl::GetKeyAttributeType() +// --------------------------------------------------------------------------- +// +TInt ImumInSettingsDataCtrl::GetKeyAttributeType( + const TUint aAttributeKey ) + { + TInt type; + + switch ( aAttributeKey ) + { + // 16-bit text + case TImumDaSettings::EKeyEmailAddress: + case TImumDaSettings::EKeyServer: + case TImumDaSettings::EKeyMailboxName: + case TImumDaSettings::EKeyUserAlias: + case TImumDaSettings::EKeyReplyToAddress: + case TImumDaSettings::EKeySignature: + case TImumInSettings::EKeyAccessPointName: + case TImumInSettings::EKeyReceiptAddress: + type = ECmpNormal; + break; + + // 32-bit values + case TImumDaSettings::EKeyProtocol: + case TImumDaSettings::EKeyAccessPoint: + case TImumDaSettings::EKeyPort: + case TImumDaSettings::EKeySecurity: + case TImumDaSettings::EKeySendDelay: + case TImumDaSettings::EKeySendCopyToSelf: + case TImumDaSettings::EKeyIncludeSignature: + case TImumDaSettings::EKeyEmailAlert: + case TImumDaSettings::EKeyMailDeletion: + case TImumDaSettings::EKeyAPop: + case TImumDaSettings::EKeyAutoNotifications: + case TImumDaSettings::EKeyAutoRetrieval: + case TImumDaSettings::EKeyAutoRetrievalDays: + case TImumDaSettings::EKeyAutoRetrievalInterval: + case TImumInSettings::EKeyDownloadMaxEmailSize: + case TImumInSettings::EKeyHideMsgs: + case TImumInSettings::EKeyOpenHtmlMail: + case TImumInSettings::EKeySynchronise: + case TImumInSettings::EKeySubscribe: + case TImumInSettings::EKeyUpdatingSeenFlag: + case TImumInSettings::EKeySyncRate: + case TImumInSettings::EKeyFetchSize: + case TImumInSettings::EKeyImapIdle: + case TImumInSettings::EKeyImapIdleTimeout: + case TImumInSettings::EKeyBodyEncoding: + case TImumInSettings::EKeyAddVCardToEmail: + case TImumInSettings::EKeyRequestReceipts: + case TImumInSettings::EKeySMTPAuth: + case TImumInSettings::EKeyInboxLoginDetails: + case TImumInSettings::EKeyToCcIncludeLimit: + case TImumInSettings::EKeyDisconnectedMode: + case TImumInSettings::EKeyAutoSendOnConnect: + case TImumInSettings::EKeyDeleteEmailsWhenDisconnecting: + case TImumInSettings::EKeyAcknowledgeReceipts: + case TImumInSettings::EKeyTemporaryUsername: + case TImumInSettings::EKeyTemporaryPassword: + case TImumInSettings::EKeySettingsVersion: + case TImumInSettings::EKeyAllowEmptyEmailAddress: + case TImumInSettings::EKeyGenerateMailboxName: + case TImumInSettings::EKeyAccessPointType: + case TImumInSettings::EKeyInfoLastUpdateFailed: + case TImumInSettings::EKeyDownloadBufferWlan: + case TImumInSettings::EKeyDownloadBufferGprs: + case TImumInSettings::EKeyIsPredefinedMailbox: + case TImumInSettings::EKeyAoUpdateSuccessfulWithCurSettings: + type = ECmpTInt32; + break; + + // 8-bit text + case TImumDaSettings::EKeyUsername: + case TImumDaSettings::EKeyPassword: + case TImumInSettings::EKeyPathSeparator: + case TImumDaSettings::EImapFolderPath: + case TImumInSettings::EKeySearchString: + type = ECmpNormal8; + break; + + // 64-bit values + case TImumDaSettings::EKeyAutoRetrievalStartHour: + case TImumDaSettings::EKeyAutoRetrievalEndHour: + case TImumInSettings::EKeyInfoLastSuccessfulUpdate: + type = ECmpTInt64; + break; + + // 32-bit unsigned values + case TImumDaSettings::EKeyMailboxId: + case TImumDaSettings::EKeyInboxUpdateLimit: + case TImumDaSettings::EKeyFolderUpdateLimit: + case TImumInSettings::EKeyDownloadBodySize: + case TImumInSettings::EKeyDownloadAttachmentSize: + case TImumInSettings::EKeyDefaultMsgCharSet: + case TImumInSettings::EKeySyncFlags: + case TImumInSettings::EKeyDownloadFlags: + type = ECmpTUint32; + break; + + // Not too good if executing this part of the code... + default: + type = KErrNotFound; + break; + } + + return type; + } + +// --------------------------------------------------------------------------- +// ImumInSettingsDataCtrl::GetNextKey() +// --------------------------------------------------------------------------- +// +TBool ImumInSettingsDataCtrl::GetNextKey( + TUint& aKey, + const TBool& aIncludeCompulsory ) + { + TBool isLast = EFalse; + + do + { + switch ( aKey ) + { + case 0: + aKey = TImumDaSettings::EKeyMailboxId; + break; + + case TImumDaSettings::EKeyLastSetting: + aKey = TImumInSettings::EKeyAccessPointName; + break; + + case TImumInSettings::ELastInSettingsKey: + aKey = TImumDaSettings::EKeyMailboxName; + break; + + case TImumDaSettings::ELastPreference: + aKey = TImumInSettings::EKeySyncFlags; + break; + + case TImumInSettings::ELastInPreferenceKey: + aKey = TImumDaSettings::EKeyAutoNotifications; + break; + + case TImumDaSettings::ELastAuto: + aKey = TImumDaSettings::EKeyAPop; + break; + + case TImumDaSettings::ELastMisc: + aKey = TImumInSettings::EKeySearchString; + break; + + case TImumInSettings::ELastInMiscKey: + aKey = TImumInSettings::EKeyDisconnectedMode; + break; + + case TImumInSettings::ELastEmailKey: + aKey = TImumInSettings::EKeyTemporaryUsername; + break; + + case TImumInSettings::ELastControlKey: + isLast = ETrue; + break; + + default: + break; + } + } + while ( !aIncludeCompulsory && IsCompulsory( aKey ) ); + + return isLast; + } + +// --------------------------------------------------------------------------- +// ImumInSettingsDataCtrl::IsCompulsory() +// --------------------------------------------------------------------------- +// +TBool ImumInSettingsDataCtrl::IsCompulsory( TUint& aKey ) + { + switch ( aKey ) + { + case TImumDaSettings::EKeyProtocol: + case TImumDaSettings::EKeyEmailAddress: + case TImumDaSettings::EKeyMailboxName: + case TImumDaSettings::EKeyServer: + aKey++; + return ETrue; + + default: + break; + } + + return EFalse; + } + + + + + + +// End of File