00001 #ifndef SETTINGS_H
00002 #define SETTINGS_H
00003
00004 #include "maildefines.h"
00005
00006
00007 #include <opie2/odebug.h>
00008
00009
00010 #include <qobject.h>
00011 #include <qlist.h>
00012
00013 class Account
00014 {
00015
00016 public:
00017 Account();
00018 virtual ~Account() {}
00019
00020 void remove();
00021 void setAccountName( QString name ) { accountName = name; }
00022 const QString&getAccountName()const{ return accountName; }
00023 MAILLIB::ATYPE getType()const{ return type; }
00024
00025 void setServer(const QString&str){ server = str; }
00026 const QString&getServer()const{ return server; }
00027
00028 void setPort(const QString&str) { port = str; }
00029 const QString&getPort()const{ return port; }
00030
00031 void setUser(const QString&str){ user = str; }
00032 const QString&getUser()const{ return user; }
00033
00034 void setPassword(const QString&str) { password = str; }
00035 const QString&getPassword()const { return password; }
00036
00037 void setSSL( bool b ) { ssl = b; }
00038 bool getSSL() { return ssl; }
00039
00040 void setConnectionType( int x ) { connectionType = x; }
00041 int ConnectionType() { return connectionType; }
00042
00043
00044 void setOffline(bool b) {offline = b;}
00045 bool getOffline()const{return offline;}
00046
00047 virtual QString getFileName() { return accountName; }
00048 virtual void read() { odebug << "base reading..." << oendl; }
00049 virtual void save() { odebug << "base saving..." << oendl; }
00050
00051 protected:
00052 QString accountName, server, port, user, password;
00053 bool ssl;
00054 int connectionType;
00055 bool offline;
00056 MAILLIB::ATYPE type;
00057 };
00058
00059 class IMAPaccount : public Account
00060 {
00061
00062 public:
00063 IMAPaccount();
00064 IMAPaccount( QString filename );
00065
00066 static QString getUniqueFileName();
00067
00068 virtual void read();
00069 virtual void save();
00070 virtual QString getFileName();
00071
00072 void setPrefix(const QString&str) {prefix=str;}
00073 const QString&getPrefix()const{return prefix;}
00074
00075 private:
00076 QString file,prefix;
00077
00078 };
00079
00080 class POP3account : public Account
00081 {
00082
00083 public:
00084 POP3account();
00085 POP3account( QString filename );
00086
00087 static QString getUniqueFileName();
00088
00089 virtual void read();
00090 virtual void save();
00091 virtual QString getFileName();
00092 virtual bool getCheckMaxSize()const;
00093 virtual void setCheckMaxSize(bool);
00094 virtual int getMaxSize()const;
00095 virtual void setMaxSize(int);
00096
00097 private:
00098 QString file;
00099 bool m_CheckSize;
00100 int m_MaxSize;
00101 };
00102
00103 class SMTPaccount : public Account
00104 {
00105
00106 public:
00107 SMTPaccount();
00108 SMTPaccount( QString filename );
00109
00110 static QString getUniqueFileName();
00111
00112 virtual void read();
00113 virtual void save();
00114 virtual QString getFileName();
00115
00116 void setLogin( bool b ) { login = b; }
00117 bool getLogin() { return login; }
00118
00119 private:
00120 QString file, name, mail, org, cc, bcc, reply, signature;
00121 bool useCC, useBCC, useReply, login;
00122
00123 };
00124
00125 class NNTPaccount : public Account
00126 {
00127
00128 public:
00129 NNTPaccount();
00130 NNTPaccount( QString filename );
00131
00132 static QString getUniqueFileName();
00133
00134 virtual void read();
00135 virtual void save();
00136 virtual QString getFileName();
00137
00138 void setLogin( bool b ) { login = b; }
00139 bool getLogin() { return login; }
00140
00141 void setGroups( QStringList list ) { subscribedGroups = list; }
00142 QStringList getGroups() { return subscribedGroups; }
00143
00144 private:
00145 QString file;
00146 bool login;
00147 QStringList subscribedGroups;
00148
00149 };
00150
00151 class Settings : public QObject
00152 {
00153 Q_OBJECT
00154
00155 public:
00156 Settings();
00157 QList<Account> getAccounts();
00158 void addAccount(Account *account);
00159 void delAccount(Account *account);
00160 void saveAccounts();
00161 void readAccounts();
00162 static void checkDirectory();
00163
00164 private:
00165 void updateAccounts();
00166 QList<Account> accounts;
00167
00168 };
00169
00170 #endif