1 /*
2     SPDX-FileCopyrightText: 2008 Nikolas Zimmermann <zimmermann@kde.org>
3 
4     SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #include "DgmlTargetTagHandler.h"
8 
9 #include "DgmlElementDictionary.h"
10 #include "DgmlAttributeDictionary.h"
11 #include "GeoParser.h"
12 #include "GeoSceneHead.h"
13 #include "GeoSceneLayer.h"
14 #include "GeoSceneMap.h"
15 
16 namespace Marble
17 {
18 namespace dgml
19 {
DGML_DEFINE_TAG_HANDLER(Target)20 DGML_DEFINE_TAG_HANDLER(Target)
21 
22 GeoNode* DgmlTargetTagHandler::parse(GeoParser& parser) const
23 {
24     // Check whether the tag is valid
25     Q_ASSERT(parser.isStartElement() && parser.isValidElement(QLatin1String(dgmlTag_Target)));
26 
27     QString const targetRadius = parser.attribute( dgmlAttr_radius ).trimmed();
28 
29     // Checking for parent item
30     GeoStackItem parentItem = parser.parentElement();
31     if (parentItem.represents(dgmlTag_Head)) {
32         parentItem.nodeAs<GeoSceneHead>()->setTarget( parser.readElementText().trimmed() );
33         if ( !targetRadius.isEmpty() ) {
34             parentItem.nodeAs<GeoSceneHead>()->setRadius( targetRadius.toDouble() );
35         }
36     }
37 
38     if (parentItem.represents(dgmlTag_Map)) {
39 /*        GeoSceneLayer *layer = new GeoSceneLayer( "$MARBLETARGET$" );
40         parentItem.nodeAs<GeoSceneMap>()->addLayer( layer );*/
41     }
42 
43     return nullptr;
44 }
45 
46 }
47 }
48