diff -r 4e54af54a4a1 -r 6c59112cfd31 emailservices/nmclientapi/inc/nmapisettingsmanager_p.h --- a/emailservices/nmclientapi/inc/nmapisettingsmanager_p.h Wed Sep 15 17:47:19 2010 +0300 +++ b/emailservices/nmclientapi/inc/nmapisettingsmanager_p.h Thu Sep 30 11:43:07 2010 +0300 @@ -18,53 +18,95 @@ #ifndef NMAPISETTINGSMANAGER_P_H_ #define NMAPISETTINGSMANAGER_P_H_ -#include - -#include -#include - -class CImImap4Settings; -class CImSmtpSettings; -class XQSettingsManager; -class XQCentralRepositoryUtils; namespace EmailClientApi { class NmApiSettingsManagerPrivate { +private: + class AccountDataCleanUpItem + { + public: + /* CleanupItem class for making sure that all allocated members + will be deleted and set to null when load or save function execution + stops. + */ + AccountDataCleanUpItem(CEmailAccounts *&account, + CImPop3Settings *&pop3Settings, + CImImap4Settings *&imap4Settings, + CImSmtpSettings *&smtpSettings, + XQSettingsManager *&qSettingsManager + ) + : + mAccount(account), + mPop3Settings(pop3Settings), + mImap4Settings(imap4Settings), + mSmtpSettings(smtpSettings), + mQSettingsManager(qSettingsManager) + { + } + + ~AccountDataCleanUpItem() + { + delete mAccount; + mAccount = NULL; + delete mPop3Settings; + mPop3Settings = NULL; + delete mImap4Settings; + mImap4Settings = NULL; + delete mSmtpSettings; + mSmtpSettings = NULL; + delete mQSettingsManager; + mQSettingsManager = NULL; + } + + public: + CEmailAccounts *&mAccount; + CImPop3Settings *&mPop3Settings; + CImImap4Settings *&mImap4Settings; + CImSmtpSettings *&mSmtpSettings; + XQSettingsManager *&mQSettingsManager; + }; + public: - NmApiSettingsManagerPrivate(const quint64 mailboxId); + NmApiSettingsManagerPrivate(); ~NmApiSettingsManagerPrivate(); bool load(quint64 mailboxId, NmApiMailboxSettingsData &data); - bool save(const NmApiMailboxSettingsData &data); + bool save(quint64 mailboxId, const NmApiMailboxSettingsData &data); private: - bool writeSettingL(const NmApiMailboxSettingsData &data); - bool saveSettings(); - bool readSetting(NmApiMailboxSettingsData &data); - bool readCenRepSetting(NmApiMailboxSettingsData &data); + + void fillImapSettingDataL(const NmApiMailboxSettingsData &data); + void fillPopSettingDataL(const NmApiMailboxSettingsData &data); + void fillSmtpSettingDataL(const NmApiMailboxSettingsData &data, + const QVariant settingValue, const int key); + + void writeSettingL(const NmApiMailboxSettingsData &data); + void readSettings(NmApiMailboxSettingsData &data); + bool readCenRepSettings(NmApiMailboxSettingsData &data); QVariant readFromCenRep(quint32 key) const; + QVariant readFromCenRep(quint32 key, bool &success) const; bool writeSettingToCenRep(const NmApiMailboxSettingsData &data); bool writeToCenRep(quint32 key, const QVariant &value) const; - void setSecurity(QString securityType); - QString security() const; - QString alwaysOnlineState() const; - void setAlwaysOnlineState(const QVariant state); - void calculateMailboxOffset(); - void calculateActiveProfileOffset(); - qint32 convertToProfileOffset(int profile) const; - bool checkAccountType(); + void setSecurity(CImBaseEmailSettings &settings, QString securityType); + + QString security(CImBaseEmailSettings &settings) const; + QString alwaysOnlineState(bool &success) const; + bool setAlwaysOnlineState(const QVariant &state); + bool calculateMailboxOffset(); + bool calculateActiveProfileOffset(); + bool checkAccountTypeL(); void initAccountL(); private: - NmApiMailboxSettingsData *mSettingsData; CEmailAccounts *mAccount; CImPop3Settings *mPop3Settings; CImImap4Settings *mImap4Settings; CImSmtpSettings *mSmtpSettings; + XQSettingsManager *mQSettingsManager; TSmtpAccount mSmtpAccount; TImapAccount mImap4Account; @@ -73,7 +115,7 @@ QString mMailboxType; qint32 mMailboxOffset; qint32 mActiveProfileOffset; - XQSettingsManager *mQSettingsManager; + quint32 mMailboxId; };