--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email/imum/Utils/Src/ImumInSettingsDataCtrl.cpp Thu Dec 17 08:44:11 2009 +0200
@@ -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 <e32base.h>
+#include <SendUiConsts.h>
+
+#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