kmail Library API Documentation

kmaccount.h

00001 /* -*- mode: C++ -*- 00002 * KMail Account: Abstract base class for accounts. 00003 * 00004 * Author: Stefan Taferner <taferner@alpin.or.at> 00005 */ 00006 #ifndef kmaccount_h 00007 #define kmaccount_h 00008 00009 #include <kprocess.h> 00010 #include <kaccount.h> 00011 00012 #include <qtimer.h> 00013 #include <qsignal.h> 00014 #include <qstring.h> 00015 #include <qptrlist.h> 00016 #include <qvaluelist.h> 00017 #include <qguardedptr.h> 00018 #include <qmap.h> 00019 00020 class KMAcctMgr; 00021 class KMFolder; 00022 class KMAcctFolder; 00023 class KConfig; 00024 class KMMessage; 00025 class KMFolderJob; 00026 namespace KMail { 00027 class FolderJob; 00028 } 00029 namespace KPIM { class ProgressItem; } 00030 using KMail::FolderJob; 00031 using KPIM::ProgressItem; 00032 00033 class KMPrecommand : public QObject 00034 { 00035 Q_OBJECT 00036 00037 public: 00038 KMPrecommand(const QString &precommand, QObject *parent = 0); 00039 virtual ~KMPrecommand(); 00040 bool start(); 00041 00042 protected slots: 00043 void precommandExited(KProcess *); 00044 00045 signals: 00046 void finished(bool); 00047 00048 protected: 00049 KProcess mPrecommandProcess; 00050 QString mPrecommand; 00051 }; 00052 00053 00054 class KMAccount: public QObject, public KAccount 00055 { 00056 Q_OBJECT 00057 friend class KMAcctMgr; 00058 friend class FolderJob; 00059 friend class KMFolderCachedImap; /* HACK for processNewMSg() */ 00060 00061 public: 00062 virtual ~KMAccount(); 00063 00064 enum CheckStatus { CheckOK, CheckIgnored, CheckCanceled, CheckAborted, 00065 CheckError }; 00066 00068 static const int DefaultCheckInterval = 5; 00069 00073 virtual QString type() const { return QString::null; } 00074 00078 virtual void setName(const QString&); 00079 00083 virtual QString name() const { return KAccount::name(); } 00084 00088 virtual void clearPasswd(); 00089 00093 virtual void init(); 00094 00098 virtual void pseudoAssign(const KMAccount * a ); 00099 00103 KMFolder* folder(void) const { return ((KMFolder*)((KMAcctFolder*)mFolder)); } 00104 virtual void setFolder(KMFolder*, bool addAccount = false); 00105 00109 QString trash() const { return mTrash; } 00110 virtual void setTrash(const QString& aTrash) { mTrash = aTrash; } 00111 00117 virtual void processNewMail(bool interactive) = 0; 00118 00124 virtual void readConfig(KConfig& config); 00125 00130 virtual void writeConfig(KConfig& config); 00131 00136 virtual void setCheckInterval(int aInterval); 00137 int checkInterval(void) const { return mInterval; } 00138 00142 inline int defaultCheckInterval(void) const { return DefaultCheckInterval; } 00143 00147 void deleteFolderJobs(); 00148 00152 virtual void ignoreJobsForMessage( KMMessage* ); 00157 virtual void setCheckExclude(bool aExclude); 00158 bool checkExclude(void) const { return mExclude; } 00159 00163 const QString& precommand(void) const { return mPrecommand; } 00164 virtual void setPrecommand(const QString &cmd) { mPrecommand = cmd; } 00165 00172 bool runPrecommand(const QString &precommand); 00173 00178 static QString encryptStr(const QString& inStr); 00179 static QString decryptStr(const QString& inStr) { return encryptStr(inStr); } 00180 00181 static QString importPassword(const QString &); 00182 00184 bool hasInbox() const { return mHasInbox; } 00185 virtual void setHasInbox( bool has ) { mHasInbox = has; } 00186 00190 virtual void invalidateIMAPFolders(); 00191 00195 bool checkingMail() { return mCheckingMail; } 00196 void setCheckingMail( bool checking ) { mCheckingMail = checking; } 00197 00203 void checkDone( bool newMail, CheckStatus status ); 00204 00210 virtual void cancelMailCheck() {} 00211 00216 ProgressItem *mailCheckProgressItem() const { 00217 return mMailCheckProgressItem; 00218 } 00219 00220 signals: 00226 virtual void finishedCheck( bool newMail, CheckStatus status ); 00227 00232 virtual void newMailsProcessed( const QMap<QString, int> & newInFolder ); 00233 00234 protected slots: 00235 virtual void mailCheck(); 00236 virtual void sendReceipts(); 00237 virtual void precommandExited(bool); 00238 00239 protected: 00240 KMAccount(KMAcctMgr* owner, const QString& accountName, uint id); 00241 00247 virtual bool processNewMsg(KMMessage* msg); 00248 00255 virtual void sendReceipt(KMMessage* msg); 00256 00260 virtual void installTimer(); 00261 virtual void deinstallTimer(); 00262 00269 void addToNewInFolder( QString folderId, int num ); 00270 00271 protected: 00272 QString mPrecommand; 00273 QString mTrash; 00274 KMAcctMgr* mOwner; 00275 QGuardedPtr<KMAcctFolder> mFolder; 00276 QTimer *mTimer, mReceiptTimer; 00277 int mInterval; 00278 bool mExclude; 00279 bool mCheckingMail : 1; 00280 bool mPrecommandSuccess; 00281 QValueList<KMMessage*> mReceipts; 00282 QPtrList<FolderJob> mJobList; 00283 bool mHasInbox : 1; 00284 ProgressItem *mMailCheckProgressItem; 00285 00286 private: 00290 virtual void setName( const char *name ) { QObject::setName( name ); } 00291 00292 private: 00293 // for detailed (per folder) new mail notification 00294 QMap<QString, int> mNewInFolder; 00295 }; 00296 00297 class KMAcctList: public QPtrList<KMAccount> 00298 { 00299 public: 00300 virtual ~KMAcctList() {} 00302 short _dummy; 00303 }; 00304 00305 #endif /*kmaccount_h*/
KDE Logo
This file is part of the documentation for kmail Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Aug 27 12:52:18 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003