QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
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 
37 class 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 
94 class CORE_EXPORT QgsScopedProxyProgressTask
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
qgsvirtuallayerdefinition.h
qgstaskmanager.h
QgsProxyProgressTask
A QgsTask shell which proxies progress reports.
Definition: qgsproxyprogresstask.h:37
QgsTask::cancel
virtual void cancel()
Notifies the task that it should terminate.
Definition: qgstaskmanager.cpp:91
QgsScopedProxyProgressTask
Scoped QgsScopedProxyProgressTask, which automatically adds the proxy task to the application task ma...
Definition: qgsproxyprogresstask.h:94
QgsTask::run
virtual bool run()=0
Performs the task's operation.
QgsTask
Abstract base class for long running background tasks. Tasks can be controlled directly,...
Definition: qgstaskmanager.h:54