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>
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 ), d( new Private )
00043 {
00044 d->transport = transport;
00045 d->buffer = 0;
00046 }
00047
00048 TransportJob::~ TransportJob()
00049 {
00050 delete d->transport;
00051 delete d;
00052 }
00053
00054 void TransportJob::setSender( const QString &sender )
00055 {
00056 d->sender = sender;
00057 }
00058
00059 void TransportJob::setTo( const QStringList &to )
00060 {
00061 d->to = to;
00062 }
00063
00064 void TransportJob::setCc( const QStringList &cc )
00065 {
00066 d->cc = cc;
00067 }
00068
00069 void TransportJob::setBcc( const QStringList &bcc )
00070 {
00071 d->bcc = bcc;
00072 }
00073
00074 void TransportJob::setData( const QByteArray &data )
00075 {
00076 d->data = data;
00077 }
00078
00079 Transport *TransportJob::transport() const
00080 {
00081 return d->transport;
00082 }
00083
00084 QString TransportJob::sender() const
00085 {
00086 return d->sender;
00087 }
00088
00089 QStringList TransportJob::to() const
00090 {
00091 return d->to;
00092 }
00093
00094 QStringList TransportJob::cc() const
00095 {
00096 return d->cc;
00097 }
00098
00099 QStringList TransportJob::bcc() const
00100 {
00101 return d->bcc;
00102 }
00103
00104 QByteArray TransportJob::data() const
00105 {
00106 return d->data;
00107 }
00108
00109 QBuffer *TransportJob::buffer()
00110 {
00111 if ( !d->buffer ) {
00112 d->buffer = new QBuffer( this );
00113 d->buffer->setData( d->data );
00114 d->buffer->open( QIODevice::ReadOnly );
00115 Q_ASSERT( d->buffer->isOpen() );
00116 }
00117 return d->buffer;
00118 }
00119
00120 void TransportJob::start()
00121 {
00122 if ( !transport()->isValid() ) {
00123 setError( UserDefinedError );
00124 setErrorText( i18n( "The mail transport \"%1\" is not correctly configured.",
00125 transport()->name() ) );
00126 emitResult();
00127 return;
00128 }
00129 doStart();
00130 }