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 #pragma once 0010 0011 #include "job.h" 0012 #include "kgapimaps_export.h" 0013 0014 #include <QPixmap> 0015 0016 /** 0017 * @brief A job to fetch a single map tile described by a StaticMapUrl 0018 * 0019 * @author Daniel Vrátil <dvratil@redhat.com> 0020 * @since 2.0 0021 */ 0022 namespace KGAPI2 0023 { 0024 0025 class StaticMapUrl; 0026 0027 class KGAPIMAPS_EXPORT StaticMapTileFetchJob : public KGAPI2::Job 0028 { 0029 Q_OBJECT 0030 0031 public: 0032 /** 0033 * @brief Constructs a job that will fetch a map tile described by given 0034 * @p url. 0035 * 0036 * @param url 0037 * @param parent 0038 */ 0039 explicit StaticMapTileFetchJob(const StaticMapUrl &url, QObject *parent = nullptr); 0040 0041 /** 0042 * @overload StaticMapTileFetchJob(StaticMapUrl,QObject*) 0043 * 0044 * @param url 0045 * @param parent 0046 */ 0047 explicit StaticMapTileFetchJob(const QUrl &url, QObject *parent = nullptr); 0048 0049 /** 0050 * @brief Destructor 0051 */ 0052 ~StaticMapTileFetchJob() override; 0053 0054 /** 0055 * @brief Pixmap with the fetched map tile. 0056 * 0057 * This method can only be called after the job has emitted Job::finished. 0058 */ 0059 [[nodiscard]] QPixmap tilePixmap() const; 0060 0061 protected: 0062 /** 0063 * @brief KGAPI2::Job::start implementation 0064 */ 0065 void start() override; 0066 0067 /** 0068 * @brief KGAPI2::Job::dispatchRequest implementation 0069 * 0070 * @param accessManager 0071 * @param request 0072 * @param data 0073 * @param contentType 0074 */ 0075 void dispatchRequest(QNetworkAccessManager *accessManager, const QNetworkRequest &request, const QByteArray &data, const QString &contentType) override; 0076 0077 /** 0078 * @brief KGAPI2::Job::handleReply 0079 * 0080 * @param reply 0081 * @param rawData 0082 */ 0083 void handleReply(const QNetworkReply *reply, const QByteArray &rawData) override; 0084 0085 private: 0086 class Private; 0087 Private *const d; 0088 friend class Private; 0089 }; 0090 0091 } // namespace KGAPI2