kmail
kmsender.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef kmsender_h
00021 #define kmsender_h
00022 #include "messagesender.h"
00023
00024 #ifndef KDE_USE_FINAL
00025 # ifndef REALLY_WANT_KMSENDER
00026 # error Do not include kmsender.h, but messagesender.h.
00027 # endif
00028 #endif
00029
00030 #include <tqcstring.h>
00031 #include <tqstring.h>
00032 #include <tqstringlist.h>
00033 #include <tqmap.h>
00034 #include <tqobject.h>
00035 #include <tdeversion.h>
00036
00037 class KMMessage;
00038 class KMFolder;
00039 class KMFolderMgr;
00040 class TDEConfig;
00041 class TDEProcess;
00042 class KMSendProc;
00043 class KMSendSendmail;
00044 class KMSendSMTP;
00045 class TQStrList;
00046 class KMTransportInfo;
00047 class KMPrecommand;
00048
00049 namespace KPIM {
00050 class ProgressItem;
00051 }
00052
00053 class KMSender: public TQObject, public KMail::MessageSender
00054 {
00055 Q_OBJECT
00056
00057 friend class ::KMSendProc;
00058 friend class ::KMSendSendmail;
00059 friend class ::KMSendSMTP;
00060
00061 public:
00062 KMSender();
00063 ~KMSender();
00064
00065 protected:
00073 bool doSend(KMMessage* msg, short sendNow);
00074
00078 bool doSendQueued( const TQString& transport );
00079
00080 private:
00082 bool sending() const { return mSendInProgress; }
00083
00084 public:
00087 bool sendImmediate() const { return mSendImmediate; }
00088 void setSendImmediate(bool);
00089
00092 bool sendQuotedPrintable() const { return mSendQuotedPrintable; }
00093 void setSendQuotedPrintable(bool);
00094
00095 private:
00097 KMTransportInfo * transportInfo() { return mTransportInfo; }
00098
00099 public:
00101 void readConfig();
00102
00104 void writeConfig(bool withSync=true);
00105
00106 private:
00108 void setStatusMsg(const TQString&);
00109
00111 void setStatusByLink(const KMMessage *aMsg);
00112
00114 void emitProgressInfo( int currentFileProgress );
00115
00116 private slots:
00118 void slotPrecommandFinished(bool);
00119
00120 void slotIdle();
00121
00123 void slotAbortSend();
00124
00126 void sendProcStarted(bool success);
00127
00129 void outboxMsgAdded(int idx);
00130
00131 private:
00133 void doSendMsg();
00134
00136 void doSendMsgAux();
00137
00139 void cleanup();
00140
00144 bool settingsOk() const;
00145
00148 KMSendProc* createSendProcFromString( const TQString & transport );
00149
00150 bool runPrecommand( const TQString & cmd );
00151
00152 private:
00153 bool mSendImmediate;
00154 bool mSendQuotedPrintable;
00155 KMTransportInfo *mTransportInfo;
00156 KMPrecommand *mPrecommand;
00157
00158 TQString mCustomTransport;
00159 bool mSentOk, mSendAborted;
00160 TQString mErrorMsg;
00161 KMSendProc *mSendProc;
00162 TQString mMethodStr;
00163 bool mSendProcStarted;
00164 bool mSendInProgress;
00165 KMFolder *mOutboxFolder;
00166 KMFolder *mSentFolder;
00167 KMMessage * mCurrentMsg;
00168 KPIM::ProgressItem* mProgressItem;
00169 int mSentMessages, mTotalMessages;
00170 int mSentBytes, mTotalBytes;
00171 int mFailedMessages;
00172 TQMap<TQString,TQString> mPasswdCache;
00173 };
00174
00175 #endif
|