QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
QGCMapTasks.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QObject>
4#include <QtCore/QQueue>
5#include <QtCore/QString>
6
7#include "QGCCacheTile.h"
8#include "QGCCachedTileSet.h"
9#include "QGCTileCacheTypes.h"
10#include "QGCTile.h"
11
12class QGCMapTask : public QObject
13{
14 Q_OBJECT
15
16public:
33
34 explicit QGCMapTask(TaskType type, QObject *parent = nullptr)
35 : QObject(parent)
36 , m_type(type)
37 {}
38 virtual ~QGCMapTask() = default;
39
40 TaskType type() const { return m_type; }
41
42 void setError(const QString &errorString = QString())
43 {
44 emit error(m_type, errorString);
45 }
46
47signals:
49
50private:
51 const TaskType m_type = TaskType::taskInit;
52};
53
54//-----------------------------------------------------------------------------
55
57{
58 Q_OBJECT
59
60public:
61 explicit QGCFetchTileSetTask(QObject *parent = nullptr)
63 {}
65
67 {
68 emit tileSetFetched(tileSet);
69 }
70
71signals:
73};
74
75//-----------------------------------------------------------------------------
76
78{
79 Q_OBJECT
80
81public:
82 explicit QGCCreateTileSetTask(QGCCachedTileSet *tileSet, QObject *parent = nullptr)
84 , m_tileSet(tileSet)
85 , m_saved(false)
86 {}
88 {
89 if (!m_saved) {
90 delete m_tileSet;
91 }
92 }
93
94 QGCCachedTileSet *tileSet() { return m_tileSet; }
95
97 {
98 m_saved = true;
99 emit tileSetSaved(m_tileSet);
100 }
101
102signals:
104
105private:
106 QGCCachedTileSet* const m_tileSet = nullptr;
107 bool m_saved = false;
108};
109
110//-----------------------------------------------------------------------------
111
113{
114 Q_OBJECT
115
116public:
117 explicit QGCFetchTileTask(const QString &hash, QObject *parent = nullptr)
119 , m_hash(hash)
120 {}
121 ~QGCFetchTileTask() = default;
122
124 {
125 emit tileFetched(tile);
126 }
127
128 QString hash() const { return m_hash; }
129
130signals:
132
133private:
134 const QString m_hash;
135};
136
137//-----------------------------------------------------------------------------
138
140{
141 Q_OBJECT
142
143public:
144 explicit QGCSaveTileTask(QGCCacheTile *tile, QObject *parent = nullptr)
146 , m_tile(tile)
147 {}
149 {
150 delete m_tile;
151 }
152
153 const QGCCacheTile *tile() const { return m_tile; }
154 QGCCacheTile *tile() { return m_tile; }
155
156private:
157 QGCCacheTile* const m_tile = nullptr;
158};
159
160//-----------------------------------------------------------------------------
161
163{
164 Q_OBJECT
165
166public:
167 QGCGetTileDownloadListTask(quint64 setID, int count, QObject *parent = nullptr)
169 , m_setID(setID)
170 , m_count(count)
171 {}
173
174 quint64 setID() const { return m_setID; }
175 int count() const { return m_count; }
176
177 void setTileListFetched(const QQueue<QGCTile*> &tiles)
178 {
179 emit tileListFetched(tiles);
180 }
181
182signals:
183 void tileListFetched(QQueue<QGCTile*> tiles);
184
185private:
186 const quint64 m_setID = 0;
187 const int m_count = 0;
188};
189
190//-----------------------------------------------------------------------------
191
193{
194 Q_OBJECT
195
196public:
197 QGCUpdateTileDownloadStateTask(quint64 setID, QGCTile::TileState state, const QString &hash, QObject *parent = nullptr)
199 , m_setID(setID)
200 , m_state(state)
201 , m_hash(hash)
202 {}
204
205 QString hash() const { return m_hash; }
206 quint64 setID() const { return m_setID; }
207 QGCTile::TileState state() const { return m_state; }
208
209private:
210 const quint64 m_setID = 0;
212 const QString m_hash;
213};
214
215//-----------------------------------------------------------------------------
216
218{
219 Q_OBJECT
220
221public:
222 explicit QGCDeleteTileSetTask(quint64 setID, QObject *parent = nullptr)
224 , m_setID(setID)
225 {}
227
228 quint64 setID() const { return m_setID; }
229
231 {
232 emit tileSetDeleted(m_setID);
233 }
234
235signals:
236 void tileSetDeleted(quint64 setID);
237
238private:
239 const quint64 m_setID = 0;
240};
241
242//-----------------------------------------------------------------------------
243
245{
246 Q_OBJECT
247
248public:
249 QGCRenameTileSetTask(quint64 setID, const QString &newName, QObject *parent = nullptr)
251 , m_setID(setID)
252 , m_newName(newName)
253 {}
255
256 quint64 setID() const { return m_setID; }
257 QString newName() const { return m_newName; }
258
259private:
260 const quint64 m_setID = 0;
261 const QString m_newName;
262};
263
264//-----------------------------------------------------------------------------
265
267{
268 Q_OBJECT
269
270public:
271 explicit QGCPruneCacheTask(quint64 amount, QObject *parent = nullptr)
273 , m_amount(amount)
274 {}
276
277 quint64 amount() const { return m_amount; }
278
280 {
281 emit pruned();
282 }
283
284signals:
285 void pruned();
286
287private:
288 const quint64 m_amount = 0;
289};
290
291//-----------------------------------------------------------------------------
292
294{
295 Q_OBJECT
296
297public:
298 explicit QGCResetTask(QObject *parent = nullptr)
299 : QGCMapTask(TaskType::taskReset, parent)
300 {}
301 ~QGCResetTask() = default;
302
304 {
305 emit resetCompleted();
306 }
307
308signals:
310};
311
312//-----------------------------------------------------------------------------
313
315{
316 Q_OBJECT
317
318public:
319 explicit QGCExportTileTask(const QList<TileSetRecord> &sets, const QString &path, QObject *parent = nullptr)
320 : QGCMapTask(TaskType::taskExport, parent)
321 , m_sets(sets)
322 , m_path(path)
323 {}
325
326 const QList<TileSetRecord> &sets() const { return m_sets; }
327 QString path() const { return m_path; }
328
330 {
331 emit actionCompleted();
332 }
333
334 void setProgress(int percentage)
335 {
336 emit actionProgress(percentage);
337 }
338
339signals:
341 void actionProgress(int percentage);
342
343private:
344 const QList<TileSetRecord> m_sets;
345 const QString m_path;
346};
347
348//-----------------------------------------------------------------------------
349
351{
352 Q_OBJECT
353
354public:
355 QGCImportTileTask(const QString &path, bool replace, QObject *parent = nullptr)
356 : QGCMapTask(TaskType::taskImport, parent)
357 , m_path(path)
358 , m_replace(replace)
359 {}
361
362 QString path() const { return m_path; }
363 bool replace() const { return m_replace; }
364 int progress() const { return m_progress; }
365
367 {
368 emit actionCompleted();
369 }
370
371 void setProgress(int percentage)
372 {
373 m_progress = percentage;
374 emit actionProgress(percentage);
375 }
376
377signals:
379 void actionProgress(int percentage);
380
381private:
382 const QString m_path;
383 const bool m_replace = false;
384 int m_progress = 0;
385};
386
387//-----------------------------------------------------------------------------
QString errorString
Error error
void tileSetSaved(QGCCachedTileSet *tileSet)
QGCCachedTileSet * tileSet()
Definition QGCMapTasks.h:94
QGCCreateTileSetTask(QGCCachedTileSet *tileSet, QObject *parent=nullptr)
Definition QGCMapTasks.h:82
~QGCDeleteTileSetTask()=default
QGCDeleteTileSetTask(quint64 setID, QObject *parent=nullptr)
quint64 setID() const
void tileSetDeleted(quint64 setID)
void setProgress(int percentage)
~QGCExportTileTask()=default
void actionProgress(int percentage)
QString path() const
void setExportCompleted()
const QList< TileSetRecord > & sets() const
QGCExportTileTask(const QList< TileSetRecord > &sets, const QString &path, QObject *parent=nullptr)
void setTileSetFetched(QGCCachedTileSet *tileSet)
Definition QGCMapTasks.h:66
~QGCFetchTileSetTask()=default
void tileSetFetched(QGCCachedTileSet *tileSet)
QGCFetchTileSetTask(QObject *parent=nullptr)
Definition QGCMapTasks.h:61
~QGCFetchTileTask()=default
QString hash() const
QGCFetchTileTask(const QString &hash, QObject *parent=nullptr)
void tileFetched(QGCCacheTile *tile)
void setTileFetched(QGCCacheTile *tile)
QGCGetTileDownloadListTask(quint64 setID, int count, QObject *parent=nullptr)
void setTileListFetched(const QQueue< QGCTile * > &tiles)
void tileListFetched(QQueue< QGCTile * > tiles)
~QGCGetTileDownloadListTask()=default
QGCImportTileTask(const QString &path, bool replace, QObject *parent=nullptr)
void setImportCompleted()
void actionProgress(int percentage)
bool replace() const
void setProgress(int percentage)
int progress() const
QString path() const
~QGCImportTileTask()=default
void setError(const QString &errorString=QString())
Definition QGCMapTasks.h:42
virtual ~QGCMapTask()=default
QGCMapTask(TaskType type, QObject *parent=nullptr)
Definition QGCMapTasks.h:34
Q_ENUM(TaskType)
TaskType type() const
Definition QGCMapTasks.h:40
void error(QGCMapTask::TaskType type, const QString &errorString)
quint64 amount() const
~QGCPruneCacheTask()=default
QGCPruneCacheTask(quint64 amount, QObject *parent=nullptr)
~QGCRenameTileSetTask()=default
QString newName() const
QGCRenameTileSetTask(quint64 setID, const QString &newName, QObject *parent=nullptr)
quint64 setID() const
~QGCResetTask()=default
void resetCompleted()
QGCResetTask(QObject *parent=nullptr)
void setResetCompleted()
const QGCCacheTile * tile() const
QGCSaveTileTask(QGCCacheTile *tile, QObject *parent=nullptr)
QGCCacheTile * tile()
QGCUpdateTileDownloadStateTask(quint64 setID, QGCTile::TileState state, const QString &hash, QObject *parent=nullptr)
QGCTile::TileState state() const
TileState
Definition QGCTile.h:9
@ StatePending
Definition QGCTile.h:10