File indexing completed on 2024-06-02 03:51:06

0001 /*
0002     SPDX-FileCopyrightText: 2008 Patrick Spendrin <ps_ml@gmx.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "KmlStyleUrlTagHandler.h"
0008 
0009 #include <QString>
0010 
0011 #include "KmlElementDictionary.h"
0012 #include "MarbleDebug.h"
0013 #include "GeoDataFeature.h"
0014 #include "GeoDataStyleMap.h"
0015 
0016 #include "GeoParser.h"
0017 
0018 namespace Marble
0019 {
0020 namespace kml
0021 {
0022 KML_DEFINE_TAG_HANDLER( styleUrl )
0023 
0024 GeoNode* KmlstyleUrlTagHandler::parse( GeoParser& parser ) const
0025 {
0026     Q_ASSERT(parser.isStartElement() && parser.isValidElement(QLatin1String(kmlTag_styleUrl)));
0027 
0028     GeoStackItem parentItem = parser.parentElement();
0029     GeoStackItem grandParentItem = parser.parentElement();
0030     
0031     if( parentItem.represents( kmlTag_Pair ) ) {
0032         QString content = parser.readElementText().trimmed();
0033 
0034         QString key = parentItem.nodeAs<GeoDataStyleMap>()->lastKey();
0035         (*parentItem.nodeAs<GeoDataStyleMap>())[ key ] = content;
0036         parentItem.nodeAs<GeoDataStyleMap>()->setLastKey(QString());
0037 
0038     } else if( parentItem.is<GeoDataFeature>() ) {
0039         QString content = parser.readElementText().trimmed();
0040 
0041         parentItem.nodeAs<GeoDataFeature>()->setStyleUrl( content );
0042     }
0043     return nullptr;
0044 }
0045 
0046 }
0047 }