QGIS API Documentation 3.29.0-Master (19d7edcfed)
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
54 void finalize( bool result );
55
56 bool run() override;
57
63 void setProxyProgress( double progress );
64
65 void cancel() override;
66
67 signals:
68
74 void canceled();
75
76 private:
77
78 QWaitCondition mNotFinishedWaitCondition;
79 QMutex mNotFinishedMutex;
80 bool mAlreadyFinished = false;
81 bool mResult = true;
82
83};
84
95{
96 public:
97
101 QgsScopedProxyProgressTask( const QString &description );
102
104
108 void setProgress( double progress );
109
110 private:
111
112 QgsProxyProgressTask *mTask = nullptr;
113
114 // SIP generates .cpp code that doesn't compile if commenting out the legit following line.
115 // Q_DISABLE_COPY( QgsScopedProxyProgressTask )
116};
117
118#endif // QGSPROXYPROGRESSTASK_H
A QgsTask shell which proxies progress reports.
void canceled()
Emitted when the task is canceled.
Scoped QgsScopedProxyProgressTask, which automatically adds the proxy task to the application task ma...
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.