emailservices/nmclientapi/src/nmapipopimapsettingsmanager.cpp
author hgs
Thu, 24 Jun 2010 14:32:18 +0300
changeset 47 f83bd4ae1fe3
child 48 10eaf342f539
permissions -rw-r--r--
201025
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
hgs
parents:
diff changeset
    18
#include "nmapipopimapsettingsmanager.h"
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#include <imapset.h>
hgs
parents:
diff changeset
    21
#include <pop3set.h>
hgs
parents:
diff changeset
    22
#include <iapprefs.h>
hgs
parents:
diff changeset
    23
#include <cemailaccounts.h>
hgs
parents:
diff changeset
    24
#include <xqconversions.h>
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
static const int DefaultPopPort = 110;
hgs
parents:
diff changeset
    28
static const int DefaultImapPort = 993;
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
using namespace EmailClientApi;
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
NmApiPopImapSettingsManager::~NmApiPopImapSettingsManager()
hgs
parents:
diff changeset
    37
{   
hgs
parents:
diff changeset
    38
}
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
bool NmApiPopImapSettingsManager::populateDefaults(const QString &mailboxType, NmApiMailboxSettingsData &data)
hgs
parents:
diff changeset
    41
{
hgs
parents:
diff changeset
    42
    bool ret = false;
hgs
parents:
diff changeset
    43
    
hgs
parents:
diff changeset
    44
    QT_TRY {
hgs
parents:
diff changeset
    45
        if (mailboxType==NmApiMailboxTypePop) {
hgs
parents:
diff changeset
    46
            populatePopDefs(data);
hgs
parents:
diff changeset
    47
            ret = true;
hgs
parents:
diff changeset
    48
        }
hgs
parents:
diff changeset
    49
        else if (mailboxType==NmApiMailboxTypeImap) {
hgs
parents:
diff changeset
    50
            populateImapDefs(data);
hgs
parents:
diff changeset
    51
            ret = true;
hgs
parents:
diff changeset
    52
        }
hgs
parents:
diff changeset
    53
        else {
hgs
parents:
diff changeset
    54
            ret = false;
hgs
parents:
diff changeset
    55
        }
hgs
parents:
diff changeset
    56
    }
hgs
parents:
diff changeset
    57
    QT_CATCH(...){
hgs
parents:
diff changeset
    58
        ret = false;
hgs
parents:
diff changeset
    59
    }
hgs
parents:
diff changeset
    60
    
hgs
parents:
diff changeset
    61
    return ret;
hgs
parents:
diff changeset
    62
}
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
void NmApiPopImapSettingsManager::populateImapDefs(NmApiMailboxSettingsData &data)
hgs
parents:
diff changeset
    65
{
hgs
parents:
diff changeset
    66
    QScopedPointer<CImImap4Settings> imapSettings(new CImImap4Settings());
hgs
parents:
diff changeset
    67
    
hgs
parents:
diff changeset
    68
    QScopedPointer<CImIAPPreferences> iapPref;
hgs
parents:
diff changeset
    69
    QT_TRAP_THROWING(iapPref.reset(CImIAPPreferences::NewLC());
hgs
parents:
diff changeset
    70
            CleanupStack::Pop(iapPref.data()));  
hgs
parents:
diff changeset
    71
        
hgs
parents:
diff changeset
    72
    QScopedPointer<CEmailAccounts> mailAccounts;
hgs
parents:
diff changeset
    73
    QT_TRAP_THROWING(mailAccounts.reset(CEmailAccounts::NewL()));
hgs
parents:
diff changeset
    74
        
hgs
parents:
diff changeset
    75
    QT_TRAP_THROWING( mailAccounts->PopulateDefaultImapSettingsL(*imapSettings,*iapPref));
hgs
parents:
diff changeset
    76
    
hgs
parents:
diff changeset
    77
    data.setValue(IncomingLoginName, 
hgs
parents:
diff changeset
    78
                           XQConversions::s60Desc8ToQString(imapSettings->LoginName()));
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
    data.setValue(IncomingPassword, 
hgs
parents:
diff changeset
    81
                           XQConversions::s60Desc8ToQString(imapSettings->Password()));
hgs
parents:
diff changeset
    82
       
hgs
parents:
diff changeset
    83
    data.setValue(IncomingMailServer, 
hgs
parents:
diff changeset
    84
                           XQConversions::s60DescToQString(imapSettings->ServerAddress()));
hgs
parents:
diff changeset
    85
         
hgs
parents:
diff changeset
    86
   if (imapSettings->Port()) {
hgs
parents:
diff changeset
    87
       data.setValue(IncomingPort, imapSettings->Port());
hgs
parents:
diff changeset
    88
       }
hgs
parents:
diff changeset
    89
   else {
hgs
parents:
diff changeset
    90
       data.setValue(IncomingPort, DefaultImapPort);
hgs
parents:
diff changeset
    91
   }
hgs
parents:
diff changeset
    92
   
hgs
parents:
diff changeset
    93
   data.setValue(OutgoingSecureSockets, imapSettings->SecureSockets());
hgs
parents:
diff changeset
    94
   data.setValue(OutgoingSSLWrapper, imapSettings->SSLWrapper());  
hgs
parents:
diff changeset
    95
}
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
void NmApiPopImapSettingsManager::populatePopDefs(NmApiMailboxSettingsData &data)
hgs
parents:
diff changeset
    98
{
hgs
parents:
diff changeset
    99
    QScopedPointer<CImPop3Settings> popSettings(new CImPop3Settings());
hgs
parents:
diff changeset
   100
   
hgs
parents:
diff changeset
   101
    QScopedPointer<CImIAPPreferences> iapPref;
hgs
parents:
diff changeset
   102
    QT_TRAP_THROWING(iapPref.reset(CImIAPPreferences::NewLC());
hgs
parents:
diff changeset
   103
        CleanupStack::Pop(iapPref.data()));
hgs
parents:
diff changeset
   104
 
hgs
parents:
diff changeset
   105
    QScopedPointer<CEmailAccounts> mailAccounts;
hgs
parents:
diff changeset
   106
    QT_TRAP_THROWING(mailAccounts.reset(CEmailAccounts::NewL()));
hgs
parents:
diff changeset
   107
    
hgs
parents:
diff changeset
   108
    QT_TRAP_THROWING( mailAccounts->PopulateDefaultPopSettingsL(*popSettings,*iapPref));
hgs
parents:
diff changeset
   109
    
hgs
parents:
diff changeset
   110
    data.setValue(IncomingLoginName, 
hgs
parents:
diff changeset
   111
                        XQConversions::s60Desc8ToQString(popSettings->LoginName()));
hgs
parents:
diff changeset
   112
   
hgs
parents:
diff changeset
   113
    data.setValue(IncomingPassword, 
hgs
parents:
diff changeset
   114
                        XQConversions::s60Desc8ToQString(popSettings->Password()));
hgs
parents:
diff changeset
   115
     
hgs
parents:
diff changeset
   116
    data.setValue(IncomingMailServer, 
hgs
parents:
diff changeset
   117
                        XQConversions::s60DescToQString(popSettings->ServerAddress()));
hgs
parents:
diff changeset
   118
    
hgs
parents:
diff changeset
   119
    if (popSettings->Port()) {
hgs
parents:
diff changeset
   120
        data.setValue(IncomingPort, popSettings->Port());
hgs
parents:
diff changeset
   121
        }
hgs
parents:
diff changeset
   122
    else {
hgs
parents:
diff changeset
   123
        data.setValue(IncomingPort, DefaultPopPort);
hgs
parents:
diff changeset
   124
    }
hgs
parents:
diff changeset
   125
    
hgs
parents:
diff changeset
   126
    data.setValue(OutgoingSecureSockets, popSettings->SecureSockets());
hgs
parents:
diff changeset
   127
    data.setValue(OutgoingSSLWrapper, popSettings->SSLWrapper());
hgs
parents:
diff changeset
   128
}
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130