kmail

listjob.h
00001 /*
00002  * Copyright (c) 2004 Carsten Burghardt <burghardt@kde.org>
00003  *
00004  *  This program is free software; you can redistribute it and/or modify
00005  *  it under the terms of the GNU General Public License as published by
00006  *  the Free Software Foundation; version 2 of the License
00007  *
00008  *  This program is distributed in the hope that it will be useful,
00009  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00010  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00011  *  GNU General Public License for more details.
00012  *
00013  *  You should have received a copy of the GNU General Public License
00014  *  along with this program; if not, write to the Free Software
00015  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00016  *
00017  *  In addition, as a special exception, the copyright holders give
00018  *  permission to link the code of this program with any edition of
00019  *  the TQt library by Trolltech AS, Norway (or with modified versions
00020  *  of TQt that use the same license as TQt), and distribute linked
00021  *  combinations including the two.  You must obey the GNU General
00022  *  Public License in all respects for all of the code used other than
00023  *  TQt.  If you modify this file, you may extend this exception to
00024  *  your version of the file, but you are not obligated to do so.  If
00025  *  you do not wish to do so, delete this exception statement from
00026  *  your version.
00027  */
00028 #ifndef LISTJOB_H
00029 #define LISTJOB_H
00030 
00031 #include "folderjob.h"
00032 #include "imapaccountbase.h"
00033 
00034 class KMFolderImap;
00035 class KMFolderCachedImap;
00036 class KMAcctImap;
00037 class KMAcctCachedImap;
00038 class FolderStorage;
00039 class KURL;
00040 
00041 namespace KIO {
00042   class Job;
00043 }
00044 
00045 namespace KPIM {
00046   class ProgressItem;
00047 }
00048 
00049 namespace KMail {
00050 
00054 class ListJob : public FolderJob
00055 {
00056   Q_OBJECT
00057   TQ_OBJECT
00058 public:
00069   ListJob( ImapAccountBase* account, ImapAccountBase::ListType type,
00070            FolderStorage* storage = 0, const TQString& path = TQString(),
00071            bool complete = false, KPIM::ProgressItem* item = 0 );
00072 
00073   virtual ~ListJob();
00074 
00080   void setHonorLocalSubscription( bool value );
00081 
00087   bool honorLocalSubscription() const;
00088 
00089   virtual void execute();
00090 
00092   void setPath( const TQString& path ) { mPath = path; }
00093 
00095   void setStorage( FolderStorage* st ) { mStorage = st; }
00096 
00098   void setComplete( bool complete ) { mComplete = complete; }
00099 
00101   void setParentProgressItem( KPIM::ProgressItem* it ) {
00102     mParentProgressItem = it; }
00103 
00105   void setNamespace( const TQString& ns ) { mNamespace = ns; }
00106 
00107 protected slots:
00112   void slotListResult( KIO::Job* job );
00113 
00117   void slotListEntries( KIO::Job* job, const KIO::UDSEntryList& uds );
00118 
00122   void slotConnectionResult( int errorCode, const TQString& errorMsg );
00123 
00124 signals:
00128   void receivedFolders( const TQStringList&, const TQStringList&,
00129       const TQStringList&, const TQStringList&, const ImapAccountBase::jobData& );
00130 
00131 protected:
00132   FolderStorage* mStorage;
00133   ImapAccountBase* mAccount;
00134   ImapAccountBase::ListType mType;
00135   bool mComplete;
00136   bool mHonorLocalSubscription;
00137   TQString mPath;
00138   TQStringList mSubfolderNames, mSubfolderPaths,
00139               mSubfolderMimeTypes, mSubfolderAttributes;
00140   KPIM::ProgressItem* mParentProgressItem;
00141   TQString mNamespace;
00142 };
00143 
00144 } // namespace
00145 
00146 #endif /* LISTJOB_H */
00147