00001
00021
#ifndef KMAcctCachedImap_h
00022
#define KMAcctCachedImap_h
00023
00024
#include "imapaccountbase.h"
00025
00026
#include <qguardedptr.h>
00027
00028
class KMFolderCachedImap;
00029
class KMFolderTreeItem;
00030
namespace KMail {
00031
class IMAPProgressDialog;
00032
class FolderJob;
00033
class ImapJob;
00034
class CachedImapJob;
00035 }
00036
using KMail::ImapJob;
00037
using KMail::CachedImapJob;
00038
00039
namespace KIO {
00040
class Job;
00041 }
00042
00043
class KMAcctCachedImap:
public KMail::ImapAccountBase
00044 {
00045 Q_OBJECT
00046
friend class ImapJob;
00047
friend class CachedImapJob;
00048
00049
protected:
00050
void setPrefixHook();
00051
00052
public:
00053
virtual ~KMAcctCachedImap();
00054
virtual void init();
00055
00057
virtual void pseudoAssign(
const KMAccount * a );
00058
00062
virtual void setAutoExpunge(
bool);
00063
00067
virtual QString type() const;
00068 virtual
void processNewMail(
bool i ) { processNewMail( mFolder, i ); }
00069
00070
void processNewMail( KMFolderCachedImap*,
bool );
00071
00075
virtual void displayProgress();
00076
00080
void killJobsForItem(KMFolderTreeItem * fti);
00081
00085
virtual void killAllJobs(
bool disconnectSlave=
false );
00086
00090
void setIdle(
bool aIdle) { mIdle = aIdle; }
00091
00092
void slaveDied() { mSlave = 0; killAllJobs(); }
00093
00097
virtual void setImapFolder(KMFolderCachedImap *);
00098
00099 KMail::IMAPProgressDialog * imapProgressDialog() const;
00100
bool isProgressDialogEnabled()
const {
return mProgressDialogEnabled; }
00101
void setProgressDialogEnabled(
bool enable ) { mProgressDialogEnabled = enable; }
00102
00103
virtual void readConfig( KConfig & config );
00104
virtual void writeConfig( KConfig & config ) ;
00105
00109
virtual void invalidateIMAPFolders();
00110
virtual void invalidateIMAPFolders( KMFolderCachedImap* );
00111
00118
void listDirectory(QString path,
bool onlySubscribed,
00119
bool secondStep = FALSE,
KMFolder* parent = NULL,
bool reset =
false);
00120
00124
virtual void listDirectory();
00125
00126
public slots:
00127
void processNewMail() { processNewMail( mFolder,
true ); }
00128
00132
void slotSlaveError(KIO::Slave *aSlave,
int,
const QString &errorMsg);
00133
00134
protected:
00135
friend class KMAcctMgr;
00136 KMAcctCachedImap(KMAcctMgr* owner,
const QString& accountName);
00137
00138
protected slots:
00142
void slotIdleTimeout();
00143
00147
void slotAbortRequested();
00148
00152
void slotSimpleResult(KIO::Job * job);
00153
00155
void postProcessNewMail(KMFolderCachedImap*,
bool);
00156
void postProcessNewMail(
KMFolder * f ) { ImapAccountBase::postProcessNewMail( f ); }
00157
00158
private:
00159 QPtrList<CachedImapJob> mJobList;
00160 KMFolderCachedImap *mFolder;
00161
mutable QGuardedPtr<KMail::IMAPProgressDialog> mProgressDlg;
00162
bool mProgressDialogEnabled;
00163
bool mSyncActive;
00164 };
00165
00166
#endif