kde-playground/kdepimlibs/mailtransport/transportjob.cpp
2015-04-14 21:49:29 +00:00

130 lines
2.6 KiB
C++

/*
Copyright (c) 2007 Volker Krause <vkrause@kde.org>
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
*/
#include "transportjob.h"
#include "transport.h"
#include <QBuffer>
#include <KLocalizedString>
using namespace MailTransport;
class MailTransport::TransportJob::Private
{
public:
Transport *transport;
QString sender;
QStringList to;
QStringList cc;
QStringList bcc;
QByteArray data;
QBuffer *buffer;
};
TransportJob::TransportJob( Transport *transport, QObject *parent )
: KCompositeJob( parent ), d( new Private )
{
d->transport = transport;
d->buffer = 0;
}
TransportJob::~ TransportJob()
{
delete d->transport;
delete d;
}
void TransportJob::setSender( const QString &sender )
{
d->sender = sender;
}
void TransportJob::setTo( const QStringList &to )
{
d->to = to;
}
void TransportJob::setCc( const QStringList &cc )
{
d->cc = cc;
}
void TransportJob::setBcc( const QStringList &bcc )
{
d->bcc = bcc;
}
void TransportJob::setData( const QByteArray &data )
{
d->data = data;
}
Transport *TransportJob::transport() const
{
return d->transport;
}
QString TransportJob::sender() const
{
return d->sender;
}
QStringList TransportJob::to() const
{
return d->to;
}
QStringList TransportJob::cc() const
{
return d->cc;
}
QStringList TransportJob::bcc() const
{
return d->bcc;
}
QByteArray TransportJob::data() const
{
return d->data;
}
QBuffer *TransportJob::buffer()
{
if ( !d->buffer ) {
d->buffer = new QBuffer( this );
d->buffer->setData( d->data );
d->buffer->open( QIODevice::ReadOnly );
Q_ASSERT( d->buffer->isOpen() );
}
return d->buffer;
}
void TransportJob::start()
{
if ( !transport()->isValid() ) {
setError( UserDefinedError );
setErrorText( i18n( "The outgoing account \"%1\" is not correctly configured.",
transport()->name() ) );
emitResult();
return;
}
doStart();
}