QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
qgsxmlutils.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsxmlutils.h
3
---------------------
4
begin : December 2013
5
copyright : (C) 2013 by Martin Dobias
6
email : wonder dot sk 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
#ifndef QGSXMLUTILS_H
16
#define QGSXMLUTILS_H
17
18
class
QDomDocument;
19
20
class
QgsRectangle
;
21
class
QgsBox3D
;
22
23
#include "
qgis.h
"
24
#include "qgis_core.h"
25
#include "
qgis_sip.h
"
26
27
#include <QDomElement>
28
#include <QMetaEnum>
29
#include <QString>
30
31
using namespace
Qt::StringLiterals;
32
37
class
CORE_EXPORT
QgsXmlUtils
38
{
39
public
:
40
/* reading */
41
48
static
Qgis::DistanceUnit
readMapUnits
(
const
QDomElement &element );
49
50
static
QgsRectangle
readRectangle
(
const
QDomElement &element );
51
58
static
QgsBox3D
readBox3D
(
const
QDomElement &element );
59
60
/* writing */
61
69
static
QDomElement
writeMapUnits
(
Qgis::DistanceUnit
units, QDomDocument &doc );
70
79
static
QDomElement
writeBox3D
(
const
QgsBox3D
&box, QDomDocument &doc,
const
QString &elementName = u
"extent3D"
_s );
80
88
static
QDomElement
writeRectangle
(
const
QgsRectangle
&rect, QDomDocument &doc,
const
QString &elementName = u
"extent"
_s );
89
103
static
QDomElement
writeVariant
(
const
QVariant &value, QDomDocument &doc );
104
108
static
QVariant
readVariant
(
const
QDomElement &element );
109
119
template
<
class
T>
static
T
readFlagAttribute
(
const
QDomElement &element,
const
QString &attributeName, T defaultValue )
SIP_SKIP
120
{
121
T value = defaultValue;
122
// Get source categories
123
const
QMetaEnum metaEnum = QMetaEnum::fromType<T>();
124
const
QString sourceCategoriesStr( element.attribute( attributeName, metaEnum.valueToKeys(
static_cast<
int
>
( defaultValue ) ) ) );
125
if
( metaEnum.isValid() )
126
{
127
bool
ok =
false
;
128
const
int
newValue = metaEnum.keysToValue( sourceCategoriesStr.toUtf8().constData(), &ok );
129
if
( ok )
130
value =
static_cast<
T
>
( newValue );
131
}
132
return
value;
133
}
134
};
135
136
137
#endif
// QGSXMLUTILS_H
Qgis::DistanceUnit
DistanceUnit
Units of distance.
Definition
qgis.h:5568
QgsBox3D
A 3-dimensional box composed of x, y, z coordinates.
Definition
qgsbox3d.h:45
QgsRectangle
A rectangle specified with double values.
Definition
qgsrectangle.h:47
QgsXmlUtils
Assorted helper methods for reading and writing chunks of XML.
Definition
qgsxmlutils.h:38
QgsXmlUtils::readFlagAttribute
static T readFlagAttribute(const QDomElement &element, const QString &attributeName, T defaultValue)
Read a flag value from an attribute of the element.
Definition
qgsxmlutils.h:119
QgsXmlUtils::writeVariant
static QDomElement writeVariant(const QVariant &value, QDomDocument &doc)
Write a QVariant to a QDomElement.
Definition
qgsxmlutils.cpp:146
QgsXmlUtils::readBox3D
static QgsBox3D readBox3D(const QDomElement &element)
Decodes a DOM element to a 3D box.
Definition
qgsxmlutils.cpp:42
QgsXmlUtils::readVariant
static QVariant readVariant(const QDomElement &element)
Read a QVariant from a QDomElement.
Definition
qgsxmlutils.cpp:301
QgsXmlUtils::readMapUnits
static Qgis::DistanceUnit readMapUnits(const QDomElement &element)
Decodes a distance unit from a DOM element.
Definition
qgsxmlutils.cpp:29
QgsXmlUtils::writeRectangle
static QDomElement writeRectangle(const QgsRectangle &rect, QDomDocument &doc, const QString &elementName=u"extent"_s)
Encodes a rectangle to a DOM element.
Definition
qgsxmlutils.cpp:121
QgsXmlUtils::readRectangle
static QgsRectangle readRectangle(const QDomElement &element)
Definition
qgsxmlutils.cpp:67
QgsXmlUtils::writeBox3D
static QDomElement writeBox3D(const QgsBox3D &box, QDomDocument &doc, const QString &elementName=u"extent3D"_s)
Encodes a 3D box to a DOM element.
Definition
qgsxmlutils.cpp:108
QgsXmlUtils::writeMapUnits
static QDomElement writeMapUnits(Qgis::DistanceUnit units, QDomDocument &doc)
Encodes a distance unit to a DOM element.
Definition
qgsxmlutils.cpp:96
qgis.h
qgis_sip.h
SIP_SKIP
#define SIP_SKIP
Definition
qgis_sip.h:138
Generated on
for QGIS API Documentation by
1.17.0