kmail
expirejob.h
Go to the documentation of this file.00001 /* -*- mode: C++ -*- 00002 * Copyright (c) 2004 David Faure <faure@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 Qt library by Trolltech AS, Norway (or with modified versions 00020 * of Qt that use the same license as Qt), 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 * Qt. 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 EXPIREJOB_H 00029 #define EXPIREJOB_H 00030 00031 #include "jobscheduler.h" 00032 #include "kmcommands.h" 00033 00034 namespace KMail { 00035 00036 class ExpireJob : public ScheduledJob 00037 { 00038 Q_OBJECT 00039 public: 00040 ExpireJob( KMFolder* folder, bool immediate ); 00041 virtual ~ExpireJob(); 00042 00043 virtual void execute(); 00044 virtual void kill(); 00045 00046 private slots: 00047 void slotDoWork(); 00048 void slotMessagesMoved( KMCommand *command ); 00049 00050 private: 00051 void done(); 00052 00053 private: 00054 QTimer mTimer; 00055 QPtrList<KMMsgBase> mRemovedMsgs; 00056 int mCurrentIndex; 00057 int mMaxUnreadTime; 00058 int mMaxReadTime; 00059 bool mFolderOpen; 00060 KMFolder *mMoveToFolder; 00061 }; 00062 00064 class ScheduledExpireTask : public ScheduledTask 00065 { 00066 public: 00069 ScheduledExpireTask( KMFolder* folder, bool immediate ) 00070 : ScheduledTask( folder, immediate ) {} 00071 virtual ~ScheduledExpireTask() {} 00072 virtual ScheduledJob* run() { 00073 return folder() ? new ExpireJob( folder(), isImmediate() ) : 0; 00074 } 00075 virtual int taskTypeId() const { return 1; } 00076 }; 00077 00078 } // namespace 00079 00080 #endif /* EXPIREJOB_H */ 00081