Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qgeomapreplyohosmapkit.cpp
Go to the documentation of this file.
1
// Copyright (C) 2025 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4
#
include
<
QtCore
/
qmetaobject
.
h
>
5
#
include
<
qgeomapreplyohosmapkit
.
h
>
6
#
include
<
qohosmapkitcommon
.
h
>
7
8
QT_BEGIN_NAMESPACE
9
10
namespace
{
11
12
const
char
pngSignature
[] =
"\x89PNG\r\n\x1a\n"
;
13
14
class
QGeoMapReplyOhosMapKit
:
public
QGeoTiledMapReply
15
{
16
public
:
17
explicit
QGeoMapReplyOhosMapKit
(
18
QNetworkReply *reply,
const
QGeoTileSpec &spec, QObject *parent);
19
20
private
:
21
void
onNetworkReplyFinished();
22
void
onNetworkReplyError(QNetworkReply::NetworkError error);
23
};
24
25
QGeoMapReplyOhosMapKit
::
QGeoMapReplyOhosMapKit
(
26
QNetworkReply *reply,
const
QGeoTileSpec &spec, QObject *parent)
27
:
QGeoTiledMapReply
(
spec
,
parent
)
28
{
29
if
(reply ==
nullptr
) {
30
setError(QGeoTiledMapReply::UnknownError, OhosMapKit::msgNullReply());
31
return
;
32
}
33
34
connect(reply, &QNetworkReply::finished,
this
, &
QGeoMapReplyOhosMapKit
::onNetworkReplyFinished);
35
connect(reply, &QNetworkReply::errorOccurred,
this
, &QGeoMapReplyOhosMapKit::onNetworkReplyError);
36
connect(
this
, &QGeoTiledMapReply::aborted, reply, &QNetworkReply::abort);
37
connect(
this
, &QObject::destroyed, reply, &QObject::deleteLater);
38
}
39
40
void
QGeoMapReplyOhosMapKit
::onNetworkReplyFinished()
41
{
42
auto
*reply =
static_cast
<QNetworkReply *>(sender());
43
reply->deleteLater();
44
45
if
(reply->error() != QNetworkReply::NoError) {
46
setError(
47
QGeoTiledMapReply::CommunicationError,
48
OhosMapKit::msgReplyError(reply->errorString()));
49
return
;
50
}
51
52
const
auto
imageData = reply->readAll();
53
54
if
(imageData.startsWith(
pngSignature
)) {
55
setMapImageFormat(QStringLiteral(
"png"
));
56
setMapImageData(imageData);
57
setFinished(
true
);
58
}
else
{
59
setError(QGeoTiledMapReply::ParseError, tr(
"Invalid format of tile data"
));
60
}
61
}
62
63
void
QGeoMapReplyOhosMapKit
::onNetworkReplyError(QNetworkReply::NetworkError error)
64
{
65
auto
*reply =
static_cast
<QNetworkReply *>(sender());
66
reply->deleteLater();
67
if
(error == QNetworkReply::OperationCanceledError)
68
setFinished(
true
);
69
else
70
setError(QGeoTiledMapReply::CommunicationError, reply->errorString());
71
}
72
73
}
74
75
QGeoTiledMapReply
*
makeGeoTiledMapReplyOhosMapKit
(
76
QNetworkReply *reply,
const
QGeoTileSpec &spec, QObject *parent)
77
{
78
return
new
QGeoMapReplyOhosMapKit
(reply, spec, parent);
79
}
80
81
QT_END_NAMESPACE
QT_BEGIN_NAMESPACE::QGeoMapReplyOhosMapKit
Definition
qgeomapreplyohosmapkit.cpp:15
QT_BEGIN_NAMESPACE::QGeoMapReplyOhosMapKit::QGeoMapReplyOhosMapKit
QGeoMapReplyOhosMapKit(QNetworkReply *reply, const QGeoTileSpec &spec, QObject *parent)
Definition
qgeomapreplyohosmapkit.cpp:25
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
QT_BEGIN_NAMESPACE::pngSignature
const char pngSignature[]
Definition
qgeomapreplyohosmapkit.cpp:12
makeGeoTiledMapReplyOhosMapKit
QGeoTiledMapReply * makeGeoTiledMapReplyOhosMapKit(QNetworkReply *reply, const QGeoTileSpec &spec, QObject *parent)
Definition
qgeomapreplyohosmapkit.cpp:75
qtlocation
src
plugins
geoservices
ohosmapkit
qgeomapreplyohosmapkit.cpp
Generated on
for Qt by
1.18.0