#ifndef SETTINGS_H #define SETTINGS_H #include #include class Account { public: Account(); virtual ~Account() {} void remove(); void setAccountName( QString name ) { accountName = name; } const QString&getAccountName()const{ return accountName; } const QString&getType()const{ return type; } void setServer(const QString&str){ server = str; } const QString&getServer()const{ return server; } void setPort(const QString&str) { port = str; } const QString&getPort()const{ return port; } void setUser(const QString&str){ user = str; } const QString&getUser()const{ return user; } void setPassword(const QString&str) { password = str; } const QString&getPassword()const { return password; } void setSSL( bool b ) { ssl = b; } bool getSSL() { return ssl; } virtual QString getFileName() { return accountName; } virtual void read() { qDebug( "base reading..." ); } virtual void save() { qDebug( "base saving..." ); } protected: QString accountName, type, server, port, user, password; bool ssl; }; class IMAPaccount : public Account { public: IMAPaccount(); IMAPaccount( QString filename ); static QString getUniqueFileName(); virtual void read(); virtual void save(); virtual QString getFileName(); void setPrefix(const QString&str) {prefix=str;} const QString&getPrefix()const{return prefix;} private: QString file,prefix; }; class POP3account : public Account { public: POP3account(); POP3account( QString filename ); static QString getUniqueFileName(); virtual void read(); virtual void save(); virtual QString getFileName(); private: QString file; }; class SMTPaccount : public Account { public: SMTPaccount(); SMTPaccount( QString filename ); static QString getUniqueFileName(); virtual void read(); virtual void save(); virtual QString getFileName(); void setName( QString str ) { name = str; } QString getName() { return name; } void setMail( QString str ) { mail = str; } QString getMail() { return mail; } void setOrg( QString str ) { org = str; } QString getOrg() { return org; } void setUseCC( bool b ) { useCC = b; } bool getUseCC() { return useCC; } void setCC( QString str ) { cc = str; } QString getCC() { return cc; } void setUseBCC( bool b ) { useBCC = b; } bool getUseBCC() { return useBCC; } void setBCC( QString str ) { bcc = str; } QString getBCC() { return bcc; } void setUseReply( bool b ) { useReply = b; } bool getUseReply() { return useReply; } void setReply( QString str ) { reply = str; } QString getReply() { return reply; } void setSignature( QString str ) { signature = str; } QString getSignature() { return signature; } void setLogin( bool b ) { login = b; } bool getLogin() { return login; } private: QString file, name, mail, org, cc, bcc, reply, signature; bool useCC, useBCC, useReply, login; }; class NNTPaccount : public Account { public: NNTPaccount(); NNTPaccount( QString filename ); static QString getUniqueFileName(); virtual void read(); virtual void save(); virtual QString getFileName(); void setLogin( bool b ) { login = b; } bool getLogin() { return login; } private: QString file; bool login; }; class Settings : public QObject { Q_OBJECT public: Settings(); QList getAccounts(); void addAccount(Account *account); void delAccount(Account *account); void saveAccounts(); void readAccounts(); static void checkDirectory(); private: void updateAccounts(); QList accounts; }; #endif