00001
00002
00003 #ifndef KMCommands_h
00004 #define KMCommands_h
00005
00006 #include <qguardedptr.h>
00007 #include <qptrlist.h>
00008 #include <qvaluelist.h>
00009 #include <qvaluevector.h>
00010 #include <kio/job.h>
00011 #include "kmmsgbase.h"
00012 #include <mimelib/string.h>
00013 #include <kdepimmacros.h>
00014 #include <kservice.h>
00015
00016 class QPopupMenu;
00017 class KMainWindow;
00018 class KAction;
00019 class KProgressDialog;
00020 class KMFilter;
00021 class KMFolder;
00022 class KMFolderImap;
00023 class KMFolderNode;
00024 class KMHeaders;
00025 class KMMainWidget;
00026 class KMMessage;
00027 class KMMsgBase;
00028 class KMReaderWin;
00029 class partNode;
00030 namespace KIO { class Job; }
00031 namespace KMail { class Composer; }
00032 namespace GpgME { class Error; }
00033 namespace Kleo { class SpecialJob; }
00034
00035 typedef QMap<int,KMFolder*> KMMenuToFolder;
00036 typedef QMap<partNode*, KMMessage*> PartNodeMessageMap;
00037
00038 class KDE_EXPORT KMCommand : public QObject
00039 {
00040 Q_OBJECT
00041 friend class LaterDeleterWithCommandCompletion;
00042
00043 public:
00044 enum Result { Undefined, OK, Canceled, Failed };
00045
00046
00047 KMCommand( QWidget *parent = 0 );
00048
00049 KMCommand( QWidget *parent, const QPtrList<KMMsgBase> &msgList );
00050
00051 KMCommand( QWidget *parent, KMMsgBase *msgBase );
00052
00053 KMCommand( QWidget *parent, KMMessage *message );
00054 virtual ~KMCommand();
00055
00060 void keepFolderOpen( KMFolder *folder );
00061
00065 Result result();
00066
00067 public slots:
00068
00069 void start();
00070
00071
00072 void slotProgress( unsigned long done, unsigned long total );
00073
00074 signals:
00075 void messagesTransfered( KMCommand::Result result );
00078 void completed( KMCommand *command );
00079
00080 protected:
00081
00082 const QPtrList<KMMessage> retrievedMsgs() const;
00083
00084 KMMessage *retrievedMessage() const;
00085
00086 QWidget *parentWidget() const;
00087
00088 bool deletesItself() { return mDeletesItself; }
00094 void setDeletesItself( bool deletesItself )
00095 { mDeletesItself = deletesItself; }
00096
00097 bool emitsCompletedItself() { return mEmitsCompletedItself; }
00104 void setEmitsCompletedItself( bool emitsCompletedItself )
00105 { mEmitsCompletedItself = emitsCompletedItself; }
00106
00110 void setResult( Result result )
00111 { mResult = result; }
00112
00113 private:
00114
00115 virtual Result execute() = 0;
00116
00119 void transferSelectedMsgs();
00120
00121 private slots:
00123 virtual void slotStart();
00124
00125 void slotPostTransfer( KMCommand::Result result );
00127 void slotMsgTransfered(KMMessage* msg);
00129 void slotJobFinished();
00131 void slotTransferCancelled();
00132
00133 private:
00134
00135 KProgressDialog* mProgressDialog;
00136
00137 static int mCountJobs;
00138 int mCountMsgs;
00139 Result mResult;
00140 bool mDeletesItself : 1;
00141 bool mEmitsCompletedItself : 1;
00142
00143 QWidget *mParent;
00144 QPtrList<KMMessage> mRetrievedMsgs;
00145 QPtrList<KMMsgBase> mMsgList;
00146 QValueList<QGuardedPtr<KMFolder> > mFolders;
00147 };
00148
00149 class KDE_EXPORT KMMailtoComposeCommand : public KMCommand
00150 {
00151 Q_OBJECT
00152
00153 public:
00154 KMMailtoComposeCommand( const KURL &url, KMMessage *msg=0 );
00155
00156 private:
00157 virtual Result execute();
00158
00159 KURL mUrl;
00160 KMMessage *mMessage;
00161 };
00162
00163 class KDE_EXPORT KMMailtoReplyCommand : public KMCommand
00164 {
00165 Q_OBJECT
00166
00167 public:
00168 KMMailtoReplyCommand( QWidget *parent, const KURL &url,
00169 KMMessage *msg, const QString &selection );
00170
00171 private:
00172 virtual Result execute();
00173
00174 KURL mUrl;
00175 QString mSelection;
00176 };
00177
00178 class KDE_EXPORT KMMailtoForwardCommand : public KMCommand
00179 {
00180 Q_OBJECT
00181
00182 public:
00183 KMMailtoForwardCommand( QWidget *parent, const KURL &url,
00184 KMMessage *msg );
00185
00186 private:
00187 virtual Result execute();
00188
00189 KURL mUrl;
00190 };
00191
00192 class KDE_EXPORT KMMailtoAddAddrBookCommand : public KMCommand
00193 {
00194 Q_OBJECT
00195
00196 public:
00197 KMMailtoAddAddrBookCommand( const KURL &url, QWidget *parent );
00198
00199 private:
00200 virtual Result execute();
00201
00202 KURL mUrl;
00203 };
00204
00205 class KDE_EXPORT KMAddBookmarksCommand : public KMCommand
00206 {
00207 Q_OBJECT
00208
00209 public:
00210 KMAddBookmarksCommand( const KURL &url, QWidget *parent );
00211
00212 private:
00213 virtual Result execute();
00214
00215 KURL mUrl;
00216 };
00217
00218
00219 class KDE_EXPORT KMMailtoOpenAddrBookCommand : public KMCommand
00220 {
00221 Q_OBJECT
00222
00223 public:
00224 KMMailtoOpenAddrBookCommand( const KURL &url, QWidget *parent );
00225
00226 private:
00227 virtual Result execute();
00228
00229 KURL mUrl;
00230 };
00231
00232 class KDE_EXPORT KMUrlCopyCommand : public KMCommand
00233 {
00234 Q_OBJECT
00235
00236 public:
00237 KMUrlCopyCommand( const KURL &url, KMMainWidget *mainWidget = 0 );
00238
00239 private:
00240 virtual Result execute();
00241
00242 KURL mUrl;
00243 KMMainWidget *mMainWidget;
00244 };
00245
00246 class KDE_EXPORT KMUrlOpenCommand : public KMCommand
00247 {
00248 Q_OBJECT
00249
00250 public:
00251 KMUrlOpenCommand( const KURL &url, KMReaderWin *readerWin );
00252
00253 private:
00254 virtual Result execute();
00255
00256 KURL mUrl;
00257 KMReaderWin *mReaderWin;
00258 };
00259
00260 class KDE_EXPORT KMUrlSaveCommand : public KMCommand
00261 {
00262 Q_OBJECT
00263
00264 public:
00265 KMUrlSaveCommand( const KURL &url, QWidget *parent );
00266
00267 private slots:
00268 void slotUrlSaveResult( KIO::Job *job );
00269
00270 private:
00271 virtual Result execute();
00272
00273 KURL mUrl;
00274 };
00275
00276 class KDE_EXPORT KMEditMsgCommand : public KMCommand
00277 {
00278 Q_OBJECT
00279
00280 public:
00281 KMEditMsgCommand( QWidget *parent, KMMessage *msg );
00282
00283 private:
00284 virtual Result execute();
00285 };
00286
00287 class KDE_EXPORT KMShowMsgSrcCommand : public KMCommand
00288 {
00289 Q_OBJECT
00290
00291 public:
00292 KMShowMsgSrcCommand( QWidget *parent, KMMessage *msg,
00293 bool fixedFont );
00294 virtual Result execute();
00295
00296 private:
00297 bool mFixedFont;
00298 bool mMsgWasComplete;
00299 };
00300
00301 class KDE_EXPORT KMSaveMsgCommand : public KMCommand
00302 {
00303 Q_OBJECT
00304
00305 public:
00306 KMSaveMsgCommand( QWidget *parent, const QPtrList<KMMsgBase> &msgList );
00307 KMSaveMsgCommand( QWidget *parent, KMMessage * msg );
00308 KURL url();
00309
00310 private:
00311 virtual Result execute();
00312
00313 private slots:
00314 void slotSaveDataReq();
00315 void slotSaveResult(KIO::Job *job);
00317 void slotMessageRetrievedForSaving(KMMessage *msg);
00318
00319 private:
00320 static const int MAX_CHUNK_SIZE = 64*1024;
00321 KURL mUrl;
00322 QValueList<unsigned long> mMsgList;
00323 unsigned int mMsgListIndex;
00324 KMMessage *mStandAloneMessage;
00325 QByteArray mData;
00326 int mOffset;
00327 size_t mTotalSize;
00328 KIO::TransferJob *mJob;
00329 };
00330
00331 class KDE_EXPORT KMOpenMsgCommand : public KMCommand
00332 {
00333 Q_OBJECT
00334
00335 public:
00336 KMOpenMsgCommand( QWidget *parent, const KURL & url = KURL(),
00337 const QString & encoding = QString() );
00338
00339 private:
00340 virtual Result execute();
00341
00342 private slots:
00343 void slotDataArrived( KIO::Job *job, const QByteArray & data );
00344 void slotResult( KIO::Job *job );
00345
00346 private:
00347 static const int MAX_CHUNK_SIZE = 64*1024;
00348 KURL mUrl;
00349 DwString mMsgString;
00350 KIO::TransferJob *mJob;
00351 const QString mEncoding;
00352 };
00353
00354 class KDE_EXPORT KMSaveAttachmentsCommand : public KMCommand
00355 {
00356 Q_OBJECT
00357 public:
00362 KMSaveAttachmentsCommand( QWidget *parent, KMMessage *msg );
00367 KMSaveAttachmentsCommand( QWidget *parent, const QPtrList<KMMsgBase>& msgs );
00376 KMSaveAttachmentsCommand( QWidget *parent, QPtrList<partNode> &attachments,
00377 KMMessage *msg, bool encoded = false );
00378
00379 private slots:
00380 void slotSaveAll();
00381
00382 private:
00383 virtual Result execute();
00384 Result saveItem( partNode *node, const KURL& url );
00385
00386 private:
00387 PartNodeMessageMap mAttachmentMap;
00388 bool mImplicitAttachments;
00389 bool mEncoded;
00390 };
00391
00392 class KDE_EXPORT KMReplyToCommand : public KMCommand
00393 {
00394 Q_OBJECT
00395
00396 public:
00397 KMReplyToCommand( QWidget *parent, KMMessage *msg,
00398 const QString &selection = QString::null );
00399
00400 private:
00401 virtual Result execute();
00402
00403 private:
00404 QString mSelection;
00405 };
00406
00407 class KDE_EXPORT KMNoQuoteReplyToCommand : public KMCommand
00408 {
00409 Q_OBJECT
00410
00411 public:
00412 KMNoQuoteReplyToCommand( QWidget *parent, KMMessage *msg );
00413
00414 private:
00415 virtual Result execute();
00416 };
00417
00418 class KMReplyListCommand : public KMCommand
00419 {
00420 Q_OBJECT
00421
00422 public:
00423 KMReplyListCommand( QWidget *parent, KMMessage *msg,
00424 const QString &selection = QString::null );
00425
00426 private:
00427 virtual Result execute();
00428
00429 private:
00430 QString mSelection;
00431 };
00432
00433 class KDE_EXPORT KMReplyToAllCommand : public KMCommand
00434 {
00435 Q_OBJECT
00436
00437 public:
00438 KMReplyToAllCommand( QWidget *parent, KMMessage *msg,
00439 const QString &selection = QString::null );
00440
00441 private:
00442 virtual Result execute();
00443
00444 private:
00445 QString mSelection;
00446 };
00447
00448 class KDE_EXPORT KMReplyAuthorCommand : public KMCommand
00449 {
00450 Q_OBJECT
00451
00452 public:
00453 KMReplyAuthorCommand( QWidget *parent, KMMessage *msg,
00454 const QString &selection = QString::null );
00455
00456 private:
00457 virtual Result execute();
00458
00459 private:
00460 QString mSelection;
00461 };
00462
00463 class KDE_EXPORT KMForwardInlineCommand : public KMCommand
00464 {
00465 Q_OBJECT
00466
00467 public:
00468 KMForwardInlineCommand( QWidget *parent, const QPtrList<KMMsgBase> &msgList,
00469 uint identity = 0 );
00470 KMForwardInlineCommand( QWidget *parent, KMMessage * msg,
00471 uint identity = 0 );
00472
00473 private:
00474 virtual Result execute();
00475
00476 private:
00477 uint mIdentity;
00478 };
00479
00480 class KDE_EXPORT KMForwardAttachedCommand : public KMCommand
00481 {
00482 Q_OBJECT
00483
00484 public:
00485 KMForwardAttachedCommand( QWidget *parent, const QPtrList<KMMsgBase> &msgList,
00486 uint identity = 0, KMail::Composer *win = 0 );
00487 KMForwardAttachedCommand( QWidget *parent, KMMessage * msg,
00488 uint identity = 0, KMail::Composer *win = 0 );
00489
00490 private:
00491 virtual Result execute();
00492
00493 uint mIdentity;
00494 QGuardedPtr<KMail::Composer> mWin;
00495 };
00496
00497 class KDE_EXPORT KMForwardDigestCommand : public KMCommand
00498 {
00499 Q_OBJECT
00500
00501 public:
00502 KMForwardDigestCommand( QWidget *parent, const QPtrList<KMMsgBase> &msgList,
00503 uint identity = 0, KMail::Composer *win = 0 );
00504 KMForwardDigestCommand( QWidget *parent, KMMessage * msg,
00505 uint identity = 0, KMail::Composer *win = 0 );
00506
00507 private:
00508 virtual Result execute();
00509
00510 uint mIdentity;
00511 QGuardedPtr<KMail::Composer> mWin;
00512 };
00513
00514 class KDE_EXPORT KMRedirectCommand : public KMCommand
00515 {
00516 Q_OBJECT
00517
00518 public:
00519 KMRedirectCommand( QWidget *parent, KMMessage *msg );
00520
00521 private:
00522 virtual Result execute();
00523 };
00524
00525 class KDE_EXPORT KMPrintCommand : public KMCommand
00526 {
00527 Q_OBJECT
00528
00529 public:
00530 KMPrintCommand( QWidget *parent, KMMessage *msg,
00531 bool htmlOverride=false,
00532 bool htmlLoadExtOverride=false,
00533 bool useFixedFont = false,
00534 const QString & encoding = QString() );
00535
00536 private:
00537 virtual Result execute();
00538
00539 bool mHtmlOverride;
00540 bool mHtmlLoadExtOverride;
00541 bool mUseFixedFont;
00542 QString mEncoding;
00543 };
00544
00545 class KDE_EXPORT KMSetStatusCommand : public KMCommand
00546 {
00547 Q_OBJECT
00548
00549 public:
00550
00551 KMSetStatusCommand( KMMsgStatus status, const QValueList<Q_UINT32> &,
00552 bool toggle=false );
00553
00554 private:
00555 virtual Result execute();
00556
00557 KMMsgStatus mStatus;
00558 QValueList<Q_UINT32> mSerNums;
00559 QValueList<int> mIds;
00560 bool mToggle;
00561 };
00562
00563 class KDE_EXPORT KMFilterCommand : public KMCommand
00564 {
00565 Q_OBJECT
00566
00567 public:
00568 KMFilterCommand( const QCString &field, const QString &value );
00569
00570 private:
00571 virtual Result execute();
00572
00573 QCString mField;
00574 QString mValue;
00575 };
00576
00577
00578 class KDE_EXPORT KMFilterActionCommand : public KMCommand
00579 {
00580 Q_OBJECT
00581
00582 public:
00583 KMFilterActionCommand( QWidget *parent,
00584 const QPtrList<KMMsgBase> &msgList,
00585 KMFilter *filter );
00586
00587 private:
00588 virtual Result execute();
00589
00590 KMFilter *mFilter;
00591 };
00592
00593
00594 class KDE_EXPORT KMMetaFilterActionCommand : public QObject
00595 {
00596 Q_OBJECT
00597
00598 public:
00599 KMMetaFilterActionCommand( KMFilter *filter, KMHeaders *headers,
00600 KMMainWidget *main );
00601
00602 public slots:
00603 void start();
00604
00605 private:
00606 KMFilter *mFilter;
00607 KMHeaders *mHeaders;
00608 KMMainWidget *mMainWidget;
00609 };
00610
00611 class KDE_EXPORT FolderShortcutCommand : public QObject
00612 {
00613 Q_OBJECT
00614
00615 public:
00616 FolderShortcutCommand( KMMainWidget* mainwidget, KMFolder *folder );
00617 ~FolderShortcutCommand();
00618
00619 public slots:
00620 void start();
00624 void setAction( KAction* );
00625
00626 private:
00627 KMMainWidget *mMainWidget;
00628 KMFolder *mFolder;
00629 KAction *mAction;
00630 };
00631
00632
00633 class KDE_EXPORT KMMailingListFilterCommand : public KMCommand
00634 {
00635 Q_OBJECT
00636
00637 public:
00638 KMMailingListFilterCommand( QWidget *parent, KMMessage *msg );
00639
00640 private:
00641 virtual Result execute();
00642 };
00643
00644
00652 class KDE_EXPORT KMMenuCommand : public KMCommand
00653 {
00654 Q_OBJECT
00655
00656 public:
00657 static void folderToPopupMenu(bool move, QObject *receiver,
00658 KMMenuToFolder *aMenuToFolder, QPopupMenu *menu );
00659
00660 static void makeFolderMenu(KMFolderNode* item, bool move,
00661 QObject *receiver, KMMenuToFolder *aMenuToFolder, QPopupMenu *menu );
00662 };
00663
00664 class KDE_EXPORT KMCopyCommand : public KMMenuCommand
00665 {
00666 Q_OBJECT
00667
00668 public:
00669 KMCopyCommand( KMFolder* destFolder,
00670 const QPtrList<KMMsgBase> &msgList );
00671 KMCopyCommand( KMFolder* destFolder, KMMessage *msg );
00672
00673 protected slots:
00674 void slotMsgAdded( KMFolder*, Q_UINT32 );
00675
00676 void slotFolderComplete();
00677
00678 private:
00679 virtual Result execute();
00680
00681 KMFolder *mDestFolder;
00682 QPtrList<KMMsgBase> mMsgList;
00683
00684
00685 QValueList<Q_UINT32> mWaitingForMsgs;
00686 };
00687
00688 namespace KPIM {
00689 class ProgressItem;
00690 }
00691 class KDE_EXPORT KMMoveCommand : public KMMenuCommand
00692 {
00693 Q_OBJECT
00694
00695 public:
00696 KMMoveCommand( KMFolder* destFolder, const QPtrList<KMMsgBase> &msgList );
00697 KMMoveCommand( KMFolder* destFolder, KMMessage * msg );
00698 KMMoveCommand( KMFolder* destFolder, KMMsgBase * msgBase );
00699 KMFolder* destFolder() const { return mDestFolder; }
00700
00701 public slots:
00702 void slotImapFolderCompleted(KMFolderImap *folder, bool success);
00703 void slotMsgAddedToDestFolder(KMFolder *folder, Q_UINT32 serNum);
00704 void slotMoveCanceled();
00705
00706 protected:
00707
00708 KMMoveCommand( Q_UINT32 sernum );
00709 void setDestFolder( KMFolder* folder ) { mDestFolder = folder; }
00710 void addMsg( KMMsgBase *msg ) { mMsgList.append( msg ); }
00711 QValueVector<KMFolder*> mOpenedFolders;
00712
00713 private:
00714 virtual Result execute();
00715 void completeMove( Result result );
00716
00717 KMFolder *mDestFolder;
00718 QPtrList<KMMsgBase> mMsgList;
00719
00720
00721 QValueList<Q_UINT32> mLostBoys;
00722 KPIM::ProgressItem *mProgressItem;
00723 bool mCompleteWithAddedMsg;
00724 };
00725
00726 class KDE_EXPORT KMDeleteMsgCommand : public KMMoveCommand
00727 {
00728 Q_OBJECT
00729
00730 public:
00731 KMDeleteMsgCommand( KMFolder* srcFolder, const QPtrList<KMMsgBase> &msgList );
00732 KMDeleteMsgCommand( KMFolder* srcFolder, KMMessage * msg );
00733 KMDeleteMsgCommand( Q_UINT32 sernum );
00734
00735 private:
00736 static KMFolder * findTrashFolder( KMFolder * srcFolder );
00737
00738 };
00739
00740 class KDE_EXPORT KMUrlClickedCommand : public KMCommand
00741 {
00742 Q_OBJECT
00743
00744 public:
00745 KMUrlClickedCommand( const KURL &url, uint identity,
00746 KMReaderWin *readerWin, bool mHtmlPref, KMMainWidget *mainWidget = 0 );
00747
00748 private:
00749 virtual Result execute();
00750
00751 KURL mUrl;
00752 uint mIdentity;
00753 KMReaderWin *mReaderWin;
00754 bool mHtmlPref;
00755 KMMainWidget *mMainWidget;
00756 };
00757
00758 class KDE_EXPORT KMLoadPartsCommand : public KMCommand
00759 {
00760 Q_OBJECT
00761
00762 public:
00763 KMLoadPartsCommand( QPtrList<partNode>& parts, KMMessage* msg );
00764 KMLoadPartsCommand( partNode* node, KMMessage* msg );
00765 KMLoadPartsCommand( PartNodeMessageMap& partMap );
00766
00767 public slots:
00768 void slotPartRetrieved( KMMessage* msg, QString partSpecifier );
00769
00770 signals:
00771 void partsRetrieved();
00772
00773 private:
00774
00775 virtual void slotStart();
00776
00777 virtual Result execute();
00778
00779 int mNeedsRetrieval;
00780 PartNodeMessageMap mPartMap;
00781 };
00782
00783 class KDE_EXPORT KMResendMessageCommand : public KMCommand
00784 {
00785 Q_OBJECT
00786
00787 public:
00788 KMResendMessageCommand( QWidget *parent, KMMessage *msg=0 );
00789
00790 private:
00791 virtual Result execute();
00792 };
00793
00794 class KDE_EXPORT KMMailingListCommand : public KMCommand
00795 {
00796 Q_OBJECT
00797 public:
00798 KMMailingListCommand( QWidget *parent, KMFolder *parent );
00799 private:
00800 virtual Result execute();
00801 private slots:
00802 void commandCompleted( KMCommand *command );
00803 protected:
00804 virtual KURL::List urls() const =0;
00805 protected:
00806 KMFolder *mFolder;
00807 };
00808
00809 class KDE_EXPORT KMMailingListPostCommand : public KMMailingListCommand
00810 {
00811 Q_OBJECT
00812 public:
00813 KMMailingListPostCommand( QWidget *parent, KMFolder *parent );
00814 protected:
00815 virtual KURL::List urls() const;
00816 };
00817
00818 class KDE_EXPORT KMMailingListSubscribeCommand : public KMMailingListCommand
00819 {
00820 Q_OBJECT
00821 public:
00822 KMMailingListSubscribeCommand( QWidget *parent, KMFolder *parent );
00823 protected:
00824 virtual KURL::List urls() const;
00825 };
00826
00827 class KDE_EXPORT KMMailingListUnsubscribeCommand : public KMMailingListCommand
00828 {
00829 Q_OBJECT
00830 public:
00831 KMMailingListUnsubscribeCommand( QWidget *parent, KMFolder *parent );
00832 protected:
00833 virtual KURL::List urls() const;
00834 };
00835
00836 class KDE_EXPORT KMMailingListArchivesCommand : public KMMailingListCommand
00837 {
00838 Q_OBJECT
00839 public:
00840 KMMailingListArchivesCommand( QWidget *parent, KMFolder *parent );
00841 protected:
00842 virtual KURL::List urls() const;
00843 };
00844
00845 class KDE_EXPORT KMMailingListHelpCommand : public KMMailingListCommand
00846 {
00847 Q_OBJECT
00848 public:
00849 KMMailingListHelpCommand( QWidget *parent, KMFolder *parent );
00850 protected:
00851 virtual KURL::List urls() const;
00852 };
00853
00854 class KDE_EXPORT KMIMChatCommand : public KMCommand
00855 {
00856 Q_OBJECT
00857
00858 public:
00859 KMIMChatCommand( const KURL &url, KMMessage *msg=0 );
00860
00861 private:
00868 virtual Result execute();
00869
00870 KURL mUrl;
00871 KMMessage *mMessage;
00872 };
00873
00874 class KDE_EXPORT KMHandleAttachmentCommand : public KMCommand
00875 {
00876 Q_OBJECT
00877
00878 public:
00880 enum AttachmentAction
00881 {
00882 Open = 1,
00883 OpenWith = 2,
00884 View = 3,
00885 Save = 4,
00886 Properties = 5,
00887 ChiasmusEncrypt = 6
00888 };
00898 KMHandleAttachmentCommand( partNode* node, KMMessage* msg, int atmId,
00899 const QString& atmName, AttachmentAction action, KService::Ptr offer, QWidget* parent );
00900
00901
00902 signals:
00903 void showAttachment( int id, const QString& name );
00904
00905 private:
00906 virtual Result execute();
00907
00908 QString createAtmFileLink() const;
00909
00911 KService::Ptr getServiceOffer();
00912
00914 void atmOpen();
00915
00917 void atmOpenWith();
00918
00923 void atmView();
00924
00926 void atmSave();
00927
00929 void atmProperties();
00930
00932 void atmEncryptWithChiasmus();
00933
00934 private slots:
00936 virtual void slotStart();
00937
00942 void slotPartComplete();
00943
00944 void slotAtmDecryptWithChiasmusResult( const GpgME::Error &, const QVariant & );
00945 void slotAtmDecryptWithChiasmusUploadResult( KIO::Job * );
00946
00947 private:
00948 partNode* mNode;
00949 KMMessage* mMsg;
00950 int mAtmId;
00951 const QString& mAtmName;
00952 AttachmentAction mAction;
00953 KService::Ptr mOffer;
00954 Kleo::SpecialJob *mJob;
00955
00956 };
00957
00958 #endif