kmail Library API Documentation

kmcommands.h

00001 #ifndef KMCommands_h 00002 #define KMCommands_h 00003 00004 #include <qguardedptr.h> 00005 #include <qptrlist.h> 00006 #include <qvaluelist.h> 00007 #include <kio/job.h> 00008 #include "kmmsgbase.h" // for KMMsgStatus 00009 00010 class QPopupMenu; 00011 class QTextCodec; 00012 class KMainWindow; 00013 class KProgressDialog; 00014 class KMComposeWin; 00015 class KMFilter; 00016 class KMFolder; 00017 class KMFolderImap; 00018 class KMFolderNode; 00019 class KMHeaders; 00020 class KMMainWidget; 00021 class KMMessage; 00022 class KMMsgBase; 00023 class KMReaderWin; 00024 class partNode; 00025 namespace KIO { class Job; } 00026 00027 typedef QMap<int,KMFolder*> KMMenuToFolder; 00028 00029 class KMCommand : public QObject 00030 { 00031 Q_OBJECT 00032 00033 public: 00034 // Trival constructor, don't retrieve any messages 00035 KMCommand( QWidget *parent = 0 ); 00036 // Retrieve all messages in msgList when start is called. 00037 KMCommand( QWidget *parent, const QPtrList<KMMsgBase> &msgList ); 00038 // Retrieve the single message msgBase when start is called. 00039 KMCommand( QWidget *parent, KMMsgBase *msgBase ); 00040 // Retrieve the single message msgBase when start is called. 00041 KMCommand( QWidget *parent, KMMessage *message ); 00042 virtual ~KMCommand(); 00043 00044 bool deletesItself () { return mDeletesItself; } 00045 void setDeletesItself( bool deletesItself ) 00046 { mDeletesItself = deletesItself; } 00047 00048 00049 public slots: 00050 // Retrieve messages then calls execute 00051 void start(); 00052 00053 protected: 00054 // Returns list of messages retrieved 00055 const QPtrList<KMMessage> retrievedMsgs() const; 00056 // Returns the single message retrieved 00057 KMMessage *retrievedMessage() const; 00058 00059 private: 00060 // execute should be implemented by derived classes 00061 virtual void execute() = 0; 00062 00063 void preTransfer(); 00064 00067 void transferSelectedMsgs(); 00068 00069 private slots: 00070 void slotPostTransfer(bool); 00072 void slotMsgTransfered(KMMessage* msg); 00074 void slotJobFinished(); 00076 void slotTransferCancelled(); 00077 signals: 00078 void messagesTransfered(bool); 00081 void completed( bool success); 00082 00083 private: 00084 // ProgressDialog for transferring messages 00085 KProgressDialog* mProgressDialog; 00086 //Currently only one async command allowed at a time 00087 static int mCountJobs; 00088 int mCountMsgs; 00089 bool mDeletesItself; 00090 00091 QWidget *mParent; 00092 QPtrList<KMMessage> mRetrievedMsgs; 00093 QPtrList<KMMsgBase> mMsgList; 00094 QValueList<QGuardedPtr<KMFolder> > mFolders; 00095 }; 00096 00097 class KMMailtoComposeCommand : public KMCommand 00098 { 00099 Q_OBJECT 00100 00101 public: 00102 KMMailtoComposeCommand( const KURL &url, KMMessage *msg=0 ); 00103 00104 private: 00105 virtual void execute(); 00106 00107 KURL mUrl; 00108 KMMessage *mMessage; 00109 }; 00110 00111 class KMMailtoReplyCommand : public KMCommand 00112 { 00113 Q_OBJECT 00114 00115 public: 00116 KMMailtoReplyCommand( QWidget *parent, const KURL &url, 00117 KMMessage *msg, const QString &selection ); 00118 00119 private: 00120 virtual void execute(); 00121 00122 KURL mUrl; 00123 QString mSelection; 00124 }; 00125 00126 class KMMailtoForwardCommand : public KMCommand 00127 { 00128 Q_OBJECT 00129 00130 public: 00131 KMMailtoForwardCommand( QWidget *parent, const KURL &url, 00132 KMMessage *msg ); 00133 00134 private: 00135 virtual void execute(); 00136 00137 KURL mUrl; 00138 }; 00139 00140 class KMMailtoAddAddrBookCommand : public KMCommand 00141 { 00142 Q_OBJECT 00143 00144 public: 00145 KMMailtoAddAddrBookCommand( const KURL &url, QWidget *parent ); 00146 00147 private: 00148 virtual void execute(); 00149 00150 KURL mUrl; 00151 QWidget *mParent; 00152 }; 00153 00154 class KMAddBookmarksCommand : public KMCommand 00155 { 00156 Q_OBJECT 00157 00158 public: 00159 KMAddBookmarksCommand( const KURL &url, QWidget *parent ); 00160 00161 private: 00162 virtual void execute(); 00163 00164 KURL mUrl; 00165 QWidget *mParent; 00166 }; 00167 00168 00169 class KMMailtoOpenAddrBookCommand : public KMCommand 00170 { 00171 Q_OBJECT 00172 00173 public: 00174 KMMailtoOpenAddrBookCommand( const KURL &url, QWidget *parent ); 00175 00176 private: 00177 virtual void execute(); 00178 00179 KURL mUrl; 00180 QWidget *mParent; 00181 }; 00182 00183 class KMUrlCopyCommand : public KMCommand 00184 { 00185 Q_OBJECT 00186 00187 public: 00188 KMUrlCopyCommand( const KURL &url, KMMainWidget *mainWidget = 0 ); 00189 00190 private: 00191 virtual void execute(); 00192 00193 KURL mUrl; 00194 KMMainWidget *mMainWidget; 00195 }; 00196 00197 class KMUrlOpenCommand : public KMCommand 00198 { 00199 Q_OBJECT 00200 00201 public: 00202 KMUrlOpenCommand( const KURL &url, KMReaderWin *readerWin ); 00203 00204 private: 00205 virtual void execute(); 00206 00207 KURL mUrl; 00208 KMReaderWin *mReaderWin; 00209 }; 00210 00211 class KMUrlSaveCommand : public KMCommand 00212 { 00213 Q_OBJECT 00214 00215 public: 00216 KMUrlSaveCommand( const KURL &url, QWidget *parent ); 00217 00218 private slots: 00219 void slotUrlSaveResult( KIO::Job *job ); 00220 00221 private: 00222 virtual void execute(); 00223 00224 KURL mUrl; 00225 QWidget *mParent; 00226 }; 00227 00228 class KMEditMsgCommand : public KMCommand 00229 { 00230 Q_OBJECT 00231 00232 public: 00233 KMEditMsgCommand( QWidget *parent, KMMessage *msg ); 00234 00235 private: 00236 virtual void execute(); 00237 }; 00238 00239 class KMShowMsgSrcCommand : public KMCommand 00240 { 00241 Q_OBJECT 00242 00243 public: 00244 KMShowMsgSrcCommand( QWidget *parent, KMMessage *msg, 00245 bool fixedFont ); 00246 virtual void execute(); 00247 00248 private: 00249 bool mFixedFont; 00250 }; 00251 00252 class KMSaveMsgCommand : public KMCommand 00253 { 00254 Q_OBJECT 00255 00256 public: 00257 KMSaveMsgCommand( QWidget *parent, const QPtrList<KMMsgBase> &msgList ); 00258 KMSaveMsgCommand( QWidget *parent, KMMessage * msg ); 00259 KURL url(); 00260 00261 private: 00262 virtual void execute(); 00263 00264 private slots: 00265 void slotSaveDataReq(); 00266 void slotSaveResult(KIO::Job *job); 00268 void slotMessageRetrievedForSaving(KMMessage *msg); 00269 00270 private: 00271 static const int MAX_CHUNK_SIZE = 64*1024; 00272 KURL mUrl; 00273 QValueList<unsigned long> mMsgList; 00274 unsigned int mMsgListIndex; 00275 QByteArray mData; 00276 int mOffset; 00277 size_t mTotalSize; 00278 KIO::TransferJob *mJob; 00279 }; 00280 00281 class KMSaveAttachmentsCommand : public KMCommand 00282 { 00283 Q_OBJECT 00284 public: 00285 KMSaveAttachmentsCommand( QWidget *parent, KMMessage *msg ); 00286 KMSaveAttachmentsCommand( QWidget *parent, const QPtrList<KMMsgBase>& msgs ); 00287 KMSaveAttachmentsCommand( QWidget *parent, QPtrList<partNode> &attachments, 00288 KMMessage *msg, bool encoded = false ); 00289 00290 protected slots: 00291 void slotSaveAll(); 00292 00293 private: 00294 virtual void execute(); 00295 private: 00296 void parse( partNode *rootNode ); 00297 void saveAll( const QPtrList<partNode>& attachments ); 00298 void saveItem( partNode *node, const QString& filename ); 00299 private: 00300 QWidget *mParent; 00301 QPtrList<partNode> mAttachments; 00302 bool mEncoded; 00303 bool mMessageComplete; 00304 }; 00305 00306 class KMReplyToCommand : public KMCommand 00307 { 00308 Q_OBJECT 00309 00310 public: 00311 KMReplyToCommand( QWidget *parent, KMMessage *msg, 00312 const QString &selection = QString::null ); 00313 00314 private: 00315 virtual void execute(); 00316 00317 private: 00318 QString mSelection; 00319 }; 00320 00321 class KMNoQuoteReplyToCommand : public KMCommand 00322 { 00323 Q_OBJECT 00324 00325 public: 00326 KMNoQuoteReplyToCommand( QWidget *parent, KMMessage *msg ); 00327 00328 private: 00329 virtual void execute(); 00330 }; 00331 00332 class KMReplyListCommand : public KMCommand 00333 { 00334 Q_OBJECT 00335 00336 public: 00337 KMReplyListCommand( QWidget *parent, KMMessage *msg, 00338 const QString &selection = QString::null ); 00339 00340 private: 00341 virtual void execute(); 00342 00343 private: 00344 QString mSelection; 00345 }; 00346 00347 class KMReplyToAllCommand : public KMCommand 00348 { 00349 Q_OBJECT 00350 00351 public: 00352 KMReplyToAllCommand( QWidget *parent, KMMessage *msg, 00353 const QString &selection = QString::null ); 00354 00355 private: 00356 virtual void execute(); 00357 00358 private: 00359 QString mSelection; 00360 }; 00361 00362 class KMReplyAuthorCommand : public KMCommand 00363 { 00364 Q_OBJECT 00365 00366 public: 00367 KMReplyAuthorCommand( QWidget *parent, KMMessage *msg, 00368 const QString &selection = QString::null ); 00369 00370 private: 00371 virtual void execute(); 00372 00373 private: 00374 QString mSelection; 00375 }; 00376 00377 class KMForwardCommand : public KMCommand 00378 { 00379 Q_OBJECT 00380 00381 public: 00382 KMForwardCommand( QWidget *parent, const QPtrList<KMMsgBase> &msgList, 00383 uint identity = 0 ); 00384 KMForwardCommand( QWidget *parent, KMMessage * msg, 00385 uint identity = 0 ); 00386 00387 private: 00388 virtual void execute(); 00389 00390 private: 00391 QWidget *mParent; 00392 uint mIdentity; 00393 }; 00394 00395 class KMForwardAttachedCommand : public KMCommand 00396 { 00397 Q_OBJECT 00398 00399 public: 00400 KMForwardAttachedCommand( QWidget *parent, const QPtrList<KMMsgBase> &msgList, 00401 uint identity = 0, KMComposeWin *win = 0 ); 00402 KMForwardAttachedCommand( QWidget *parent, KMMessage * msg, 00403 uint identity = 0, KMComposeWin *win = 0 ); 00404 00405 private: 00406 virtual void execute(); 00407 00408 uint mIdentity; 00409 QGuardedPtr<KMComposeWin> mWin; 00410 }; 00411 00412 class KMRedirectCommand : public KMCommand 00413 { 00414 Q_OBJECT 00415 00416 public: 00417 KMRedirectCommand( QWidget *parent, KMMessage *msg ); 00418 00419 private: 00420 virtual void execute(); 00421 }; 00422 00423 class KMBounceCommand : public KMCommand 00424 { 00425 Q_OBJECT 00426 00427 public: 00428 KMBounceCommand( QWidget *parent, KMMessage *msg ); 00429 00430 private: 00431 virtual void execute(); 00432 }; 00433 00434 class KMPrintCommand : public KMCommand 00435 { 00436 Q_OBJECT 00437 00438 public: 00439 KMPrintCommand( QWidget *parent, KMMessage *msg, bool htmlOverride=false ); 00440 00441 private: 00442 virtual void execute(); 00443 00444 bool mHtmlOverride; 00445 }; 00446 00447 class KMSetStatusCommand : public KMCommand 00448 { 00449 Q_OBJECT 00450 00451 public: 00452 // Serial numbers 00453 KMSetStatusCommand( KMMsgStatus status, const QValueList<Q_UINT32> &, 00454 bool toggle=false ); 00455 00456 private: 00457 virtual void execute(); 00458 00459 KMMsgStatus mStatus; 00460 QValueList<Q_UINT32> mSerNums; 00461 QValueList<int> mIds; 00462 bool mToggle; 00463 }; 00464 00465 class KMFilterCommand : public KMCommand 00466 { 00467 Q_OBJECT 00468 00469 public: 00470 KMFilterCommand( const QCString &field, const QString &value ); 00471 00472 private: 00473 virtual void execute(); 00474 00475 QCString mField; 00476 QString mValue; 00477 }; 00478 00479 00480 class KMFilterActionCommand : public KMCommand 00481 { 00482 Q_OBJECT 00483 00484 public: 00485 KMFilterActionCommand( QWidget *parent, 00486 const QPtrList<KMMsgBase> &msgList, 00487 KMFilter *filter ); 00488 00489 private: 00490 virtual void execute(); 00491 00492 KMFilter *mFilter; 00493 }; 00494 00495 00496 class KMMetaFilterActionCommand : public QObject 00497 { 00498 Q_OBJECT 00499 00500 public: 00501 KMMetaFilterActionCommand( KMFilter *filter, KMHeaders *headers, 00502 KMMainWidget *main ); 00503 00504 public slots: 00505 void start(); 00506 00507 private: 00508 KMFilter *mFilter; 00509 KMHeaders *mHeaders; 00510 KMMainWidget *mMainWidget; 00511 }; 00512 00513 00514 class KMMailingListFilterCommand : public KMCommand 00515 { 00516 Q_OBJECT 00517 00518 public: 00519 KMMailingListFilterCommand( QWidget *parent, KMMessage *msg ); 00520 00521 private: 00522 virtual void execute(); 00523 }; 00524 00525 00533 class KMMenuCommand : public KMCommand 00534 { 00535 Q_OBJECT 00536 00537 public: 00538 static QPopupMenu* folderToPopupMenu(bool move, QObject *receiver, 00539 KMMenuToFolder *aMenuToFolder, QPopupMenu *menu ); 00540 00541 static QPopupMenu* makeFolderMenu(KMFolderNode* item, bool move, 00542 QObject *receiver, KMMenuToFolder *aMenuToFolder, QPopupMenu *menu ); 00543 }; 00544 00545 class KMCopyCommand : public KMMenuCommand 00546 { 00547 Q_OBJECT 00548 00549 public: 00550 KMCopyCommand( KMFolder* destFolder, 00551 const QPtrList<KMMsgBase> &msgList ); 00552 KMCopyCommand( KMFolder* destFolder, KMMessage *msg ); 00553 00554 private: 00555 virtual void execute(); 00556 00557 KMFolder *mDestFolder; 00558 QPtrList<KMMsgBase> mMsgList; 00559 }; 00560 00561 class KMMoveCommand : public KMMenuCommand 00562 { 00563 Q_OBJECT 00564 00565 public: 00566 KMMoveCommand( KMFolder* destFolder, const QPtrList<KMMsgBase> &msgList ); 00567 KMMoveCommand( KMFolder* destFolder, KMMessage * msg ); 00568 KMMoveCommand( KMFolder* destFolder, KMMsgBase * msgBase ); 00569 00570 public slots: 00571 void slotImapFolderCompleted(KMFolderImap *folder, bool success); 00572 void slotMsgAddedToDestFolder(KMFolder *folder, Q_UINT32 serNum); 00573 00574 private: 00575 virtual void execute(); 00576 00577 KMFolder *mDestFolder; 00578 QPtrList<KMMsgBase> mMsgList; 00579 // List of serial numbers that have to be transferred to a host. 00580 // Ticked off as they come in via msgAdded signals. 00581 QValueList<Q_UINT32> mLostBoys; 00582 }; 00583 00584 class KMDeleteMsgCommand : public KMMoveCommand 00585 { 00586 Q_OBJECT 00587 00588 public: 00589 KMDeleteMsgCommand( KMFolder* srcFolder, const QPtrList<KMMsgBase> &msgList ); 00590 KMDeleteMsgCommand( KMFolder* srcFolder, KMMessage * msg ); 00591 00592 private: 00593 static KMFolder * findTrashFolder( KMFolder * srcFolder ); 00594 }; 00595 00596 class KMUrlClickedCommand : public KMCommand 00597 { 00598 Q_OBJECT 00599 00600 public: 00601 KMUrlClickedCommand( const KURL &url, uint identity, 00602 KMReaderWin *readerWin, bool mHtmlPref, KMMainWidget *mainWidget = 0 ); 00603 00604 private: 00605 virtual void execute(); 00606 00607 KURL mUrl; 00608 uint mIdentity; 00609 KMReaderWin *mReaderWin; 00610 bool mHtmlPref; 00611 KMMainWidget *mMainWidget; 00612 }; 00613 00614 class KMLoadPartsCommand : public KMCommand 00615 { 00616 Q_OBJECT 00617 00618 public: 00619 KMLoadPartsCommand( QPtrList<partNode>& parts, KMMessage* msg ); 00620 KMLoadPartsCommand( partNode* node, KMMessage* msg ); 00621 00622 public slots: 00623 // Retrieve parts then calls execute 00624 void start(); 00625 void slotPartRetrieved( KMMessage* msg, QString partSpecifier ); 00626 00627 signals: 00628 void partsRetrieved(); 00629 00630 private: 00631 virtual void execute(); 00632 00633 QPtrList<partNode> mParts; 00634 int mNeedsRetrieval; 00635 KMMessage *mMsg; 00636 }; 00637 00638 #endif /*KMCommands_h*/
KDE Logo
This file is part of the documentation for kmail Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Jul 28 23:57:58 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003