21 Q_MOC_INCLUDE(
"QGCTile.h")
23 Q_PROPERTY(QString name READ name NOTIFY
nameChanged)
24 Q_PROPERTY(QString mapTypeStr READ mapTypeStr CONSTANT)
25 Q_PROPERTY(
double topleftLon READ topleftLon CONSTANT)
26 Q_PROPERTY(
double topleftLat READ topleftLat CONSTANT)
27 Q_PROPERTY(
double bottomRightLon READ bottomRightLon CONSTANT)
28 Q_PROPERTY(
double bottomRightLat READ bottomRightLat CONSTANT)
29 Q_PROPERTY(
int minZoom READ minZoom CONSTANT)
30 Q_PROPERTY(
int maxZoom READ maxZoom CONSTANT)
44 Q_PROPERTY(QDateTime creationDate READ creationDate CONSTANT)
46 Q_PROPERTY(
bool defaultSet READ defaultSet CONSTANT)
47 Q_PROPERTY(quint64
id READ
id CONSTANT)
52 Q_PROPERTY(
bool selected READ selected WRITE setSelected NOTIFY
selectedChanged)
58 Q_INVOKABLE
void createDownloadTask();
59 Q_INVOKABLE
void resumeDownloadTask();
60 Q_INVOKABLE
void cancelDownloadTask();
62 const QString &name()
const {
return _name; }
63 const QString &mapTypeStr()
const {
return _mapTypeStr; }
65 double topleftLat()
const {
return _topleftLat; }
66 double topleftLon()
const {
return _topleftLon; }
67 double bottomRightLat()
const {
return _bottomRightLat; }
68 double bottomRightLon()
const {
return _bottomRightLon; }
70 quint32 totalTileCount()
const {
return _totalTileCount; }
71 QString totalTileCountStr()
const;
72 quint64 totalTilesSize()
const {
return _totalTileSize; }
73 QString totalTilesSizeStr()
const;
74 quint32 uniqueTileCount()
const {
return _uniqueTileCount; }
75 QString uniqueTileCountStr()
const;
76 quint64 uniqueTileSize()
const {
return _uniqueTileSize; }
77 QString uniqueTileSizeStr()
const;
78 quint32 savedTileCount()
const {
return _savedTileCount; }
79 QString savedTileCountStr()
const;
80 quint64 savedTileSize()
const {
return _savedTileSize; }
81 QString savedTileSizeStr()
const;
83 QString downloadStatus()
const;
84 int minZoom()
const {
return _minZoom; }
85 int maxZoom()
const {
return _maxZoom; }
86 const QDateTime &creationDate()
const {
return _creationDate; }
87 quint64 id()
const {
return _id; }
88 const QString &type()
const {
return _type; }
89 bool complete()
const {
return (_defaultSet || (_totalTileCount <= _savedTileCount)); }
90 bool defaultSet()
const {
return _defaultSet; }
91 bool deleting()
const {
return _deleting; }
92 bool downloading()
const {
return _downloading; }
93 quint32 errorCount()
const {
return _errorCount; }
94 QString errorCountStr()
const;
95 bool selected()
const {
return _selected; }
98 void setSelected(
bool sel);
99 void setName(
const QString &name) {
if (name != _name) { _name = name; emit
nameChanged(); } }
101 void setMapTypeStr(
const QString &typeStr) { _mapTypeStr = typeStr; }
102 void setTopleftLat(
double lat) { _topleftLat = lat; }
103 void setTopleftLon(
double lon) { _topleftLon = lon; }
104 void setBottomRightLat(
double lat) { _bottomRightLat = lat; }
105 void setBottomRightLon(
double lon) { _bottomRightLon = lon; }
107 void setUniqueTileCount(quint32 num) {
if (num != _uniqueTileCount) { _uniqueTileCount = num; emit
uniqueTileCountChanged(); } }
108 void setTotalTileCount(quint32 num) {
if (num != _totalTileCount) { _totalTileCount = num; emit
totalTileCountChanged(); } }
109 void setSavedTileCount(quint32 num) {
if (num != _savedTileCount) { _savedTileCount = num; emit
savedTileCountChanged(); } }
110 void setUniqueTileSize(quint64 size) {
if (size != _uniqueTileSize) { _uniqueTileSize = size; emit
uniqueTileSizeChanged(); } }
111 void setTotalTileSize(quint64 size) {
if (size != _totalTileSize) { _totalTileSize = size; emit
totalTilesSizeChanged(); } }
112 void setSavedTileSize(quint64 size) {
if (size != _savedTileSize) { _savedTileSize = size; emit
savedTileSizeChanged(); } }
114 void setMinZoom(
int zoom) { _minZoom = zoom; }
115 void setMaxZoom(
int zoom) { _maxZoom = zoom; }
116 void setCreationDate(
const QDateTime &date) { _creationDate = date; }
117 void setId(quint64
id) { _id = id; }
118 void setType(
const QString &type) { _type = type; }
119 void setDefaultSet(
bool def) { _defaultSet = def; }
120 void setDeleting(
bool del) {
if (del != _deleting) { _deleting = del; emit
deletingChanged(); } }
121 void setDownloading(
bool down) {
if (down != _downloading) { _downloading = down; emit
downloadingChanged(); } }
122 void setErrorCount(quint32 count) {
if (count != _errorCount) { _errorCount = count; emit
errorCountChanged(); } }
139 void _tileListFetched(
const QQueue<QGCTile*> &tiles);
140 void _networkReplyFinished();
141 void _networkReplyError(QNetworkReply::NetworkError
error);
144 void _prepareDownload();
145 void _doneWithDownload();
149 QString _type = QStringLiteral(
"Invalid");
151 double _topleftLat = 0.;
152 double _topleftLon = 0.;
153 double _bottomRightLat = 0.;
154 double _bottomRightLon = 0.;
155 quint32 _totalTileCount = 0;
156 quint64 _totalTileSize = 0;
157 quint32 _uniqueTileCount = 0;
158 quint64 _uniqueTileSize = 0;
159 quint32 _savedTileCount = 0;
160 quint64 _savedTileSize = 0;
161 quint32 _errorCount = 0;
164 bool _defaultSet =
false;
165 bool _deleting =
false;
166 bool _downloading =
false;
167 bool _noMoreTiles =
false;
168 bool _batchRequested =
false;
169 bool _selected =
false;
170 bool _cancelPending =
false;
171 QDateTime _creationDate;
173 QHash<QString, QNetworkReply*> _replies;
174 QMutex _repliesMutex;
175 QQueue<QGCTile*> _tilesToDownload;
177 QNetworkAccessManager *_networkManager =
nullptr;
179 static constexpr uint32_t kTileBatchSize = 256;