QGIS API Documentation 3.41.0-Master (af5edcb665c)
Loading...
Searching...
No Matches
qgsproxyprogresstask.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsproxyprogresstask.h
3 ----------------------
4 begin : August 2018
5 copyright : (C) 2018 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSPROXYPROGRESSTASK_H
19#define QGSPROXYPROGRESSTASK_H
20
22#include "qgstaskmanager.h"
23
24#include <QWaitCondition>
25
37class CORE_EXPORT QgsProxyProgressTask : public QgsTask
38{
39 Q_OBJECT
40
41 public:
42
46 QgsProxyProgressTask( const QString &description, bool canCancel = false );
47
50
57 void finalize( bool result );
58
59 bool run() override;
60
66 void setProxyProgress( double progress );
67
68 void cancel() override;
69
70 signals:
71
77 void canceled();
78
79 private:
80
81 QWaitCondition mNotFinishedWaitCondition;
82 QMutex mNotFinishedMutex;
83 bool mAlreadyFinished = false;
84 bool mResult = true;
85
86};
87
98{
99 public:
100
104 QgsScopedProxyProgressTask( const QString &description );
105
108
110
114 void setProgress( double progress );
115
116 private:
117
118 QgsProxyProgressTask *mTask = nullptr;
119
120#ifdef SIP_RUN
122#endif
123
124 // SIP generates .cpp code that doesn't compile if commenting out the legit following line.
125 // Q_DISABLE_COPY( QgsScopedProxyProgressTask )
126};
127
128#endif // QGSPROXYPROGRESSTASK_H
A QgsTask shell which proxies progress reports.
QgsProxyProgressTask(const QgsProxyProgressTask &other)=delete
void canceled()
Emitted when the task is canceled.
QgsProxyProgressTask & operator=(const QgsProxyProgressTask &other)=delete
Scoped QgsScopedProxyProgressTask, which automatically adds the proxy task to the application task ma...
QgsScopedProxyProgressTask & operator=(const QgsScopedProxyProgressTask &other)=delete
QgsScopedProxyProgressTask(const QgsScopedProxyProgressTask &other)=delete
Abstract base class for long running background tasks.
virtual bool run()=0
Performs the task's operation.
virtual void cancel()
Notifies the task that it should terminate.
void setProgress(double progress)
Sets the task's current progress.