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