mailtransport
transportjob.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "transportjob.h"
00021 #include "transport.h"
00022
00023 #include <klocale.h>
00024
00025 #include <qbuffer.h>
00026
00027 using namespace MailTransport;
00028
00029 class MailTransport::TransportJob::Private
00030 {
00031 public:
00032 Transport* transport;
00033 QString sender;
00034 QStringList to;
00035 QStringList cc;
00036 QStringList bcc;
00037 QByteArray data;
00038 QBuffer *buffer;
00039 };
00040
00041 TransportJob::TransportJob( Transport* transport, QObject * parent ) :
00042 KCompositeJob( parent ),
00043 d( new Private )
00044 {
00045 d->transport = transport;
00046 d->buffer = 0;
00047 }
00048
00049 TransportJob::~ TransportJob()
00050 {
00051 delete d->transport;
00052 delete d;
00053 }
00054
00055 void TransportJob::setSender(const QString & sender)
00056 {
00057 d->sender = sender;
00058 }
00059
00060 void TransportJob::setTo(const QStringList &to)
00061 {
00062 d->to = to;
00063 }
00064
00065 void TransportJob::setCc(const QStringList &cc)
00066 {
00067 d->cc = cc;
00068 }
00069
00070 void TransportJob::setBcc(const QStringList &bcc)
00071 {
00072 d->bcc = bcc;
00073 }
00074
00075 void TransportJob::setData(const QByteArray & data)
00076 {
00077 d->data = data;
00078 }
00079
00080 Transport* TransportJob::transport() const
00081 {
00082 return d->transport;
00083 }
00084
00085 QString TransportJob::sender() const
00086 {
00087 return d->sender;
00088 }
00089
00090 QStringList TransportJob::to() const
00091 {
00092 return d->to;
00093 }
00094
00095 QStringList TransportJob::cc() const
00096 {
00097 return d->cc;
00098 }
00099
00100 QStringList TransportJob::bcc() const
00101 {
00102 return d->bcc;
00103 }
00104
00105 QByteArray TransportJob::data() const
00106 {
00107 return d->data;
00108 }
00109
00110 QBuffer* TransportJob::buffer()
00111 {
00112 if ( !d->buffer ) {
00113 d->buffer = new QBuffer( this );
00114 d->buffer->setData( d->data );
00115 d->buffer->open( QIODevice::ReadOnly );
00116 Q_ASSERT( d->buffer->isOpen() );
00117 }
00118 return d->buffer;
00119 }
00120
00121 void TransportJob::start()
00122 {
00123 if ( !transport()->isValid() ) {
00124 setError( UserDefinedError );
00125 setErrorText( i18n("The mail transport \"%1\" is not correcty configured.",
00126 transport()->name() ) );
00127 emitResult();
00128 return;
00129 }
00130 doStart();
00131 }