QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
maprenderer
qgsmaprenderertask.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsmaprenderertask.h
3
-------------------------
4
begin : Apr 2017
5
copyright : (C) 2017 by Mathieu Pellerin
6
email : nirvn dot asia at gmail dot com
7
***************************************************************************/
8
9
/***************************************************************************
10
* *
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU General Public License as published by *
13
* the Free Software Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
15
* *
16
***************************************************************************/
17
18
#ifndef QGSMAPRENDERERTASK_H
19
#define QGSMAPRENDERERTASK_H
20
21
#include "qgis_core.h"
22
#include "
qgis_sip.h
"
23
#include "
qgsabstractgeopdfexporter.h
"
24
#include "
qgsannotation.h
"
25
#include "
qgsannotationmanager.h
"
26
#include "
qgsmapdecoration.h
"
27
#include "
qgsmaprenderercustompainterjob.h
"
28
#include "
qgsmapsettings.h
"
29
#include "
qgstaskmanager.h
"
30
31
#include <QPainter>
32
#include <QPdfWriter>
33
34
class
QgsMapRendererCustomPainterJob
;
35
class
QgsAbstractGeospatialPdfExporter
;
36
45
class
CORE_EXPORT
QgsMapRendererTask
:
public
QgsTask
46
{
47
Q_OBJECT
48
49
public
:
51
enum
ErrorType
52
{
53
ImageAllocationFail
= 1,
54
ImageSaveFail
,
55
ImageUnsupportedFormat
56
};
57
58
#ifndef SIP_RUN
59
68
QgsMapRendererTask
(
69
const
QgsMapSettings
&ms,
70
const
QString &fileName,
71
const
QString &fileFormat = QString(
"PNG"
),
72
bool
forceRaster =
false
,
73
QgsTask::Flags
flags =
QgsTask::CanCancel
,
74
bool
geospatialPdf =
false
,
75
const
QgsAbstractGeospatialPdfExporter::ExportDetails
&geospatialPdfExportDetails =
QgsAbstractGeospatialPdfExporter::ExportDetails
()
76
);
77
#else
78
84
QgsMapRendererTask
(
const
QgsMapSettings
&ms,
const
QString &fileName,
const
QString &fileFormat = QString(
"PNG"
),
bool
forceRaster =
false
,
QgsTask::Flags
flags =
QgsTask::CanCancel
);
85
#endif
86
90
QgsMapRendererTask
(
const
QgsMapSettings
&ms, QPainter *p );
91
92
~QgsMapRendererTask
()
override
;
93
97
void
addAnnotations
(
const
QList<QgsAnnotation *> &annotations );
98
102
void
addDecorations
(
const
QList<QgsMapDecoration *> &decorations );
103
107
void
setSaveWorldFile
(
bool
save ) { mSaveWorldFile = save; }
108
112
void
setExportMetadata
(
bool
exportMetadata ) { mExportMetadata = exportMetadata; }
113
114
void
cancel
()
override
;
115
116
signals:
117
121
void
renderingComplete
();
122
126
void
errorOccurred
(
int
error );
127
128
protected
:
129
bool
run
()
override
;
130
void
finished
(
bool
result )
override
;
131
132
private
:
134
void
prepare();
135
bool
mErrored =
false
;
136
137
QgsMapSettings
mMapSettings;
138
139
QMutex mJobMutex;
140
std::unique_ptr< QgsMapRendererJob > mJob;
141
142
std::unique_ptr< QgsAbstractGeospatialPdfExporter > mGeospatialPdfExporter;
143
std::unique_ptr< QgsRenderedFeatureHandlerInterface > mRenderedFeatureHandler;
144
145
QPainter *mPainter =
nullptr
;
146
QPainter *mDestPainter =
nullptr
;
147
QImage mImage;
148
std::unique_ptr< QPdfWriter > mPdfWriter;
149
150
std::unique_ptr< QPainter > mTempPainter;
151
152
QString mFileName;
153
QString mFileFormat;
154
bool
mForceRaster =
false
;
155
bool
mSaveWorldFile =
false
;
156
bool
mExportMetadata =
false
;
157
bool
mGeospatialPDF =
false
;
158
QgsAbstractGeospatialPdfExporter::ExportDetails
mGeospatialPdfExportDetails;
159
160
QList< QgsAnnotation * > mAnnotations;
161
QList< QgsMapDecoration * > mDecorations;
162
QMap< QString, QString> mLayerIdToLayerNameMap;
163
QStringList mMapLayerOrder;
164
165
int
mError = 0;
166
};
167
168
// clazy:excludeall=qstring-allocations
169
170
#endif
QgsAbstractGeospatialPdfExporter
Abstract base class for Geospatial PDF exporters.
Definition
qgsabstractgeopdfexporter.h:134
QgsMapRendererCustomPainterJob
Job implementation that renders everything sequentially using a custom painter.
Definition
qgsmaprenderercustompainterjob.h:60
QgsMapRendererTask
QgsTask task which draws a map to an image file or a painter as a background task.
Definition
qgsmaprenderertask.h:46
QgsMapRendererTask::addDecorations
void addDecorations(const QList< QgsMapDecoration * > &decorations)
Adds decorations to be rendered on the map.
Definition
qgsmaprenderertask.cpp:159
QgsMapRendererTask::errorOccurred
void errorOccurred(int error)
Emitted when map rendering failed.
QgsMapRendererTask::ErrorType
ErrorType
Error type.
Definition
qgsmaprenderertask.h:52
QgsMapRendererTask::ImageUnsupportedFormat
@ ImageUnsupportedFormat
Format is unsupported on the platform.
Definition
qgsmaprenderertask.h:55
QgsMapRendererTask::ImageSaveFail
@ ImageSaveFail
Image save failure.
Definition
qgsmaprenderertask.h:54
QgsMapRendererTask::ImageAllocationFail
@ ImageAllocationFail
Image allocation failure.
Definition
qgsmaprenderertask.h:53
QgsMapRendererTask::setSaveWorldFile
void setSaveWorldFile(bool save)
Sets whether the image file will be georeferenced (embedded or via a world file).
Definition
qgsmaprenderertask.h:107
QgsMapRendererTask::setExportMetadata
void setExportMetadata(bool exportMetadata)
Sets whether metadata such as title and subject will be exported whenever possible.
Definition
qgsmaprenderertask.h:112
QgsMapRendererTask::QgsMapRendererTask
QgsMapRendererTask(const QgsMapSettings &ms, const QString &fileName, const QString &fileFormat=QString("PNG"), bool forceRaster=false, QgsTask::Flags flags=QgsTask::CanCancel, bool geospatialPdf=false, const QgsAbstractGeospatialPdfExporter::ExportDetails &geospatialPdfExportDetails=QgsAbstractGeospatialPdfExporter::ExportDetails())
Constructor for QgsMapRendererTask to render a map to an image file.
Definition
qgsmaprenderertask.cpp:117
QgsMapRendererTask::addAnnotations
void addAnnotations(const QList< QgsAnnotation * > &annotations)
Adds annotations to be rendered on the map.
Definition
qgsmaprenderertask.cpp:147
QgsMapRendererTask::~QgsMapRendererTask
~QgsMapRendererTask() override
QgsMapRendererTask::renderingComplete
void renderingComplete()
Emitted when the map rendering is successfully completed.
QgsMapSettings
Contains configuration for rendering maps.
Definition
qgsmapsettings.h:91
QgsTask::finished
virtual void finished(bool result)
If the task is managed by a QgsTaskManager, this will be called after the task has finished (whether ...
Definition
qgstaskmanager.h:281
QgsTask::run
virtual bool run()=0
Performs the task's operation.
QgsTask::Flags
QFlags< Flag > Flags
Definition
qgstaskmanager.h:79
QgsTask::cancel
virtual void cancel()
Notifies the task that it should terminate.
Definition
qgstaskmanager.cpp:98
QgsTask::QgsTask
QgsTask(const QString &description=QString(), QgsTask::Flags flags=AllFlags)
Constructor for QgsTask.
Definition
qgstaskmanager.cpp:36
QgsTask::CanCancel
@ CanCancel
Task can be canceled.
Definition
qgstaskmanager.h:73
qgis_sip.h
qgsabstractgeopdfexporter.h
qgsannotation.h
qgsannotationmanager.h
qgsmapdecoration.h
qgsmaprenderercustompainterjob.h
qgsmapsettings.h
qgstaskmanager.h
QgsAbstractGeospatialPdfExporter::ExportDetails
Definition
qgsabstractgeopdfexporter.h:264
Generated on
for QGIS API Documentation by
1.17.0