Marble

GeoDataExtendedData.cpp
1// SPDX-License-Identifier: LGPL-2.1-or-later
2//
3// SPDX-FileCopyrightText: 2010 Harshit Jain <hjain.itbhu@gmail.com>
4// SPDX-FileCopyrightText: 2011 Niko Sams <niko.sams@gmail.com>
5//
6
7#include "GeoDataExtendedData.h"
8#include "GeoDataExtendedData_p.h"
9#include <QDataStream>
10
11#include "GeoDataTypes.h"
12
13namespace Marble
14{
15
16GeoDataExtendedData::GeoDataExtendedData() :
17 GeoNode(),
18 Serializable(),
19 d(new GeoDataExtendedDataPrivate)
20{
21}
22
23GeoDataExtendedData::GeoDataExtendedData(const GeoDataExtendedData &other) :
24 GeoNode(other),
25 Serializable(),
26 d(new GeoDataExtendedDataPrivate(*other.d))
27{
28}
29
30bool GeoDataExtendedData::operator==( const GeoDataExtendedData& other ) const
31{
32 return d->hash == other.d->hash &&
33 d->arrayHash == other.d->arrayHash;
34}
35
36GeoDataExtendedData::~GeoDataExtendedData()
37{
38 qDeleteAll( d->arrayHash );
39 delete d;
40}
41
42GeoDataExtendedData& GeoDataExtendedData::operator=( const GeoDataExtendedData& other )
43{
44 GeoNode::operator=(other);
45 *d = *other.d;
46 return *this;
47}
48
49bool GeoDataExtendedData::operator!=( const GeoDataExtendedData &other ) const
50{
51 return !this->operator==(other);
52}
53
54const char* GeoDataExtendedData::nodeType() const
55{
56 return GeoDataTypes::GeoDataExtendedDataType;
57}
58
59GeoDataData& GeoDataExtendedData::valueRef( const QString& key ) const
60{
61 return d->hash[ key ];
62}
63
64GeoDataData GeoDataExtendedData::value( const QString& key ) const
65{
66 return d->hash.value( key );
67}
68
69void GeoDataExtendedData::addValue( const GeoDataData& data )
70{
71 d->hash.insert( data.name(), data );
72}
73
74void GeoDataExtendedData::removeKey(const QString &key)
75{
76 d->hash.remove(key);
77}
78
79QHash< QString, GeoDataData >::const_iterator GeoDataExtendedData::constBegin( ) const
80{
81 return d->hash.constBegin();
82}
83
84QHash< QString, GeoDataData >::const_iterator GeoDataExtendedData::constEnd( ) const
85{
86 return d->hash.constEnd();
87}
88
89int GeoDataExtendedData::size() const
90{
91 return d->hash.size();
92}
93
94bool GeoDataExtendedData::isEmpty( ) const
95{
96 return d->hash.empty() && d->schemaDataHash.empty();
97}
98
99bool GeoDataExtendedData::contains( const QString &key ) const
100{
101 return d->hash.contains( key );
102}
103
104void GeoDataExtendedData::setSimpleArrayData( const QString& key, GeoDataSimpleArrayData *values )
105{
106 d->arrayHash[ key ] = values;
107}
108
109GeoDataSimpleArrayData* GeoDataExtendedData::simpleArrayData( const QString& key ) const
110{
111 if ( !d->arrayHash.contains( key ) ) return nullptr;
112 return d->arrayHash[ key ];
113}
114
115GeoDataSchemaData& GeoDataExtendedData::schemaData( const QString& schemaUrl ) const
116{
117 return d->schemaDataHash[ schemaUrl ];
118}
119
120void GeoDataExtendedData::addSchemaData( const GeoDataSchemaData& schemaData )
121{
122 d->schemaDataHash.insert( schemaData.schemaUrl(), schemaData );
123 d->schemaDataHash[schemaData.schemaUrl()].setParent( this );
124}
125
126void GeoDataExtendedData::removeSchemaData( const QString& schemaUrl )
127{
128 GeoDataSchemaData schemaData = d->schemaDataHash.take( schemaUrl );
129 schemaData.setParent( nullptr );
130}
131
132QList<GeoDataSchemaData> GeoDataExtendedData::schemaDataList() const
133{
134 return d->schemaDataHash.values();
135}
136
137void GeoDataExtendedData::pack( QDataStream& stream ) const
138{
139 Q_UNUSED(stream)
140}
141
142void GeoDataExtendedData::unpack( QDataStream& stream )
143{
144 Q_UNUSED(stream)
145}
146
147}
a class which allows to add custom data to KML Feature.
void setParent(GeoDataObject *parent)
Sets the parent of the object.
Binds a QML item to a specific geodetic location in screen coordinates.
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri May 24 2024 11:50:52 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.