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 }