• Skip to content
  • Skip to link menu
KDE 4.3 API Reference
  • KDE API Reference
  • kdelibs
  • Sitemap
  • Contact Us
 

KNewStuff

qasyncimage.cpp

Go to the documentation of this file.
00001 /*
00002     This file is part of KNewStuff2.
00003     Copyright (c) 2006, 2007 Josef Spillner <spillner@kde.org>
00004 
00005     This library is free software; you can redistribute it and/or
00006     modify it under the terms of the GNU Lesser General Public
00007     License as published by the Free Software Foundation; either
00008     version 2.1 of the License, or (at your option) any later version.
00009 
00010     This library is distributed in the hope that it will be useful,
00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013     Lesser General Public License for more details.
00014 
00015     You should have received a copy of the GNU Lesser General Public
00016     License along with this library.  If not, see <http://www.gnu.org/licenses/>.
00017 */
00018 
00019 #include "qasyncimage_p.h"
00020 
00021 #include <kio/job.h>
00022 #include <kio/scheduler.h>
00023 #include <kstandarddirs.h>
00024 #include <kapplication.h>
00025 #include <krandom.h>
00026 #include <kdebug.h>
00027 
00028 #include <QtCore/QFile>
00029 
00030 QAsyncImage::QAsyncImage(const QString& url, QObject* parent)
00031         : QObject(parent), QImage(), m_url(url)
00032 {
00033     if (!m_url.isEmpty()) {
00034         KIO::TransferJob *job = KIO::get(m_url, KIO::NoReload, KIO::HideProgressInfo);
00035         KIO::Scheduler::scheduleJob(job);
00036         connect(job, SIGNAL(result(KJob*)), SLOT(slotDownload(KJob*)));
00037         connect(job, SIGNAL(data(KIO::Job*, const QByteArray&)), SLOT(slotData(KIO::Job*, const QByteArray&)));
00038     }
00039 }
00040 
00041 void QAsyncImage::slotData(KIO::Job *job, const QByteArray& buf)
00042 {
00043     Q_UNUSED(job);
00044     m_buffer.append(buf);
00045 }
00046 
00047 void QAsyncImage::slotDownload(KJob *job)
00048 {
00049     //kDebug(550) << "DOWNLOAD";
00050     if (job->error()) {
00051         // XXX ???
00052         m_buffer.clear();
00053         return;
00054     }
00055     loadFromData(m_buffer);
00056     m_buffer.clear();
00057     emit signalLoaded(m_url, *this);
00058 }
00059 
00060 #include "qasyncimage_p.moc"

KNewStuff

Skip menu "KNewStuff"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdelibs

Skip menu "kdelibs"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • Kate
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.6.1
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal