Marble

GeoSceneParser.cpp
1 /*
2  SPDX-FileCopyrightText: 2007, 2008 Nikolas Zimmermann <[email protected]>
3 
4  SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 
8 // Own
9 #include "GeoSceneParser.h"
10 
11 // Marble
12 #include "MarbleDebug.h"
13 
14 // Geodata
15 #include "GeoDocument.h"
16 #include "GeoSceneDocument.h"
17 #include "GeoTagHandler.h"
18 
19 // DGML support
20 #include "DgmlElementDictionary.h"
21 
22 namespace Marble
23 {
24 
25 GeoSceneParser::GeoSceneParser(GeoSceneSourceType source)
26  : GeoParser(source)
27 {
28 }
29 
30 GeoSceneParser::~GeoSceneParser()
31 {
32  // nothing to do
33 }
34 
35 bool GeoSceneParser::isValidRootElement()
36 {
37  switch ((GeoSceneSourceType) m_source) {
38  case GeoScene_DGML:
39  return isValidElement(dgml::dgmlTag_Dgml);
40  default:
41  Q_ASSERT(false);
42  return false;
43  }
44 }
45 
46 bool GeoSceneParser::isValidElement(const QString& tagName) const
47 {
48  if (!GeoParser::isValidElement(tagName))
49  return false;
50 
51  switch ((GeoSceneSourceType) m_source) {
52  case GeoScene_DGML:
53  return (namespaceUri() == QLatin1String(dgml::dgmlTag_nameSpace20));
54  default:
55  break;
56  }
57 
58  // Should never be reached.
59  Q_ASSERT(false);
60  return false;
61 }
62 
63 GeoDocument* GeoSceneParser::createDocument() const
64 {
65  return new GeoSceneDocument;
66 }
67 
68 // Global helper function for the tag handlers
69 GeoSceneDocument* geoSceneDoc(GeoParser& parser)
70 {
71  GeoDocument* document = parser.activeDocument();
72  Q_ASSERT(document->isGeoSceneDocument());
73  return static_cast<GeoSceneDocument*>(document);
74 }
75 
76 }
Binds a QML item to a specific geodetic location in screen coordinates.
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Oct 2 2023 03:52:08 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.