QGIS API Documentation  2.4.0-Chugiak
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Protected Types | Protected Slots | Static Protected Member Functions | Protected Attributes | List of all members
QgsMapRendererParallelJob Class Reference

Job implementation that renders all layers in parallel. More...

#include <qgsmaprendererparalleljob.h>

Inheritance diagram for QgsMapRendererParallelJob:
Inheritance graph
[legend]
Collaboration diagram for QgsMapRendererParallelJob:
Collaboration graph
[legend]

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 QgsLabelingResultstakeLabelingResults ()
 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
 
QgsPalLabelingmLabelingEngine
 
QgsRenderContext mLabelingRenderContext
 
QFuture< void > mLabelingFuture
 
QFutureWatcher< void > mLabelingFutureWatcher
 
- Protected Attributes inherited from QgsMapRendererJob
QgsMapSettings mSettings
 
Errors mErrors
 
QgsMapRendererCachemCache
 
QStringList mRequestedGeomCacheForLayers
 list of layer IDs for which the geometry cache should be updated More...
 
QMap< QString, QgsGeometryCachemGeometryCaches
 map of geometry caches More...
 
QTime mRenderingStart
 
int mRenderingTime
 

Additional Inherited Members

- Public Types inherited from QgsMapRendererJob
typedef QList< ErrorErrors
 
- 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...
 

Detailed Description

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.

Note
added in 2.4

Definition at line 28 of file qgsmaprendererparalleljob.h.

Member Enumeration Documentation

anonymous enum
protected
Enumerator
Idle 
RenderingLayers 
RenderingLabels 

Definition at line 60 of file qgsmaprendererparalleljob.h.

Constructor & Destructor Documentation

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.

Member Function Documentation

void QgsMapRendererParallelJob::cancel ( )
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().

bool QgsMapRendererParallelJob::isActive ( ) const
virtual

Tell whether the rendering job is currently running in background.

Implements QgsMapRendererJob.

Definition at line 143 of file qgsmaprendererparalleljob.cpp.

References Idle, and mStatus.

Referenced by cancel(), start(), waitForFinished(), and ~QgsMapRendererParallelJob().

QImage QgsMapRendererParallelJob::renderedImage ( )
virtual
void QgsMapRendererParallelJob::renderingFinished ( )
protectedslot
void QgsMapRendererParallelJob::renderLabelsStatic ( QgsMapRendererParallelJob self)
staticprotected
void QgsMapRendererParallelJob::renderLayersFinished ( )
protectedslot
void QgsMapRendererParallelJob::renderLayerStatic ( LayerRenderJob job)
staticprotected
void QgsMapRendererParallelJob::start ( )
virtual
QgsLabelingResults * QgsMapRendererParallelJob::takeLabelingResults ( )
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().

void QgsMapRendererParallelJob::waitForFinished ( )
virtual

Member Data Documentation

QImage QgsMapRendererParallelJob::mFinalImage
protected

Definition at line 58 of file qgsmaprendererparalleljob.h.

Referenced by renderedImage(), and renderLayersFinished().

QFuture<void> QgsMapRendererParallelJob::mFuture
protected

Definition at line 62 of file qgsmaprendererparalleljob.h.

Referenced by start().

QFutureWatcher<void> QgsMapRendererParallelJob::mFutureWatcher
protected

Definition at line 63 of file qgsmaprendererparalleljob.h.

Referenced by cancel(), start(), and waitForFinished().

QgsPalLabeling* QgsMapRendererParallelJob::mLabelingEngine
protected
QFuture<void> QgsMapRendererParallelJob::mLabelingFuture
protected

Definition at line 69 of file qgsmaprendererparalleljob.h.

Referenced by renderLayersFinished().

QFutureWatcher<void> QgsMapRendererParallelJob::mLabelingFutureWatcher
protected

Definition at line 70 of file qgsmaprendererparalleljob.h.

Referenced by cancel(), renderLayersFinished(), and waitForFinished().

QgsRenderContext QgsMapRendererParallelJob::mLabelingRenderContext
protected

Definition at line 68 of file qgsmaprendererparalleljob.h.

Referenced by cancel(), and renderLayersFinished().

LayerRenderJobs QgsMapRendererParallelJob::mLayerJobs
protected

Definition at line 65 of file qgsmaprendererparalleljob.h.

Referenced by cancel(), renderedImage(), renderLayersFinished(), and start().

enum { ... } QgsMapRendererParallelJob::mStatus

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