QGIS API Documentation
2.18.21-Las Palmas (9fba24a)
|
Abstract base class for map rendering implementations. More...
#include <qgsmaprendererjob.h>
Classes | |
struct | Error |
Public Types | |
typedef QList< Error > | Errors |
Signals | |
void | finished () |
emitted when asynchronous rendering is finished (or canceled). More... | |
Public Member Functions | |
QgsMapRendererJob (const QgsMapSettings &settings) | |
virtual | ~QgsMapRendererJob () |
virtual void | cancel ()=0 |
Stop the rendering job - does not return until the job has terminated. More... | |
virtual void | cancelWithoutBlocking ()=0 |
Triggers cancellation of the rendering job without blocking. More... | |
Errors | errors () const |
List of errors that happened during the rendering job - available when the rendering has been finished. More... | |
virtual bool | isActive () const =0 |
Tell whether the rendering job is currently running in background. More... | |
const QgsMapSettings & | mapSettings () const |
Return map settings with which this job was started. More... | |
int | renderingTime () const |
Find out how log it took to finish the job (in miliseconds) More... | |
void | setCache (QgsMapRendererCache *cache) |
Assign a cache to be used for reading and storing rendered images of individual layers. More... | |
void | setRequestedGeometryCacheForLayers (const QStringList &layerIds) |
Set which vector layers should be cached while rendering. More... | |
virtual void | start ()=0 |
Start the rendering job and immediately return. More... | |
virtual QgsLabelingResults * | takeLabelingResults ()=0 |
Get pointer to internal labeling engine (in order to get access to the results) More... | |
virtual void | waitForFinished ()=0 |
Block until the job has finished. More... | |
Public Member Functions inherited from QObject | |
QObject (QObject *parent) | |
QObject (QObject *parent, const char *name) | |
virtual | ~QObject () |
bool | blockSignals (bool block) |
QObject * | child (const char *objName, const char *inheritsClass, bool recursiveSearch) const |
const QObjectList & | children () const |
const char * | className () const |
bool | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const |
void | deleteLater () |
void | destroyed (QObject *obj) |
bool | disconnect (const QObject *receiver, const char *method) |
bool | disconnect (const char *signal, const QObject *receiver, const char *method) |
void | dumpObjectInfo () |
void | dumpObjectTree () |
QList< QByteArray > | dynamicPropertyNames () const |
virtual bool | event (QEvent *e) |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
T | findChild (const QString &name) const |
QList< T > | findChildren (const QRegExp ®Exp) const |
QList< T > | findChildren (const QString &name) const |
bool | inherits (const char *className) const |
void | insertChild (QObject *object) |
void | installEventFilter (QObject *filterObj) |
bool | isA (const char *className) const |
bool | isWidgetType () const |
void | killTimer (int id) |
virtual const QMetaObject * | metaObject () const |
void | moveToThread (QThread *targetThread) |
const char * | name () const |
const char * | name (const char *defaultName) const |
QString | objectName () const |
QObject * | parent () const |
QVariant | property (const char *name) const |
void | removeChild (QObject *object) |
void | removeEventFilter (QObject *obj) |
void | setName (const char *name) |
void | setObjectName (const QString &name) |
void | setParent (QObject *parent) |
bool | setProperty (const char *name, const QVariant &value) |
bool | signalsBlocked () const |
int | startTimer (int interval) |
QThread * | thread () const |
Protected Member Functions | |
void | cleanupJobs (LayerRenderJobs &jobs) |
void | logRenderingTime (const LayerRenderJobs &jobs) |
bool | needTemporaryImage (QgsMapLayer *ml) |
LayerRenderJobs | prepareJobs (QPainter *painter, QgsPalLabeling *labelingEngine, QgsLabelingEngineV2 *labelingEngine2) |
void | updateLayerGeometryCaches () |
called when rendering has finished to update all layers' geometry caches More... | |
Protected Member Functions inherited from QObject | |
bool | checkConnectArgs (const char *signal, const QObject *object, const char *method) |
virtual void | childEvent (QChildEvent *event) |
virtual void | connectNotify (const char *signal) |
virtual void | customEvent (QEvent *event) |
virtual void | disconnectNotify (const char *signal) |
int | receivers (const char *signal) const |
QObject * | sender () const |
int | senderSignalIndex () const |
virtual void | timerEvent (QTimerEvent *event) |
Static Protected Member Functions | |
static QImage | composeImage (const QgsMapSettings &settings, const LayerRenderJobs &jobs) |
static void | drawLabeling (const QgsMapSettings &settings, QgsRenderContext &renderContext, QgsPalLabeling *labelingEngine, QgsLabelingEngineV2 *labelingEngine2, QPainter *painter) |
static void | drawNewLabeling (const QgsMapSettings &settings, QgsRenderContext &renderContext, QgsPalLabeling *labelingEngine) |
static void | drawOldLabeling (const QgsMapSettings &settings, QgsRenderContext &renderContext) |
static bool | reprojectToLayerExtent (const QgsMapLayer *ml, const QgsCoordinateTransform *ct, QgsRectangle &extent, QgsRectangle &r2) |
Convenience function to project an extent into the layer source CRS, but also split it into two extents if it crosses the +/- 180 degree line. More... | |
Static Protected Member Functions inherited from QObject | |
QByteArray | normalizeSignalSlot (const char *signalSlot) |
Protected Attributes | |
QgsMapRendererCache * | mCache |
Errors | mErrors |
QMap< QString, QgsGeometryCache > | mGeometryCaches |
map of geometry caches More... | |
QTime | mRenderingStart |
int | mRenderingTime |
QStringList | mRequestedGeomCacheForLayers |
list of layer IDs for which the geometry cache should be updated More... | |
QgsMapSettings | mSettings |
Additional Inherited Members | |
Static Public Member Functions inherited from QObject | |
bool | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
bool | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
QString | tr (const char *sourceText, const char *disambiguation, int n) |
QString | trUtf8 (const char *sourceText, const char *disambiguation, int n) |
Properties inherited from QObject | |
objectName | |
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: 0. prepare QgsMapSettings with rendering configuration (extent, layer, map size, ...)
It is possible to cancel the rendering job while it is active by calling cancel() function.
The following subclasses are available:
Definition at line 82 of file qgsmaprendererjob.h.
typedef QList<Error> QgsMapRendererJob::Errors |
Definition at line 126 of file qgsmaprendererjob.h.
QgsMapRendererJob::QgsMapRendererJob | ( | const QgsMapSettings & | settings | ) |
Definition at line 37 of file qgsmaprendererjob.cpp.
|
inlinevirtual |
Definition at line 89 of file qgsmaprendererjob.h.
|
pure virtual |
Stop the rendering job - does not return until the job has terminated.
Does nothing if the rendering is not active.
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
|
pure virtual |
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 finished() signal will be emitted. Does nothing if the rendering is not active.
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
|
protected |
Definition at line 321 of file qgsmaprendererjob.cpp.
|
staticprotected |
Definition at line 357 of file qgsmaprendererjob.cpp.
|
staticprotected |
Definition at line 297 of file qgsmaprenderercustompainterjob.cpp.
|
staticprotected |
Definition at line 373 of file qgsmaprenderercustompainterjob.cpp.
|
staticprotected |
Definition at line 331 of file qgsmaprenderercustompainterjob.cpp.
QgsMapRendererJob::Errors QgsMapRendererJob::errors | ( | ) | const |
List of errors that happened during the rendering job - available when the rendering has been finished.
Definition at line 51 of file qgsmaprendererjob.cpp.
|
signal |
emitted when asynchronous rendering is finished (or canceled).
|
pure virtual |
Tell whether the rendering job is currently running in background.
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
|
protected |
Definition at line 380 of file qgsmaprendererjob.cpp.
const QgsMapSettings & QgsMapRendererJob::mapSettings | ( | ) | const |
Return map settings with which this job was started.
Definition at line 61 of file qgsmaprendererjob.cpp.
|
protected |
Definition at line 399 of file qgsmaprenderercustompainterjob.cpp.
|
protected |
Definition at line 171 of file qgsmaprendererjob.cpp.
|
inline |
Find out how log it took to finish the job (in miliseconds)
Definition at line 141 of file qgsmaprendererjob.h.
|
staticprotected |
Convenience function to project an extent into the layer source CRS, but also split it into two extents if it crosses the +/- 180 degree line.
Modifies the given extent to be in the source CRS coordinates, and if it was split, returns true, and also sets the contents of the r2 parameter
Definition at line 67 of file qgsmaprendererjob.cpp.
void QgsMapRendererJob::setCache | ( | QgsMapRendererCache * | cache | ) |
Assign a cache to be used for reading and storing rendered images of individual layers.
Does not take ownership of the object.
Definition at line 56 of file qgsmaprendererjob.cpp.
|
inline |
Set which vector layers should be cached while rendering.
Definition at line 138 of file qgsmaprendererjob.h.
|
pure virtual |
Start the rendering job and immediately return.
Does nothing if the rendering is already in progress.
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
|
pure virtual |
Get pointer to internal labeling engine (in order to get access to the results)
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
|
protected |
called when rendering has finished to update all layers' geometry caches
Definition at line 386 of file qgsmaprenderercustompainterjob.cpp.
|
pure virtual |
Block until the job has finished.
Implemented in QgsMapRendererCustomPainterJob, QgsMapRendererSequentialJob, and QgsMapRendererParallelJob.
|
protected |
Definition at line 189 of file qgsmaprendererjob.h.
|
protected |
Definition at line 187 of file qgsmaprendererjob.h.
|
protected |
map of geometry caches
Definition at line 194 of file qgsmaprendererjob.h.
|
protected |
Definition at line 196 of file qgsmaprendererjob.h.
|
protected |
Definition at line 197 of file qgsmaprendererjob.h.
|
protected |
list of layer IDs for which the geometry cache should be updated
Definition at line 192 of file qgsmaprendererjob.h.
|
protected |
Definition at line 186 of file qgsmaprendererjob.h.