QGIS API Documentation  3.8.0-Zanzibar (11aff65)
Signals | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
QgsVectorLayerExporterTask Class Reference

QgsTask task which performs a QgsVectorLayerExporter layer export operation as a background task. More...

#include <qgsvectorlayerexporter.h>

Inheritance diagram for QgsVectorLayerExporterTask:
Inheritance graph
[legend]

Signals

void errorOccurred (int error, const QString &errorMessage)
 Emitted when an error occurs which prevented the layer being exported (or if the task is canceled). More...
 
void exportComplete ()
 Emitted when exporting the layer 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

 QgsVectorLayerExporterTask (QgsVectorLayer *layer, const QString &uri, const QString &providerKey, const QgsCoordinateReferenceSystem &destinationCrs, const QMap< QString, QVariant > &options=QMap< QString, QVariant >(), bool ownsLayer=false)
 Constructor for QgsVectorLayerExporterTask. More...
 
void cancel () override
 Notifies the task that it should terminate. 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...
 
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...
 
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...
 

Static Public Member Functions

static QgsVectorLayerExporterTaskwithLayerOwnership (QgsVectorLayer *layer, const QString &uri, const QString &providerKey, const QgsCoordinateReferenceSystem &destinationCrs, const QMap< QString, QVariant > &options=QMap< QString, QVariant >())
 Creates a new QgsVectorLayerExporterTask which has ownership over a source layer. 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
bool isCanceled () const
 Will return true if task should terminate ASAP. More...
 

Additional Inherited Members

- Public Types inherited from QgsTask
enum  Flag { CanCancel = 1 << 1, AllFlags = CanCancel }
 Task flags. More...
 
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...
 
- Protected Slots inherited from QgsTask
void setProgress (double progress)
 Sets the task's current progress. More...
 

Detailed Description

QgsTask task which performs a QgsVectorLayerExporter layer export operation as a background task.

This can be used to export a vector layer out to a provider without blocking the QGIS interface.

See also
QgsVectorFileWriterTask
QgsRasterFileWriterTask
Since
QGIS 3.0

Definition at line 184 of file qgsvectorlayerexporter.h.

Constructor & Destructor Documentation

◆ QgsVectorLayerExporterTask()

QgsVectorLayerExporterTask::QgsVectorLayerExporterTask ( QgsVectorLayer layer,
const QString &  uri,
const QString &  providerKey,
const QgsCoordinateReferenceSystem destinationCrs,
const QMap< QString, QVariant > &  options = QMap<QString, QVariant>(),
bool  ownsLayer = false 
)

Constructor for QgsVectorLayerExporterTask.

Takes a source layer, destination uri and providerKey, and various export related parameters such as destination CRS and export options. ownsLayer has to be set to true if the task should take ownership of the layer and delete it after export.

Definition at line 478 of file qgsvectorlayerexporter.cpp.

Member Function Documentation

◆ cancel()

void QgsVectorLayerExporterTask::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 499 of file qgsvectorlayerexporter.cpp.

◆ errorOccurred

void QgsVectorLayerExporterTask::errorOccurred ( int  error,
const QString &  errorMessage 
)
signal

Emitted when an error occurs which prevented the layer being exported (or if the task is canceled).

The export error and errorMessage will be reported.

◆ exportComplete

void QgsVectorLayerExporterTask::exportComplete ( )
signal

Emitted when exporting the layer is successfully completed.

◆ finished()

void QgsVectorLayerExporterTask::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 520 of file qgsvectorlayerexporter.cpp.

◆ run()

bool QgsVectorLayerExporterTask::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 505 of file qgsvectorlayerexporter.cpp.

◆ withLayerOwnership()

QgsVectorLayerExporterTask * QgsVectorLayerExporterTask::withLayerOwnership ( QgsVectorLayer layer,
const QString &  uri,
const QString &  providerKey,
const QgsCoordinateReferenceSystem destinationCrs,
const QMap< QString, QVariant > &  options = QMap<QString, QVariant>() 
)
static

Creates a new QgsVectorLayerExporterTask which has ownership over a source layer.

When the export task has completed (successfully or otherwise) layer will be deleted. The destination uri and providerKey, and various export related parameters such as destination CRS and export options must be specified.

Definition at line 492 of file qgsvectorlayerexporter.cpp.


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