QGIS API Documentation
2.4.0-Chugiak
|
Job implementation that renders all layers in parallel. More...
#include <qgsmaprendererparalleljob.h>
Public Member Functions | |
QgsMapRendererParallelJob (const QgsMapSettings &settings) | |
~QgsMapRendererParallelJob () | |
virtual void | start () |
Start the rendering job and immediately return. More... | |
virtual void | cancel () |
Stop the rendering job - does not return until the job has terminated. More... | |
virtual void | waitForFinished () |
Block until the job has finished. More... | |
virtual bool | isActive () const |
Tell whether the rendering job is currently running in background. More... | |
virtual QgsLabelingResults * | takeLabelingResults () |
Get pointer to internal labeling engine (in order to get access to the results) More... | |
virtual QImage | renderedImage () |
Get a preview/resulting image. More... | |
Public Member Functions inherited from QgsMapRendererQImageJob | |
QgsMapRendererQImageJob (const QgsMapSettings &settings) | |
Public Member Functions inherited from QgsMapRendererJob | |
QgsMapRendererJob (const QgsMapSettings &settings) | |
virtual | ~QgsMapRendererJob () |
Errors | errors () const |
List of errors that happened during the rendering job - available when the rendering has been finished. 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... | |
int | renderingTime () const |
Find out how log it took to finish the job (in miliseconds) More... | |
Protected Types | |
enum | { Idle, RenderingLayers, RenderingLabels } |
Protected Slots | |
void | renderLayersFinished () |
layers are rendered, labeling is still pending More... | |
void | renderingFinished () |
all rendering is finished, including labeling More... | |
Static Protected Member Functions | |
static void | renderLayerStatic (LayerRenderJob &job) |
static void | renderLabelsStatic (QgsMapRendererParallelJob *self) |
Static Protected Member Functions inherited from QgsMapRendererJob | |
static bool | reprojectToLayerExtent (const QgsCoordinateTransform *ct, bool layerCrsGeographic, 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 QImage | composeImage (const QgsMapSettings &settings, const LayerRenderJobs &jobs) |
static void | drawLabeling (const QgsMapSettings &settings, QgsRenderContext &renderContext, QgsPalLabeling *labelingEngine, QPainter *painter) |
static void | drawOldLabeling (const QgsMapSettings &settings, QgsRenderContext &renderContext) |
static void | drawNewLabeling (const QgsMapSettings &settings, QgsRenderContext &renderContext, QgsPalLabeling *labelingEngine) |
Protected Attributes | |
QImage | mFinalImage |
enum QgsMapRendererParallelJob:: { ... } | mStatus |
QFuture< void > | mFuture |
QFutureWatcher< void > | mFutureWatcher |
LayerRenderJobs | mLayerJobs |
QgsPalLabeling * | mLabelingEngine |
QgsRenderContext | mLabelingRenderContext |
QFuture< void > | mLabelingFuture |
QFutureWatcher< void > | mLabelingFutureWatcher |
Protected Attributes inherited from QgsMapRendererJob | |
QgsMapSettings | mSettings |
Errors | mErrors |
QgsMapRendererCache * | mCache |
QStringList | mRequestedGeomCacheForLayers |
list of layer IDs for which the geometry cache should be updated More... | |
QMap< QString, QgsGeometryCache > | mGeometryCaches |
map of geometry caches More... | |
QTime | mRenderingStart |
int | mRenderingTime |
Additional Inherited Members | |
Public Types inherited from QgsMapRendererJob | |
typedef QList< Error > | Errors |
Signals inherited from QgsMapRendererJob | |
void | finished () |
emitted when asynchronous rendering is finished (or canceled). More... | |
Protected Member Functions inherited from QgsMapRendererJob | |
LayerRenderJobs | prepareJobs (QPainter *painter, QgsPalLabeling *labelingEngine) |
void | cleanupJobs (LayerRenderJobs &jobs) |
bool | needTemporaryImage (QgsMapLayer *ml) |
void | updateLayerGeometryCaches () |
called when rendering has finished to update all layers' geometry caches More... | |
Job implementation that renders all layers in parallel.
The resulting map image can be retrieved with renderedImage() function. It is safe to call that function while rendering is active to see preview of the map.
Definition at line 28 of file qgsmaprendererparalleljob.h.
|
protected |
Enumerator | |
---|---|
Idle | |
RenderingLayers | |
RenderingLabels |
Definition at line 60 of file qgsmaprendererparalleljob.h.
QgsMapRendererParallelJob::QgsMapRendererParallelJob | ( | const QgsMapSettings & | settings | ) |
Definition at line 23 of file qgsmaprendererparalleljob.cpp.
QgsMapRendererParallelJob::~QgsMapRendererParallelJob | ( | ) |
Definition at line 30 of file qgsmaprendererparalleljob.cpp.
References cancel(), isActive(), and mLabelingEngine.
|
virtual |
Stop the rendering job - does not return until the job has terminated.
Does nothing if the rendering is not active.
Implements QgsMapRendererJob.
Definition at line 73 of file qgsmaprendererparalleljob.cpp.
References QgsMapRendererJob::finished(), Idle, isActive(), mFutureWatcher, mLabelingFutureWatcher, mLabelingRenderContext, mLayerJobs, mStatus, QgsDebugMsg, renderingFinished(), RenderingLabels, RenderingLayers, renderLayersFinished(), and QgsRenderContext::setRenderingStopped().
Referenced by ~QgsMapRendererParallelJob().
|
virtual |
Tell whether the rendering job is currently running in background.
Implements QgsMapRendererJob.
Definition at line 143 of file qgsmaprendererparalleljob.cpp.
Referenced by cancel(), start(), waitForFinished(), and ~QgsMapRendererParallelJob().
|
virtual |
Get a preview/resulting image.
Implements QgsMapRendererQImageJob.
Definition at line 153 of file qgsmaprendererparalleljob.cpp.
References QgsMapRendererJob::composeImage(), mFinalImage, mLayerJobs, QgsMapRendererJob::mSettings, mStatus, and RenderingLayers.
|
protectedslot |
all rendering is finished, including labeling
Definition at line 188 of file qgsmaprendererparalleljob.cpp.
References QgsMapRendererJob::finished(), Idle, QgsMapRendererJob::mRenderingStart, QgsMapRendererJob::mRenderingTime, mStatus, and QgsDebugMsg.
Referenced by cancel(), renderLayersFinished(), and waitForFinished().
|
staticprotected |
Definition at line 234 of file qgsmaprendererparalleljob.cpp.
References QgsMapRendererJob::drawLabeling(), QgsDebugMsg, and QgsException::what().
Referenced by renderLayersFinished().
|
protectedslot |
layers are rendered, labeling is still pending
Definition at line 161 of file qgsmaprendererparalleljob.cpp.
References QgsMapRendererJob::cleanupJobs(), QgsMapRendererJob::composeImage(), QgsMapSettings::DrawLabeling, QgsMapRendererJob::finished(), mFinalImage, mLabelingFuture, mLabelingFutureWatcher, mLabelingRenderContext, mLayerJobs, QgsMapRendererJob::mSettings, mStatus, QgsDebugMsg, renderingFinished(), RenderingLabels, RenderingLayers, QgsRenderContext::renderingStopped(), renderLabelsStatic(), and QgsMapSettings::testFlag().
Referenced by cancel(), start(), and waitForFinished().
|
staticprotected |
Definition at line 199 of file qgsmaprendererparalleljob.cpp.
References LayerRenderJob::cached, LayerRenderJob::context, QgsDebugMsg, QgsRenderContext::renderingStopped(), and QgsException::what().
Referenced by start().
|
virtual |
Start the rendering job and immediately return.
Does nothing if the rendering is already in progress.
Implements QgsMapRendererJob.
Definition at line 41 of file qgsmaprendererparalleljob.cpp.
References QgsMapSettings::DrawLabeling, QgsMapRendererJob::finished(), QgsPalLabeling::init(), isActive(), QgsPalLabeling::loadEngineSettings(), mFuture, mFutureWatcher, mLabelingEngine, mLayerJobs, QgsMapRendererJob::mRenderingStart, QgsMapRendererJob::mSettings, mStatus, QgsMapRendererJob::prepareJobs(), QgsDebugMsg, RenderingLayers, renderLayersFinished(), renderLayerStatic(), and QgsMapSettings::testFlag().
|
virtual |
Get pointer to internal labeling engine (in order to get access to the results)
Implements QgsMapRendererJob.
Definition at line 148 of file qgsmaprendererparalleljob.cpp.
References mLabelingEngine, and QgsPalLabeling::takeResults().
|
virtual |
Block until the job has finished.
Implements QgsMapRendererJob.
Definition at line 107 of file qgsmaprendererparalleljob.cpp.
References QgsMapRendererJob::finished(), Idle, isActive(), mFutureWatcher, mLabelingFutureWatcher, mStatus, QgsDebugMsg, renderingFinished(), RenderingLabels, RenderingLayers, and renderLayersFinished().
|
protected |
Definition at line 58 of file qgsmaprendererparalleljob.h.
Referenced by renderedImage(), and renderLayersFinished().
|
protected |
Definition at line 62 of file qgsmaprendererparalleljob.h.
Referenced by start().
|
protected |
Definition at line 63 of file qgsmaprendererparalleljob.h.
Referenced by cancel(), start(), and waitForFinished().
|
protected |
Definition at line 67 of file qgsmaprendererparalleljob.h.
Referenced by start(), takeLabelingResults(), and ~QgsMapRendererParallelJob().
|
protected |
Definition at line 69 of file qgsmaprendererparalleljob.h.
Referenced by renderLayersFinished().
|
protected |
Definition at line 70 of file qgsmaprendererparalleljob.h.
Referenced by cancel(), renderLayersFinished(), and waitForFinished().
|
protected |
Definition at line 68 of file qgsmaprendererparalleljob.h.
Referenced by cancel(), and renderLayersFinished().
|
protected |
Definition at line 65 of file qgsmaprendererparalleljob.h.
Referenced by cancel(), renderedImage(), renderLayersFinished(), and start().
enum { ... } QgsMapRendererParallelJob::mStatus |
Referenced by cancel(), isActive(), renderedImage(), renderingFinished(), renderLayersFinished(), start(), and waitForFinished().