diff options
Diffstat (limited to 'kmail/networkaccount.h')
-rw-r--r-- | kmail/networkaccount.h | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/kmail/networkaccount.h b/kmail/networkaccount.h new file mode 100644 index 000000000..616de6711 --- /dev/null +++ b/kmail/networkaccount.h @@ -0,0 +1,142 @@ +/* -*- c++ -*- + * networkaccount.h + * + * Copyright (c) 2000-2002 Michael Haeckel <haeckel@kde.org> + * Copyright (c) 2002 Marc Mutz <mutz@kde.org> + * + * This file is based on work on pop3 and imap account implementations + * by Don Sanders <sanders@kde.org> and Michael Haeckel <haeckel@kde.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + + +#ifndef __KMAIL_NETWORKACCOUNT_H__ +#define __KMAIL_NETWORKACCOUNT_H__ + +#include <qguardedptr.h> + +#include "kmaccount.h" + +#include "sieveconfig.h" + +#include <qstring.h> + +class AccountManager; +class KConfig/*Base*/; +class KURL; +namespace KIO { + class Slave; + class MetaData; +} + +namespace KMail { + + class NetworkAccount : public KMAccount { + Q_OBJECT + protected: + NetworkAccount( AccountManager * parent, const QString & name, uint id ); + public: + virtual ~NetworkAccount(); + + /** Set the config options to a decent state */ + virtual void init(); + + /** A weak assignment operator */ + virtual void pseudoAssign( const KMAccount * a ); + + /** User login name */ + QString login() const { return mLogin; } + virtual void setLogin( const QString & login ); + + /** User password */ + QString passwd() const; + virtual void setPasswd( const QString & passwd, bool storeInConfig=false ); + + /** + * Set the password to "" (empty string) + */ + virtual void clearPasswd(); + + /** authentication method */ + QString auth() const { return mAuth; } + virtual void setAuth( const QString & auth ); + + /** @return whether to store the password in the config file */ + bool storePasswd() const { return mStorePasswd; } + virtual void setStorePasswd( bool store ); + + /** Server hostname */ + QString host() const { return mHost; } + virtual void setHost( const QString & host ); + + /** Server port number */ + unsigned short int port() const { return mPort; } + virtual void setPort( unsigned short int port ); + + /** @return whether to use SSL */ + bool useSSL() const { return mUseSSL; } + virtual void setUseSSL( bool use ); + + /** @return whether to use TLS */ + bool useTLS() const { return mUseTLS; } + virtual void setUseTLS( bool use ); + + /** @return the SieveConfig for this account */ + KMail::SieveConfig sieveConfig() const { return mSieveConfig; } + virtual void setSieveConfig( const KMail::SieveConfig & config ); + + /** Configure the slave by adding to the meta data map */ + virtual KIO::MetaData slaveConfig() const; + + virtual void readConfig( /*const*/ KConfig/*Base*/ & config ); + virtual void writeConfig( KConfig/*Base*/ & config ) /*const*/; + + /** @return an URL for this account */ + virtual KURL getUrl() const; + + /** @return the KIO slave for this account */ + KIO::Slave * slave() const { return mSlave; } + + /** Kill all jobs that are currently in progress */ + virtual void killAllJobs( bool disconnectSlave = false ) = 0; + + /** Read password from wallet, used for on-demand wallet opening */ + void readPassword(); + + virtual bool mailCheckCanProceed() const; + + virtual void setCheckingMail( bool checking ); + + /** Reset connection list for the account */ + static void resetConnectionList( NetworkAccount* acct ); + protected: + virtual QString protocol() const = 0; + virtual unsigned short int defaultPort() const = 0; + + protected: + KMail::SieveConfig mSieveConfig; + QGuardedPtr<KIO::Slave> mSlave; + QString mLogin, mPasswd, mAuth, mHost; + unsigned short int mPort; + bool mStorePasswd : 1; + bool mUseSSL : 1; + bool mUseTLS : 1; + bool mAskAgain : 1; + bool mPasswdDirty, mStorePasswdInConfig; + }; + +} // namespace KMail + +#endif // __KMAIL_NETWORKACCOUNT_H__ |