mirror of
https://bitbucket.org/smil3y/kde-playground.git
synced 2025-02-23 10:22:50 +00:00
130 lines
2.6 KiB
C++
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();
|
|
}
|