KNewStuff
qasyncpixmap.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "qasyncpixmap.h"
00022
00023 #include <kio/job.h>
00024 #include <kio/scheduler.h>
00025 #include <kstandarddirs.h>
00026 #include <kapplication.h>
00027 #include <krandom.h>
00028 #include <kdebug.h>
00029
00030 #include <QtCore/QFile>
00031
00032 QAsyncPixmap::QAsyncPixmap(const QString& url, QObject* parent)
00033 : QObject(parent), QPixmap(), m_url(url)
00034 {
00035 if (!m_url.isEmpty()) {
00036 KIO::TransferJob *job = KIO::get(m_url, KIO::NoReload, KIO::HideProgressInfo);
00037 KIO::Scheduler::scheduleJob(job);
00038 connect(job, SIGNAL(result(KJob*)), SLOT(slotDownload(KJob*)));
00039 connect(job, SIGNAL(data(KIO::Job*, const QByteArray&)), SLOT(slotData(KIO::Job*, const QByteArray&)));
00040 }
00041 }
00042
00043 void QAsyncPixmap::slotData(KIO::Job *job, const QByteArray& buf)
00044 {
00045 Q_UNUSED(job);
00046 m_buffer.append(buf);
00047 }
00048
00049 void QAsyncPixmap::slotDownload(KJob *job)
00050 {
00051
00052 if (job->error()) {
00053
00054 m_buffer.clear();
00055 return;
00056 }
00057 loadFromData(m_buffer);
00058 m_buffer.clear();
00059 emit signalLoaded(m_url, *this);
00060 }
00061
00062 #include "qasyncpixmap.moc"