QGIS/python/core/auto_generated/maprenderer/qgsmaprendererjob.sip.in

269 lines
7.0 KiB
Plaintext

/************************************************************************
* This file has been generated automatically from *
* *
* src/core/maprenderer/qgsmaprendererjob.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/
class QgsMapRendererJob : QObject /Abstract/
{
%Docstring(signature="appended")
Abstract base class for map rendering implementations.
The API is designed in a way that rendering is done asynchronously, therefore
the caller is not blocked while the rendering is in progress. Non-blocking
operation is quite important because the rendering can take considerable
amount of time.
Common use case:
1. Prepare :py:class:`QgsMapSettings` with rendering configuration (extent, layer, map size, ...)
2. Create :py:class:`QgsMapRendererJob` subclass with :py:class:`QgsMapSettings` instance
3. Connect to job's :py:func:`~finished` signal
4. Call :py:func:`~start`. Map rendering will start in background, the function immediately returns
5. At some point, slot connected to :py:func:`~finished` signal is called, map rendering is done
It is possible to cancel the rendering job while it is active by calling :py:func:`~cancel` function.
The following subclasses are available:
- :py:class:`QgsMapRendererSequentialJob` - renders map in one background thread to an image
- :py:class:`QgsMapRendererParallelJob` - renders map in multiple background threads to an image
- :py:class:`QgsMapRendererCustomPainterJob` - renders map with given QPainter in one background thread
%End
%TypeHeaderCode
#include "qgsmaprendererjob.h"
%End
public:
QgsMapRendererJob( const QgsMapSettings &settings );
~QgsMapRendererJob();
void start();
%Docstring
Start the rendering job and immediately return.
Does nothing if the rendering is already in progress.
%End
virtual void cancel() = 0;
%Docstring
Stop the rendering job - does not return until the job has terminated.
Does nothing if the rendering is not active.
%End
virtual void cancelWithoutBlocking() = 0;
%Docstring
Triggers cancellation of the rendering job without blocking. The render job will continue
to operate until it is able to cancel, at which stage the :py:func:`~QgsMapRendererJob.finished` signal will be emitted.
Does nothing if the rendering is not active.
%End
virtual void waitForFinished() = 0;
%Docstring
Block until the job has finished.
%End
virtual bool isActive() const = 0;
%Docstring
Tell whether the rendering job is currently running in background.
%End
virtual bool usedCachedLabels() const = 0;
%Docstring
Returns ``True`` if the render job was able to use a cached labeling solution.
If so, any previously stored labeling results (see :py:func:`~QgsMapRendererJob.takeLabelingResults`)
should be retained.
.. seealso:: :py:func:`takeLabelingResults`
%End
QStringList layersRedrawnFromCache() const;
%Docstring
Returns a list of the layer IDs for all layers which were redrawn from cached
images.
This method should only be called after the render job is completed.
.. versionadded:: 3.22
%End
virtual QgsLabelingResults *takeLabelingResults() = 0 /Transfer/;
%Docstring
Gets pointer to internal labeling engine (in order to get access to the results).
This should not be used if cached labeling was redrawn - see :py:func:`~QgsMapRendererJob.usedCachedLabels`.
.. seealso:: :py:func:`usedCachedLabels`
%End
QgsRenderedItemResults *takeRenderedItemResults() /Transfer/;
%Docstring
Takes the rendered item results from the map render job and returns them.
Ownership is transferred to the caller.
.. versionadded:: 3.22
%End
void setFeatureFilterProvider( const QgsFeatureFilterProvider *f );
%Docstring
Set the feature filter provider used by the :py:class:`QgsRenderContext` of
each LayerRenderJob.
Ownership is not transferred and the provider must not be deleted
before the render job.
%End
const QgsFeatureFilterProvider *featureFilterProvider() const;
%Docstring
Returns the feature filter provider used by the :py:class:`QgsRenderContext` of
each LayerRenderJob.
%End
struct Error
{
Error( const QString &lid, const QString &msg );
QString layerID;
QString message;
};
typedef QList<QgsMapRendererJob::Error> Errors;
Errors errors() const;
%Docstring
List of errors that happened during the rendering job - available when the rendering has been finished
%End
void setCache( QgsMapRendererCache *cache );
%Docstring
Assign a cache to be used for reading and storing rendered images of individual layers.
Does not take ownership of the object.
%End
int renderingTime() const;
%Docstring
Returns the total time it took to finish the job (in milliseconds).
.. seealso:: :py:func:`perLayerRenderingTime`
%End
const QgsMapSettings &mapSettings() const;
%Docstring
Returns map settings with which this job was started.
:return: A :py:class:`QgsMapSettings` instance with render settings
%End
signals:
void renderingLayersFinished();
%Docstring
Emitted when the layers are rendered.
Rendering labels is not yet done. If the fully rendered layer including labels is required use
:py:func:`~QgsMapRendererJob.finished` instead.
%End
void layerRenderingStarted( const QString &layerId );
%Docstring
Emitted just before rendering starts for a particular layer.
.. note::
the :py:class:`QgsMapRendererParallelJob` subclass does not emit this signal.
.. versionadded:: 3.24
%End
void layerRendered( const QString &layerId );
%Docstring
Emitted when a layer has completed rendering.
.. note::
the :py:class:`QgsMapRendererParallelJob` subclass does not emit this signal.
.. versionadded:: 3.24
%End
void finished();
%Docstring
emitted when asynchronous rendering is finished (or canceled).
%End
protected:
};
class QgsMapRendererQImageJob : QgsMapRendererJob /Abstract/
{
%Docstring(signature="appended")
Intermediate base class adding functionality that allows client to query the rendered image.
The image can be queried even while the rendering is still in progress to get intermediate result
%End
%TypeHeaderCode
#include "qgsmaprendererjob.h"
%End
public:
QgsMapRendererQImageJob( const QgsMapSettings &settings );
virtual QImage renderedImage() = 0;
%Docstring
Gets a preview/resulting image
%End
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/maprenderer/qgsmaprendererjob.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/