File indexing completed on 2024-05-12 05:22:32

0001 /*
0002  * This file is part of LibKGAPI library
0003  *
0004  * SPDX-FileCopyrightText: 2013 Daniel Vrátil <dvratil@redhat.com>
0005  *
0006  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007  */
0008 
0009 #include "staticmaptilefetchjob.h"
0010 #include "debug.h"
0011 #include "staticmapurl.h"
0012 
0013 #include <QNetworkAccessManager>
0014 #include <QNetworkReply>
0015 #include <QNetworkRequest>
0016 
0017 using namespace KGAPI2;
0018 
0019 class Q_DECL_HIDDEN StaticMapTileFetchJob::Private
0020 {
0021 public:
0022     QUrl url;
0023     QPixmap tilePixmap;
0024 };
0025 
0026 StaticMapTileFetchJob::StaticMapTileFetchJob(const StaticMapUrl &url, QObject *parent)
0027     : Job(parent)
0028     , d(new Private)
0029 {
0030     d->url = url.url();
0031 }
0032 
0033 StaticMapTileFetchJob::StaticMapTileFetchJob(const QUrl &url, QObject *parent)
0034     : Job(parent)
0035     , d(new Private)
0036 {
0037     d->url = url;
0038 }
0039 
0040 StaticMapTileFetchJob::~StaticMapTileFetchJob()
0041 {
0042     delete d;
0043 }
0044 
0045 QPixmap StaticMapTileFetchJob::tilePixmap() const
0046 {
0047     if (isRunning()) {
0048         qCWarning(KGAPIDebug) << "Called tilePixmap on a running job!";
0049         return QPixmap();
0050     }
0051 
0052     return d->tilePixmap;
0053 }
0054 
0055 void StaticMapTileFetchJob::start()
0056 {
0057     enqueueRequest(QNetworkRequest(d->url));
0058 }
0059 
0060 void StaticMapTileFetchJob::dispatchRequest(QNetworkAccessManager *accessManager,
0061                                             const QNetworkRequest &request,
0062                                             const QByteArray &data,
0063                                             const QString &contentType)
0064 {
0065     Q_UNUSED(data)
0066     Q_UNUSED(contentType)
0067 
0068     accessManager->get(request);
0069 }
0070 
0071 void StaticMapTileFetchJob::handleReply(const QNetworkReply *reply, const QByteArray &rawData)
0072 {
0073     Q_UNUSED(reply)
0074 
0075     d->tilePixmap.loadFromData(rawData);
0076     emitFinished();
0077 }
0078 
0079 #include "moc_staticmaptilefetchjob.cpp"