QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
Public Types | Signals | Public Member Functions | Protected Member Functions | List of all members
QgsMapRendererTask Class Reference

QgsTask task which draws a map to an image file or a painter as a background task. More...

#include <qgsmaprenderertask.h>

Inheritance diagram for QgsMapRendererTask:
Inheritance graph
[legend]

Public Types

enum  ErrorType { ImageAllocationFail = 1 , ImageSaveFail , ImageUnsupportedFormat }
 Error type. More...
 
- Public Types inherited from QgsTask
enum  Flag {
  CanCancel = 1 << 1 , CancelWithoutPrompt = 1 << 2 , Hidden = 1 << 3 , Silent = 1 << 4 ,
  AllFlags = CanCancel
}
 Task flags. More...
 
typedef QFlags< FlagFlags
 
enum  SubTaskDependency { SubTaskIndependent = 0 , ParentDependsOnSubTask }
 Controls how subtasks relate to their parent task. More...
 
enum  TaskStatus {
  Queued , OnHold , Running , Complete ,
  Terminated
}
 Status of tasks. More...
 

Signals

void errorOccurred (int error)
 Emitted when map rendering failed. More...
 
void renderingComplete ()
 Emitted when the map rendering is successfully completed. More...
 
- Signals inherited from QgsTask
void begun ()
 Will be emitted by task to indicate its commencement. More...
 
void progressChanged (double progress)
 Will be emitted by task when its progress changes. More...
 
void statusChanged (int status)
 Will be emitted by task when its status changes. More...
 
void taskCompleted ()
 Will be emitted by task to indicate its successful completion. More...
 
void taskTerminated ()
 Will be emitted by task if it has terminated for any reason other then completion (e.g., when a task has been canceled or encountered an internal error). More...
 

Public Member Functions

 QgsMapRendererTask (const QgsMapSettings &ms, const QString &fileName, const QString &fileFormat=QString("PNG"), bool forceRaster=false, QgsTask::Flags flags=QgsTask::CanCancel, bool geoPdf=false, const QgsAbstractGeoPdfExporter::ExportDetails &geoPdfExportDetails=QgsAbstractGeoPdfExporter::ExportDetails())
 Constructor for QgsMapRendererTask to render a map to an image file. More...
 
 QgsMapRendererTask (const QgsMapSettings &ms, QPainter *p)
 Constructor for QgsMapRendererTask to render a map to a QPainter object. More...
 
 ~QgsMapRendererTask () override
 
void addAnnotations (const QList< QgsAnnotation * > &annotations)
 Adds annotations to be rendered on the map. More...
 
void addDecorations (const QList< QgsMapDecoration * > &decorations)
 Adds decorations to be rendered on the map. More...
 
void cancel () override
 Notifies the task that it should terminate. More...
 
void setExportMetadata (bool exportMetadata)
 Sets whether metadata such as title and subject will be exported whenever possible. More...
 
void setSaveWorldFile (bool save)
 Sets whether the image file will be georeferenced (embedded or via a world file). More...
 
- Public Member Functions inherited from QgsTask
 QgsTask (const QString &description=QString(), QgsTask::Flags flags=AllFlags)
 Constructor for QgsTask. More...
 
 ~QgsTask () override
 
void addSubTask (QgsTask *subTask, const QgsTaskList &dependencies=QgsTaskList(), SubTaskDependency subTaskDependency=SubTaskIndependent)
 Adds a subtask to this task. More...
 
bool canCancel () const
 Returns true if the task can be canceled. More...
 
virtual void cancel ()
 Notifies the task that it should terminate. More...
 
QList< QgsMapLayer * > dependentLayers () const
 Returns the list of layers on which the task depends. More...
 
QString description () const
 Returns the task's description. More...
 
qint64 elapsedTime () const
 Returns the elapsed time since the task commenced, in milliseconds. More...
 
Flags flags () const
 Returns the flags associated with the task. More...
 
void hold ()
 Places the task on hold. More...
 
bool isActive () const
 Returns true if the task is active, ie it is not complete and has not been canceled. More...
 
double progress () const
 Returns the task's progress (between 0.0 and 100.0) More...
 
void setDependentLayers (const QList< QgsMapLayer * > &dependentLayers)
 Sets a list of layers on which the task depends. More...
 
void setDescription (const QString &description)
 Sets the task's description. More...
 
TaskStatus status () const
 Returns the current task status. More...
 
void unhold ()
 Releases the task from being held. More...
 
bool waitForFinished (int timeout=30000)
 Blocks the current thread until the task finishes or a maximum of timeout milliseconds. More...
 

Protected Member Functions

void finished (bool result) override
 If the task is managed by a QgsTaskManager, this will be called after the task has finished (whether through successful completion or via early termination). More...
 
bool run () override
 Performs the task's operation. More...
 
- Protected Member Functions inherited from QgsTask
virtual void finished (bool result)
 If the task is managed by a QgsTaskManager, this will be called after the task has finished (whether through successful completion or via early termination). More...
 
bool isCanceled () const
 Will return true if task should terminate ASAP. More...
 
virtual bool run ()=0
 Performs the task's operation. More...
 

Additional Inherited Members

- Protected Slots inherited from QgsTask
void setProgress (double progress)
 Sets the task's current progress. More...
 

Detailed Description

QgsTask task which draws a map to an image file or a painter as a background task.

This can be used to draw maps without blocking the QGIS interface.

Definition at line 43 of file qgsmaprenderertask.h.

Member Enumeration Documentation

◆ ErrorType

Error type.

Enumerator
ImageAllocationFail 

Image allocation failure.

ImageSaveFail 

Image save failure.

ImageUnsupportedFormat 

Format is unsupported on the platform.

Since
QGIS 3.4

Definition at line 50 of file qgsmaprenderertask.h.

Constructor & Destructor Documentation

◆ QgsMapRendererTask() [1/2]

QgsMapRendererTask::QgsMapRendererTask ( const QgsMapSettings ms,
const QString &  fileName,
const QString &  fileFormat = QString( "PNG" ),
bool  forceRaster = false,
QgsTask::Flags  flags = QgsTask::CanCancel,
bool  geoPdf = false,
const QgsAbstractGeoPdfExporter::ExportDetails geoPdfExportDetails = QgsAbstractGeoPdfExporter::ExportDetails() 
)

Constructor for QgsMapRendererTask to render a map to an image file.

If the output fileFormat is set to PDF, the geoPdf argument controls whether a GeoPDF file is created. See QgsAbstractGeoPdfExporter::geoPDFCreationAvailable() for conditions on GeoPDF creation availability.

Since QGIS 3.26 the optional flags argument can be used to control the task flags.

Definition at line 119 of file qgsmaprenderertask.cpp.

◆ QgsMapRendererTask() [2/2]

QgsMapRendererTask::QgsMapRendererTask ( const QgsMapSettings ms,
QPainter *  p 
)

Constructor for QgsMapRendererTask to render a map to a QPainter object.

Definition at line 138 of file qgsmaprenderertask.cpp.

◆ ~QgsMapRendererTask()

QgsMapRendererTask::~QgsMapRendererTask ( )
overridedefault

Member Function Documentation

◆ addAnnotations()

void QgsMapRendererTask::addAnnotations ( const QList< QgsAnnotation * > &  annotations)

Adds annotations to be rendered on the map.

Definition at line 148 of file qgsmaprenderertask.cpp.

◆ addDecorations()

void QgsMapRendererTask::addDecorations ( const QList< QgsMapDecoration * > &  decorations)

Adds decorations to be rendered on the map.

Definition at line 160 of file qgsmaprenderertask.cpp.

◆ cancel()

void QgsMapRendererTask::cancel ( )
overridevirtual

Notifies the task that it should terminate.

Calling this is not guaranteed to immediately end the task, rather it sets the isCanceled() flag which task subclasses can check and terminate their operations at an appropriate time. Any subtasks owned by this task will also be canceled. Derived classes must ensure that the base class implementation is called from any overridden version.

See also
isCanceled()

Reimplemented from QgsTask.

Definition at line 166 of file qgsmaprenderertask.cpp.

◆ errorOccurred

void QgsMapRendererTask::errorOccurred ( int  error)
signal

Emitted when map rendering failed.

◆ finished()

void QgsMapRendererTask::finished ( bool  result)
overrideprotectedvirtual

If the task is managed by a QgsTaskManager, this will be called after the task has finished (whether through successful completion or via early termination).

The result argument reflects whether the task was successfully completed or not. This method is always called from the main thread, so it is safe to create widgets and perform other operations which require the main thread. However, the GUI will be blocked for the duration of this method so tasks should avoid performing any lengthy operations here.

Reimplemented from QgsTask.

Definition at line 432 of file qgsmaprenderertask.cpp.

◆ renderingComplete

void QgsMapRendererTask::renderingComplete ( )
signal

Emitted when the map rendering is successfully completed.

◆ run()

bool QgsMapRendererTask::run ( )
overrideprotectedvirtual

Performs the task's operation.

This method will be called when the task commences (ie via calling start() ), and subclasses should implement the operation they wish to perform in the background within this method.

A task must return a boolean value to indicate whether the task was completed successfully or terminated before completion.

Implements QgsTask.

Definition at line 176 of file qgsmaprenderertask.cpp.

◆ setExportMetadata()

void QgsMapRendererTask::setExportMetadata ( bool  exportMetadata)
inline

Sets whether metadata such as title and subject will be exported whenever possible.

Definition at line 113 of file qgsmaprenderertask.h.

◆ setSaveWorldFile()

void QgsMapRendererTask::setSaveWorldFile ( bool  save)
inline

Sets whether the image file will be georeferenced (embedded or via a world file).

Definition at line 108 of file qgsmaprenderertask.h.


The documentation for this class was generated from the following files: