emailservices/nmclientapi/inc/nmapisettingsmanager_p.h
author hgs
Thu, 30 Sep 2010 11:43:07 +0300
changeset 74 6c59112cfd31
parent 56 15bc1d5d6267
permissions -rw-r--r--
201039
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
56
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
#ifndef NMAPISETTINGSMANAGER_P_H_
hgs
parents:
diff changeset
    19
#define NMAPISETTINGSMANAGER_P_H_
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
namespace EmailClientApi
hgs
parents:
diff changeset
    23
{
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
class NmApiSettingsManagerPrivate
hgs
parents:
diff changeset
    26
{
74
hgs
parents: 56
diff changeset
    27
private:
hgs
parents: 56
diff changeset
    28
    class AccountDataCleanUpItem
hgs
parents: 56
diff changeset
    29
    {
hgs
parents: 56
diff changeset
    30
    public:
hgs
parents: 56
diff changeset
    31
        /* CleanupItem class for making sure that all allocated members 
hgs
parents: 56
diff changeset
    32
           will be deleted and set to null when load or save function execution
hgs
parents: 56
diff changeset
    33
           stops.
hgs
parents: 56
diff changeset
    34
         */
hgs
parents: 56
diff changeset
    35
        AccountDataCleanUpItem(CEmailAccounts *&account,
hgs
parents: 56
diff changeset
    36
            CImPop3Settings *&pop3Settings,
hgs
parents: 56
diff changeset
    37
            CImImap4Settings *&imap4Settings,
hgs
parents: 56
diff changeset
    38
            CImSmtpSettings *&smtpSettings,
hgs
parents: 56
diff changeset
    39
            XQSettingsManager *&qSettingsManager
hgs
parents: 56
diff changeset
    40
        )
hgs
parents: 56
diff changeset
    41
            : 
hgs
parents: 56
diff changeset
    42
            mAccount(account),
hgs
parents: 56
diff changeset
    43
            mPop3Settings(pop3Settings),
hgs
parents: 56
diff changeset
    44
            mImap4Settings(imap4Settings),
hgs
parents: 56
diff changeset
    45
            mSmtpSettings(smtpSettings),
hgs
parents: 56
diff changeset
    46
            mQSettingsManager(qSettingsManager)
hgs
parents: 56
diff changeset
    47
        {
hgs
parents: 56
diff changeset
    48
        }
hgs
parents: 56
diff changeset
    49
        
hgs
parents: 56
diff changeset
    50
        ~AccountDataCleanUpItem()
hgs
parents: 56
diff changeset
    51
        {
hgs
parents: 56
diff changeset
    52
            delete mAccount;
hgs
parents: 56
diff changeset
    53
            mAccount = NULL;
hgs
parents: 56
diff changeset
    54
            delete mPop3Settings;
hgs
parents: 56
diff changeset
    55
            mPop3Settings = NULL;
hgs
parents: 56
diff changeset
    56
            delete mImap4Settings;
hgs
parents: 56
diff changeset
    57
            mImap4Settings = NULL;
hgs
parents: 56
diff changeset
    58
            delete mSmtpSettings;
hgs
parents: 56
diff changeset
    59
            mSmtpSettings = NULL;
hgs
parents: 56
diff changeset
    60
            delete mQSettingsManager;
hgs
parents: 56
diff changeset
    61
            mQSettingsManager = NULL;
hgs
parents: 56
diff changeset
    62
        }        
hgs
parents: 56
diff changeset
    63
hgs
parents: 56
diff changeset
    64
    public:
hgs
parents: 56
diff changeset
    65
        CEmailAccounts *&mAccount;
hgs
parents: 56
diff changeset
    66
        CImPop3Settings *&mPop3Settings;
hgs
parents: 56
diff changeset
    67
        CImImap4Settings *&mImap4Settings;
hgs
parents: 56
diff changeset
    68
        CImSmtpSettings *&mSmtpSettings;
hgs
parents: 56
diff changeset
    69
        XQSettingsManager *&mQSettingsManager;
hgs
parents: 56
diff changeset
    70
    };
hgs
parents: 56
diff changeset
    71
    
56
hgs
parents:
diff changeset
    72
public:
74
hgs
parents: 56
diff changeset
    73
    NmApiSettingsManagerPrivate();
56
hgs
parents:
diff changeset
    74
    ~NmApiSettingsManagerPrivate();
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
    bool load(quint64 mailboxId, NmApiMailboxSettingsData &data);
74
hgs
parents: 56
diff changeset
    77
    bool save(quint64 mailboxId, const NmApiMailboxSettingsData &data);
56
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
private:
74
hgs
parents: 56
diff changeset
    80
hgs
parents: 56
diff changeset
    81
    void fillImapSettingDataL(const NmApiMailboxSettingsData &data);
hgs
parents: 56
diff changeset
    82
    void fillPopSettingDataL(const NmApiMailboxSettingsData &data);
hgs
parents: 56
diff changeset
    83
    void fillSmtpSettingDataL(const NmApiMailboxSettingsData &data, 
hgs
parents: 56
diff changeset
    84
            const QVariant settingValue, const int key);
hgs
parents: 56
diff changeset
    85
   
hgs
parents: 56
diff changeset
    86
    void writeSettingL(const NmApiMailboxSettingsData &data);
hgs
parents: 56
diff changeset
    87
    void readSettings(NmApiMailboxSettingsData &data);
hgs
parents: 56
diff changeset
    88
    bool readCenRepSettings(NmApiMailboxSettingsData &data);
56
hgs
parents:
diff changeset
    89
    QVariant readFromCenRep(quint32 key) const;
74
hgs
parents: 56
diff changeset
    90
    QVariant readFromCenRep(quint32 key, bool &success) const;
56
hgs
parents:
diff changeset
    91
    bool writeSettingToCenRep(const NmApiMailboxSettingsData &data);
hgs
parents:
diff changeset
    92
    bool writeToCenRep(quint32 key, const QVariant &value) const;
74
hgs
parents: 56
diff changeset
    93
    void setSecurity(CImBaseEmailSettings &settings, QString securityType);
hgs
parents: 56
diff changeset
    94
    
hgs
parents: 56
diff changeset
    95
    QString security(CImBaseEmailSettings &settings) const;
hgs
parents: 56
diff changeset
    96
    QString alwaysOnlineState(bool &success) const;
hgs
parents: 56
diff changeset
    97
    bool setAlwaysOnlineState(const QVariant &state);
hgs
parents: 56
diff changeset
    98
    bool calculateMailboxOffset();
hgs
parents: 56
diff changeset
    99
    bool calculateActiveProfileOffset();
hgs
parents: 56
diff changeset
   100
    bool checkAccountTypeL();
56
hgs
parents:
diff changeset
   101
    void initAccountL();
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
private:
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
    CEmailAccounts *mAccount;
hgs
parents:
diff changeset
   106
    CImPop3Settings *mPop3Settings;
hgs
parents:
diff changeset
   107
    CImImap4Settings *mImap4Settings;
hgs
parents:
diff changeset
   108
    CImSmtpSettings *mSmtpSettings;
74
hgs
parents: 56
diff changeset
   109
    XQSettingsManager *mQSettingsManager;
56
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
    TSmtpAccount mSmtpAccount;
hgs
parents:
diff changeset
   112
    TImapAccount mImap4Account;
hgs
parents:
diff changeset
   113
    TPopAccount mPop3Account;
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
    QString mMailboxType;
hgs
parents:
diff changeset
   116
    qint32 mMailboxOffset;
hgs
parents:
diff changeset
   117
    qint32 mActiveProfileOffset;
74
hgs
parents: 56
diff changeset
   118
    
56
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
    quint32 mMailboxId;
hgs
parents:
diff changeset
   121
};
hgs
parents:
diff changeset
   122
hgs
parents:
diff changeset
   123
} //namespace EmailClientApi
hgs
parents:
diff changeset
   124
hgs
parents:
diff changeset
   125
#endif // NMAPISETTINGSMANAGER_P_H_