// Copyright (C) 2014 Canonical Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #include "qgeomapreplymapbox.h" #include QGeoMapReplyMapbox::QGeoMapReplyMapbox(QNetworkReply *reply, const QGeoTileSpec &spec, const QString &format, QObject *parent) : QGeoTiledMapReply(spec, parent), m_format (format) { if (!reply) { setError(UnknownError, QStringLiteral("Null reply")); return; } connect(reply, &QNetworkReply::finished, this, &QGeoMapReplyMapbox::networkReplyFinished); connect(reply, &QNetworkReply::errorOccurred, this, &QGeoMapReplyMapbox::networkReplyError); connect(this, &QGeoTiledMapReply::aborted, reply, &QNetworkReply::abort); connect(this, &QObject::destroyed, reply, &QObject::deleteLater); } QGeoMapReplyMapbox::~QGeoMapReplyMapbox() { } void QGeoMapReplyMapbox::networkReplyFinished() { QNetworkReply *reply = static_cast(sender()); reply->deleteLater(); if (reply->error() != QNetworkReply::NoError) return; setMapImageData(reply->readAll()); setMapImageFormat(m_format); setFinished(true); } void QGeoMapReplyMapbox::networkReplyError(QNetworkReply::NetworkError error) { QNetworkReply *reply = static_cast(sender()); reply->deleteLater(); if (error == QNetworkReply::OperationCanceledError) setFinished(true); else setError(QGeoTiledMapReply::CommunicationError, reply->errorString()); }