QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
layout
qgscompositionconverter.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgscompositionconverter.h - Convert a QGIS 2.x composition to a layout
3
4
---------------------
5
begin : 13.12.2017
6
copyright : (C) 2017 by Alessandro Pasotti
7
email : elpaso at itopen dot it
8
***************************************************************************
9
* *
10
* This program is free software; you can redistribute it and/or modify *
11
* it under the terms of the GNU General Public License as published by *
12
* the Free Software Foundation; either version 2 of the License, or *
13
* (at your option) any later version. *
14
* *
15
***************************************************************************/
16
#ifndef QGSCOMPOSITIONCONVERTER_H
17
#define QGSCOMPOSITIONCONVERTER_H
18
19
20
#include "
qgis_sip.h
"
21
#include "
qgspropertycollection.h
"
22
23
#include <QDomDocument>
24
#include <QDomElement>
25
26
#define SIP_NO_FILE
27
28
class
QgsPrintLayout
;
29
class
QgsLayoutItem
;
30
class
QgsLayoutObject
;
31
class
QgsReadWriteContext
;
32
class
QgsProperty
;
33
class
QgsPropertyCollection
;
34
35
class
QgsLayoutItemLabel
;
36
class
QgsLayoutItemShape
;
37
class
QgsLayoutItemPicture
;
38
class
QgsLayoutItemPolygon
;
39
class
QgsLayoutItemPolyline
;
40
class
QgsLayoutItemMap
;
41
class
QgsLayoutItemScaleBar
;
42
class
QgsLayoutItemLegend
;
43
class
QgsLayoutItemHtml
;
44
class
QgsLayoutItemAttributeTable
;
45
class
QgsLayoutItemGroup
;
46
class
QgsLayoutAtlas
;
47
class
QgsProject
;
48
54
class
CORE_EXPORT
QgsCompositionConverter
55
{
56
public
:
60
enum class
DataDefinedProperty
61
{
62
NoProperty = 0,
63
AllProperties,
64
TestProperty,
65
//composer page properties
66
PresetPaperSize,
67
PaperWidth,
68
PaperHeight,
69
NumPages,
70
PaperOrientation,
71
//general composer item properties
72
PageNumber,
73
PositionX,
74
PositionY,
75
ItemWidth,
76
ItemHeight,
77
ItemRotation,
78
Transparency,
79
Opacity,
80
BlendMode,
81
ExcludeFromExports,
82
FrameColor,
83
BackgroundColor,
84
//composer map
85
MapRotation,
86
MapScale,
87
MapXMin,
88
MapYMin,
89
MapXMax,
90
MapYMax,
91
MapAtlasMargin,
92
MapLayers,
93
MapStylePreset,
94
//composer picture
95
PictureSource,
96
PictureSvgBackgroundColor,
97
PictureSvgStrokeColor,
98
PictureSvgStrokeWidth,
99
//html item
100
SourceUrl,
101
//legend item
102
LegendTitle,
103
LegendColumnCount,
104
//scalebar item
105
ScalebarFillColor,
106
ScalebarFillColor2,
107
ScalebarLineColor,
108
ScalebarLineWidth,
109
};
110
114
enum
MarkerMode
115
{
116
DefaultMarker
,
117
NoMarker
,
118
SVGMarker
119
};
120
121
127
static
std::unique_ptr<QgsPrintLayout> createLayoutFromCompositionXml(
const
QDomElement &composerElement,
QgsProject
*project );
128
129
139
static
QList<QgsLayoutObject *> addItemsFromCompositionXml(
QgsPrintLayout
*layout,
const
QDomElement &parentElement, QPointF *position =
nullptr
,
bool
pasteInPlace =
false
);
140
145
static
bool
isCompositionTemplate(
const
QDomDocument &document );
146
153
static
QDomDocument convertCompositionTemplate(
const
QDomDocument &document,
QgsProject
*project );
154
155
156
private
:
158
static
QgsPropertiesDefinition
sPropertyDefinitions;
159
160
161
static
bool
readLabelXml(
QgsLayoutItemLabel
*layoutItem,
const
QDomElement &itemElem,
const
QgsProject
*project );
162
163
static
bool
readShapeXml(
QgsLayoutItemShape
*layoutItem,
const
QDomElement &itemElem,
const
QgsProject
*project );
164
165
static
bool
readPictureXml(
QgsLayoutItemPicture
*layoutItem,
const
QDomElement &itemElem,
const
QgsProject
*project,
const
QgsStringMap
&mapId2Uuid );
166
168
template
<
class
T,
class
T2>
static
bool
readPolyXml( T *layoutItem,
const
QDomElement &itemElem,
const
QgsProject
*project );
169
170
static
bool
readArrowXml(
QgsLayoutItemPolyline
*layoutItem,
const
QDomElement &itemElem,
const
QgsProject
*project );
171
172
static
bool
readMapXml(
QgsLayoutItemMap
*layoutItem,
const
QDomElement &itemElem,
const
QgsProject
*project,
QgsStringMap
&mapId2Uuid );
173
174
static
bool
readScaleBarXml(
QgsLayoutItemScaleBar
*layoutItem,
const
QDomElement &itemElem,
const
QgsProject
*project,
const
QgsStringMap
&mapId2Uuid );
175
176
static
bool
readLegendXml(
QgsLayoutItemLegend
*layoutItem,
const
QDomElement &itemElem,
const
QgsProject
*project,
const
QgsStringMap
&mapId2Uuid );
177
178
static
bool
readAtlasXml(
QgsLayoutAtlas
*atlasItem,
const
QDomElement &itemElem,
const
QgsProject
*project );
179
180
static
bool
readHtmlXml(
QgsLayoutItemHtml
*layoutItem,
const
QDomElement &itemElem,
const
QgsProject
*project );
181
182
static
bool
readTableXml(
QgsLayoutItemAttributeTable
*layoutItem,
const
QDomElement &itemElem,
const
QgsProject
*project );
183
184
static
bool
readGroupXml(
QgsLayoutItemGroup
*layoutItem,
const
QDomElement &itemElem,
const
QgsProject
*project,
const
QList<QgsLayoutObject *> &items );
185
186
static
bool
readOldComposerObjectXml(
QgsLayoutObject
*layoutItem,
const
QDomElement &itemElem );
187
188
static
void
readOldDataDefinedPropertyMap(
const
QDomElement &itemElem,
QgsPropertyCollection
&dataDefinedProperties );
189
190
static
QgsProperty
readOldDataDefinedProperty( DataDefinedProperty property,
const
QDomElement &ddElem );
191
192
static
void
initPropertyDefinitions();
193
194
static
QgsPropertiesDefinition
propertyDefinitions();
195
197
static
bool
readXml(
QgsLayoutItem
*layoutItem,
const
QDomElement &itemElem );
198
200
static
void
adjustPos(
QgsPrintLayout
*layout,
QgsLayoutItem
*layoutItem, QPointF *position,
bool
&pasteInPlace,
int
zOrderOffset, QPointF &pasteShiftPos,
int
&pageNumber );
201
203
static
void
restoreGeneralComposeItemProperties(
QgsLayoutItem
*layoutItem,
const
QDomElement &itemElem );
204
206
static
QRectF itemPosition(
QgsLayoutItem
*layoutItem,
const
QDomElement &itemElem );
207
209
static
QPointF minPointFromXml(
const
QDomElement &elem );
210
};
211
212
#endif
// QGSCOMPOSITIONCONVERTER_H
QgsCompositionConverter
Converts a QGIS 2.x composition to a QGIS 3.x layout.
Definition
qgscompositionconverter.h:55
QgsCompositionConverter::DataDefinedProperty
DataDefinedProperty
Composition data defined properties for different item types.
Definition
qgscompositionconverter.h:61
QgsCompositionConverter::MarkerMode
MarkerMode
The MarkerMode enum is the old QGIS 2.x arrow marker mode.
Definition
qgscompositionconverter.h:115
QgsCompositionConverter::DefaultMarker
@ DefaultMarker
Definition
qgscompositionconverter.h:116
QgsCompositionConverter::SVGMarker
@ SVGMarker
Definition
qgscompositionconverter.h:118
QgsCompositionConverter::NoMarker
@ NoMarker
Definition
qgscompositionconverter.h:117
QgsLayoutAtlas
Used to render QgsLayout as an atlas, by iterating over the features from an associated vector layer.
Definition
qgslayoutatlas.h:42
QgsLayoutItemAttributeTable
A layout table subclass that displays attributes from a vector layer.
Definition
qgslayoutitemattributetable.h:34
QgsLayoutItemGroup
A container for grouping several QgsLayoutItems.
Definition
qgslayoutitemgroup.h:28
QgsLayoutItemHtml
A layout multiframe subclass for HTML content.
Definition
qgslayoutitemhtml.h:38
QgsLayoutItemLabel
A layout item subclass for text labels.
Definition
qgslayoutitemlabel.h:36
QgsLayoutItemLegend
A layout item subclass for map legends.
Definition
qgslayoutitemlegend.h:149
QgsLayoutItemMap
Layout graphical items for displaying a map.
Definition
qgslayoutitemmap.h:331
QgsLayoutItemPicture
A layout item subclass that displays SVG files or raster format images (jpg, png, ....
Definition
qgslayoutitempicture.h:36
QgsLayoutItemPolygon
Layout item for node based polygon shapes.
Definition
qgslayoutitempolygon.h:30
QgsLayoutItemPolyline
Layout item for node based polyline shapes.
Definition
qgslayoutitempolyline.h:34
QgsLayoutItemScaleBar
A layout item subclass for scale bars.
Definition
qgslayoutitemscalebar.h:36
QgsLayoutItemShape
Layout item for basic filled shapes (e.g.
Definition
qgslayoutitemshape.h:31
QgsLayoutItem
Base class for graphical items within a QgsLayout.
Definition
qgslayoutitem.h:106
QgsLayoutObject
A base class for objects which belong to a layout.
Definition
qgslayoutobject.h:40
QgsPrintLayout
Print layout, a QgsLayout subclass for static or atlas-based layouts.
Definition
qgsprintlayout.h:30
QgsProject
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition
qgsproject.h:114
QgsPropertyCollection
A grouped map of multiple QgsProperty objects, each referenced by an integer key value.
Definition
qgspropertycollection.h:348
QgsProperty
A store for object properties.
Definition
qgsproperty.h:228
QgsReadWriteContext
A container for the context for various read/write operations on objects.
Definition
qgsreadwritecontext.h:38
QgsStringMap
QMap< QString, QString > QgsStringMap
Definition
qgis.h:8350
qgis_sip.h
qgspropertycollection.h
QgsPropertiesDefinition
QMap< int, QgsPropertyDefinition > QgsPropertiesDefinition
Definition of available properties.
Definition
qgspropertycollection.h:32
Generated on
for QGIS API Documentation by
1.17.0