QGIS API Documentation 4.0.0-Norrköping (1ddcee3d0e4)
Loading...
Searching...
No Matches
qgsmaprendererstagedrenderjob.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsmaprendererstagedrenderjob.h
3 --------------------------------------
4 Date : August 2019
5 Copyright : (C) 2019 by Nyall Dawson
6 Email : nyall dot dawson at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSMAPRENDERERSTAGEDRENDERJOB_H
17#define QGSMAPRENDERERSTAGEDRENDERJOB_H
18
19#include "qgis_core.h"
20#include "qgis_sip.h"
22
23#define SIP_NO_FILE
24
33{
34 Q_OBJECT
35 public:
39 enum Flag
40 {
42 = 0x01,
43 };
44 Q_DECLARE_FLAGS( Flags, Flag )
45
46
55
62 QgsMapRendererStagedRenderJob( const QgsMapSettings &settings, Flags flags = Flags() );
64
65 void cancel() override;
66 void cancelWithoutBlocking() override;
67 void waitForFinished() override;
68 bool isActive() const override;
69 bool usedCachedLabels() const override;
71
77 bool renderCurrentPart( QPainter *painter );
78
85 bool nextPart();
86
90 bool isFinished() const;
91
95 QString currentLayerId() const;
96
102 double currentLayerOpacity() const;
103
109 QPainter::CompositionMode currentLayerCompositionMode() const;
110
114 RenderStage currentStage() const;
115
116 private:
117 void startPrivate() override;
118
119 std::unique_ptr< QgsLabelingEngine > mLabelingEngineV2;
120
121 std::vector< LayerRenderJob > mLayerJobs;
122 LabelRenderJob mLabelJob;
123 std::vector< LayerRenderJob >::iterator mJobIt;
124
125 bool mNextIsLabel = false;
126 bool mExportedLabels = false;
127 Flags mFlags = Flags();
128 bool mPreparedStagedLabelJob = false;
129 QStringList mLabelingLayers;
130 QStringList::iterator mLabelLayerIt;
131};
132
133#endif // QGSMAPRENDERERSTAGEDRENDERJOB_H
Provides map labeling functionality.
Stores computed placement from labeling engine.
QgsMapRendererAbstractCustomPainterJob(const QgsMapSettings &settings)
Constructor for QgsMapRendererAbstractCustomPainterJob, using the given map settings.
virtual void waitForFinished()=0
Block until the job has finished.
virtual bool usedCachedLabels() const =0
Returns true if the render job was able to use a cached labeling solution.
virtual bool isActive() const =0
Tell whether the rendering job is currently running in background.
virtual QgsLabelingResults * takeLabelingResults()=0
Gets pointer to internal labeling engine (in order to get access to the results).
virtual void cancel()=0
Stop the rendering job - does not return until the job has terminated.
virtual void cancelWithoutBlocking()=0
Triggers cancellation of the rendering job without blocking.
Render job implementation that renders maps in stages, allowing different stages (e....
Flag
Flags which control the staged render job behavior.
@ RenderLabelsByMapLayer
Labels should be rendered in individual stages by map layer. This allows separation of labels belongi...
QgsMapRendererStagedRenderJob(const QgsMapSettings &settings, Flags flags=Flags())
Constructor for QgsMapRendererStagedRenderJob, using the given map settings.
RenderStage
Represents the stages of a rendering job.
Contains configuration for rendering maps.
#define SIP_TRANSFER
Definition qgis_sip.h:35