QGIS API Documentation  3.4.15-Madeira (e83d02e274)
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 
35 class CORE_EXPORT QgsProxyProgressTask : public QgsTask
36 {
37  Q_OBJECT
38 
39  public:
40 
44  QgsProxyProgressTask( const QString &description );
45 
52  void finalize( bool result );
53 
54  bool run() override;
55 
61  void setProxyProgress( double progress );
62 
63  private:
64 
65  QWaitCondition mNotFinishedWaitCondition;
66  QMutex mNotFinishedMutex;
67  bool mAlreadyFinished = false;
68  bool mResult = true;
69 
70 };
71 
81 class CORE_EXPORT QgsScopedProxyProgressTask
82 {
83  public:
84 
88  QgsScopedProxyProgressTask( const QString &description );
89 
91 
95  void setProgress( double progress );
96 
97  private:
98 
99  QgsProxyProgressTask *mTask = nullptr;
100 
101 };
102 
103 #endif // QGSPROXYPROGRESSTASK_H
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.
A QgsTask shell which proxies progress reports.