emailservices/nmclientapi/src/nmapipopimapsettingsmanager.cpp
author hgs
Tue, 29 Jun 2010 17:12:28 +0300
changeset 48 10eaf342f539
parent 47 f83bd4ae1fe3
child 74 6c59112cfd31
permissions -rw-r--r--
201025_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
    18
#include "nmapiheaders.h"
47
hgs
parents:
diff changeset
    19
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
    20
47
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
static const int DefaultPopPort = 110;
hgs
parents:
diff changeset
    24
static const int DefaultImapPort = 993;
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
using namespace EmailClientApi;
hgs
parents:
diff changeset
    27
    
hgs
parents:
diff changeset
    28
NmApiPopImapSettingsManager::NmApiPopImapSettingsManager()
hgs
parents:
diff changeset
    29
{    
hgs
parents:
diff changeset
    30
}
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
NmApiPopImapSettingsManager::~NmApiPopImapSettingsManager()
hgs
parents:
diff changeset
    33
{   
hgs
parents:
diff changeset
    34
}
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
bool NmApiPopImapSettingsManager::populateDefaults(const QString &mailboxType, NmApiMailboxSettingsData &data)
hgs
parents:
diff changeset
    37
{
hgs
parents:
diff changeset
    38
    bool ret = false;
hgs
parents:
diff changeset
    39
    
hgs
parents:
diff changeset
    40
    QT_TRY {
hgs
parents:
diff changeset
    41
        if (mailboxType==NmApiMailboxTypePop) {
hgs
parents:
diff changeset
    42
            populatePopDefs(data);
hgs
parents:
diff changeset
    43
            ret = true;
hgs
parents:
diff changeset
    44
        }
hgs
parents:
diff changeset
    45
        else if (mailboxType==NmApiMailboxTypeImap) {
hgs
parents:
diff changeset
    46
            populateImapDefs(data);
hgs
parents:
diff changeset
    47
            ret = true;
hgs
parents:
diff changeset
    48
        }
hgs
parents:
diff changeset
    49
        else {
hgs
parents:
diff changeset
    50
            ret = false;
hgs
parents:
diff changeset
    51
        }
hgs
parents:
diff changeset
    52
    }
hgs
parents:
diff changeset
    53
    QT_CATCH(...){
hgs
parents:
diff changeset
    54
        ret = false;
hgs
parents:
diff changeset
    55
    }
hgs
parents:
diff changeset
    56
    
hgs
parents:
diff changeset
    57
    return ret;
hgs
parents:
diff changeset
    58
}
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
void NmApiPopImapSettingsManager::populateImapDefs(NmApiMailboxSettingsData &data)
hgs
parents:
diff changeset
    61
{
hgs
parents:
diff changeset
    62
    QScopedPointer<CImImap4Settings> imapSettings(new CImImap4Settings());
hgs
parents:
diff changeset
    63
    
hgs
parents:
diff changeset
    64
    QScopedPointer<CImIAPPreferences> iapPref;
hgs
parents:
diff changeset
    65
    QT_TRAP_THROWING(iapPref.reset(CImIAPPreferences::NewLC());
hgs
parents:
diff changeset
    66
            CleanupStack::Pop(iapPref.data()));  
hgs
parents:
diff changeset
    67
        
hgs
parents:
diff changeset
    68
    QScopedPointer<CEmailAccounts> mailAccounts;
hgs
parents:
diff changeset
    69
    QT_TRAP_THROWING(mailAccounts.reset(CEmailAccounts::NewL()));
hgs
parents:
diff changeset
    70
        
hgs
parents:
diff changeset
    71
    QT_TRAP_THROWING( mailAccounts->PopulateDefaultImapSettingsL(*imapSettings,*iapPref));
hgs
parents:
diff changeset
    72
    
hgs
parents:
diff changeset
    73
    data.setValue(IncomingLoginName, 
hgs
parents:
diff changeset
    74
                           XQConversions::s60Desc8ToQString(imapSettings->LoginName()));
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
    data.setValue(IncomingPassword, 
hgs
parents:
diff changeset
    77
                           XQConversions::s60Desc8ToQString(imapSettings->Password()));
hgs
parents:
diff changeset
    78
       
hgs
parents:
diff changeset
    79
    data.setValue(IncomingMailServer, 
hgs
parents:
diff changeset
    80
                           XQConversions::s60DescToQString(imapSettings->ServerAddress()));
hgs
parents:
diff changeset
    81
         
hgs
parents:
diff changeset
    82
   if (imapSettings->Port()) {
hgs
parents:
diff changeset
    83
       data.setValue(IncomingPort, imapSettings->Port());
hgs
parents:
diff changeset
    84
       }
hgs
parents:
diff changeset
    85
   else {
hgs
parents:
diff changeset
    86
       data.setValue(IncomingPort, DefaultImapPort);
hgs
parents:
diff changeset
    87
   }
hgs
parents:
diff changeset
    88
   
hgs
parents:
diff changeset
    89
   data.setValue(OutgoingSecureSockets, imapSettings->SecureSockets());
hgs
parents:
diff changeset
    90
   data.setValue(OutgoingSSLWrapper, imapSettings->SSLWrapper());  
hgs
parents:
diff changeset
    91
}
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
void NmApiPopImapSettingsManager::populatePopDefs(NmApiMailboxSettingsData &data)
hgs
parents:
diff changeset
    94
{
hgs
parents:
diff changeset
    95
    QScopedPointer<CImPop3Settings> popSettings(new CImPop3Settings());
hgs
parents:
diff changeset
    96
   
hgs
parents:
diff changeset
    97
    QScopedPointer<CImIAPPreferences> iapPref;
hgs
parents:
diff changeset
    98
    QT_TRAP_THROWING(iapPref.reset(CImIAPPreferences::NewLC());
hgs
parents:
diff changeset
    99
        CleanupStack::Pop(iapPref.data()));
hgs
parents:
diff changeset
   100
 
hgs
parents:
diff changeset
   101
    QScopedPointer<CEmailAccounts> mailAccounts;
hgs
parents:
diff changeset
   102
    QT_TRAP_THROWING(mailAccounts.reset(CEmailAccounts::NewL()));
hgs
parents:
diff changeset
   103
    
hgs
parents:
diff changeset
   104
    QT_TRAP_THROWING( mailAccounts->PopulateDefaultPopSettingsL(*popSettings,*iapPref));
hgs
parents:
diff changeset
   105
    
hgs
parents:
diff changeset
   106
    data.setValue(IncomingLoginName, 
hgs
parents:
diff changeset
   107
                        XQConversions::s60Desc8ToQString(popSettings->LoginName()));
hgs
parents:
diff changeset
   108
   
hgs
parents:
diff changeset
   109
    data.setValue(IncomingPassword, 
hgs
parents:
diff changeset
   110
                        XQConversions::s60Desc8ToQString(popSettings->Password()));
hgs
parents:
diff changeset
   111
     
hgs
parents:
diff changeset
   112
    data.setValue(IncomingMailServer, 
hgs
parents:
diff changeset
   113
                        XQConversions::s60DescToQString(popSettings->ServerAddress()));
hgs
parents:
diff changeset
   114
    
hgs
parents:
diff changeset
   115
    if (popSettings->Port()) {
hgs
parents:
diff changeset
   116
        data.setValue(IncomingPort, popSettings->Port());
hgs
parents:
diff changeset
   117
        }
hgs
parents:
diff changeset
   118
    else {
hgs
parents:
diff changeset
   119
        data.setValue(IncomingPort, DefaultPopPort);
hgs
parents:
diff changeset
   120
    }
hgs
parents:
diff changeset
   121
    
hgs
parents:
diff changeset
   122
    data.setValue(OutgoingSecureSockets, popSettings->SecureSockets());
hgs
parents:
diff changeset
   123
    data.setValue(OutgoingSSLWrapper, popSettings->SSLWrapper());
hgs
parents:
diff changeset
   124
}
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126