QGIS API Documentation  3.21.0-Master (56b4176581)
qgsprocessingfeedback.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsprocessingfeedback.h
3  -----------------------
4  begin : December 2016
5  copyright : (C) 2016 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 QGSPROCESSINGFEEDBACK_H
19 #define QGSPROCESSINGFEEDBACK_H
20 
21 #include "qgis_core.h"
22 #include "qgsfeedback.h"
23 #include "qgsmessagelog.h"
24 
26 
37 class CORE_EXPORT QgsProcessingFeedback : public QgsFeedback
38 {
39  Q_OBJECT
40 
41  public:
42 
49  QgsProcessingFeedback( bool logFeedback = true );
50 
57  virtual void setProgressText( const QString &text );
58 
64  virtual void reportError( const QString &error, bool fatalError = false );
65 
76  virtual void pushWarning( const QString &warning );
77 
87  virtual void pushInfo( const QString &info );
88 
98  virtual void pushCommandInfo( const QString &info );
99 
108  virtual void pushDebugInfo( const QString &info );
109 
118  virtual void pushConsoleInfo( const QString &info );
119 
124  void pushVersionInfo( const QgsProcessingProvider *provider = nullptr );
125 
132  virtual QString htmlLog() const;
133 
140  virtual QString textLog() const;
141 
142  private:
143 
144  void log( const QString &htmlMessage, const QString &textMessage );
145 
146  bool mLogFeedback = true;
147  QString mHtmlLog;
148  QString mTextLog;
149  int mMessageLoggedCount = 0;
150 
151 };
152 
153 
167 {
168  Q_OBJECT
169 
170  public:
171 
178 
183  void setCurrentStep( int step );
184 
185  void setProgressText( const QString &text ) override;
186  void reportError( const QString &error, bool fatalError = false ) override;
187  void pushWarning( const QString &warning ) override;
188  void pushInfo( const QString &info ) override;
189  void pushCommandInfo( const QString &info ) override;
190  void pushDebugInfo( const QString &info ) override;
191  void pushConsoleInfo( const QString &info ) override;
192  QString htmlLog() const override;
193  QString textLog() const override;
194  private slots:
195 
196  void updateOverallProgress( double progress );
197 
198  private:
199 
200  int mChildSteps = 0;
201  int mCurrentStep = 0;
202  QgsProcessingFeedback *mFeedback = nullptr;
203 
204 };
205 
206 #endif // QGSPROCESSINGFEEDBACK_H
207 
208 
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition: qgsfeedback.h:45
Base class for providing feedback from a processing algorithm.
Processing feedback object for multi-step operations.
Abstract base class for processing providers.