QGIS API Documentation  3.6.0-Noosa (5873452)
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 mResult = true;
68 
69 };
70 
80 class CORE_EXPORT QgsScopedProxyProgressTask
81 {
82  public:
83 
87  QgsScopedProxyProgressTask( const QString &description );
88 
90 
94  void setProgress( double progress );
95 
96  private:
97 
98  QgsProxyProgressTask *mTask = nullptr;
99 
100 };
101 
102 #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.