QGIS API Documentation 3.99.0-Master (2fe06baccd8)
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
21#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
100{
101 public:
102
106 QgsScopedProxyProgressTask( const QString &description );
107
110
112
116 void setProgress( double progress );
117
118 private:
119
120 QgsProxyProgressTask *mTask = nullptr;
121
122#ifdef SIP_RUN
124#endif
125
126 // SIP generates .cpp code that doesn't compile if commenting out the legit following line.
127 // Q_DISABLE_COPY( QgsScopedProxyProgressTask )
128};
129
130#endif // QGSPROXYPROGRESSTASK_H
A QgsTask shell which proxies progress reports.
QgsProxyProgressTask(const QgsProxyProgressTask &other)=delete
void setProxyProgress(double progress)
Sets the progress (from 0 to 100) for the proxied operation.
void finalize(bool result)
Finalizes the task, with the specified result.
void canceled()
Emitted when the task is canceled.
QgsProxyProgressTask & operator=(const QgsProxyProgressTask &other)=delete
QgsProxyProgressTask(const QString &description, bool canCancel=false)
Constructor for QgsProxyProgressTask, with the specified description.
QgsScopedProxyProgressTask & operator=(const QgsScopedProxyProgressTask &other)=delete
QgsScopedProxyProgressTask(const QgsScopedProxyProgressTask &other)=delete
QgsScopedProxyProgressTask(const QString &description)
Constructor for QgsScopedProxyProgressTask, with the specified description.
double progress() const
Returns the task's progress (between 0.0 and 100.0).
virtual bool run()=0
Performs the task's operation.
virtual void cancel()
Notifies the task that it should terminate.
QgsTask(const QString &description=QString(), QgsTask::Flags flags=AllFlags)
Constructor for QgsTask.
QString description() const
Returns the task's description.
void setProgress(double progress)
Sets the task's current progress.
bool canCancel() const
Returns true if the task can be canceled.