QGIS API Documentation
2.18.21-Las Palmas (9fba24a)
|
Job implementation that renders everything sequentially using a custom painter. More...
#include <qgsmaprenderercustompainterjob.h>
Public Member Functions | |
QgsMapRendererCustomPainterJob (const QgsMapSettings &settings, QPainter *painter) | |
~QgsMapRendererCustomPainterJob () | |
virtual void | cancel () override |
Stop the rendering job - does not return until the job has terminated. More... | |
virtual void | cancelWithoutBlocking () override |
Triggers cancellation of the rendering job without blocking. More... | |
virtual bool | isActive () const override |
Tell whether the rendering job is currently running in background. More... | |
const LayerRenderJobs & | jobs () const |
void | renderSynchronously () |
Render the map synchronously in this thread. More... | |
virtual void | start () override |
Start the rendering job and immediately return. More... | |
virtual QgsLabelingResults * | takeLabelingResults () override |
Get pointer to internal labeling engine (in order to get access to the results) More... | |
virtual void | waitForFinished () override |
Block until the job has finished. More... | |
void | waitForFinishedWithEventLoop (const QEventLoop::ProcessEventsFlags &flags=QEventLoop::AllEvents) |
Wait for the job to be finished - and keep the thread's event loop running while waiting. More... | |
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... | |
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... | |
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 Slots | |
void | futureFinished () |
Protected Member Functions | |
void | doRender () |
Protected Member Functions inherited from QgsMapRendererJob | |
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 void | staticRender (QgsMapRendererCustomPainterJob *self) |
Static Protected Member Functions inherited from QgsMapRendererJob | |
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) |
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... | |
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) |
Protected Attributes inherited from QgsMapRendererJob | |
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 |
Properties inherited from QObject | |
objectName | |
Job implementation that renders everything sequentially using a custom painter.
Also supports synchronous rendering in main thread for cases when rendering in background is not an option because of some technical limitations (e.g. printing to printer on some platforms).
Definition at line 32 of file qgsmaprenderercustompainterjob.h.
QgsMapRendererCustomPainterJob::QgsMapRendererCustomPainterJob | ( | const QgsMapSettings & | settings, |
QPainter * | painter | ||
) |
Definition at line 29 of file qgsmaprenderercustompainterjob.cpp.
QgsMapRendererCustomPainterJob::~QgsMapRendererCustomPainterJob | ( | ) |
Definition at line 40 of file qgsmaprenderercustompainterjob.cpp.
|
overridevirtual |
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 119 of file qgsmaprenderercustompainterjob.cpp.
|
overridevirtual |
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.
Implements QgsMapRendererJob.
Definition at line 143 of file qgsmaprenderercustompainterjob.cpp.
|
protected |
Definition at line 248 of file qgsmaprenderercustompainterjob.cpp.
|
protectedslot |
Definition at line 211 of file qgsmaprenderercustompainterjob.cpp.
|
overridevirtual |
Tell whether the rendering job is currently running in background.
Implements QgsMapRendererJob.
Definition at line 177 of file qgsmaprenderercustompainterjob.cpp.
|
inline |
Definition at line 47 of file qgsmaprenderercustompainterjob.h.
void QgsMapRendererCustomPainterJob::renderSynchronously | ( | ) |
Render the map synchronously in this thread.
The function does not return until the map is completely rendered.
This is an alternative to ordinary API (using start() + waiting for finished() signal). Users are discouraged to use this method unless they have a strong reason for doing it. The synchronous rendering blocks the main thread, making the application unresponsive. Also, it is not possible to cancel rendering while it is in progress.
Definition at line 202 of file qgsmaprenderercustompainterjob.cpp.
|
overridevirtual |
Start the rendering job and immediately return.
Does nothing if the rendering is already in progress.
Implements QgsMapRendererJob.
Definition at line 53 of file qgsmaprenderercustompainterjob.cpp.
|
staticprotected |
Definition at line 226 of file qgsmaprenderercustompainterjob.cpp.
|
overridevirtual |
Get pointer to internal labeling engine (in order to get access to the results)
Implements QgsMapRendererJob.
Definition at line 183 of file qgsmaprenderercustompainterjob.cpp.
|
overridevirtual |
Block until the job has finished.
Implements QgsMapRendererJob.
Definition at line 160 of file qgsmaprenderercustompainterjob.cpp.
void QgsMapRendererCustomPainterJob::waitForFinishedWithEventLoop | ( | const QEventLoop::ProcessEventsFlags & | flags = QEventLoop::AllEvents | ) |
Wait for the job to be finished - and keep the thread's event loop running while waiting.
With a call to waitForFinished(), the waiting is done with a synchronization primitive and does not involve processing of messages. That may cause issues to code which requires some events to be handled in the main thread. Some plugins hooking into the rendering pipeline may require this in order to work properly - for example, OpenLayers plugin which uses a QWebPage in the main thread.
Ideally the "wait for finished" method should not be used at all. The code triggering rendering should not need to actively wait for rendering to finish.
Definition at line 194 of file qgsmaprenderercustompainterjob.cpp.