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

0001 /*
0002     SPDX-FileCopyrightText: 2008-2009 Patrick Spendrin <ps_ml@gmx.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "KmlStyleMapTagHandler.h"
0008 
0009 #include "MarbleDebug.h"
0010 
0011 #include "KmlElementDictionary.h"
0012 #include "KmlObjectTagHandler.h"
0013 #include "GeoDataFeature.h"
0014 #include "GeoDataDocument.h"
0015 #include "GeoDataStyleMap.h"
0016 
0017 #include "GeoParser.h"
0018 
0019 namespace Marble
0020 {
0021 namespace kml
0022 {
0023 KML_DEFINE_TAG_HANDLER( StyleMap )
0024 
0025 GeoNode* KmlStyleMapTagHandler::parse( GeoParser& parser ) const
0026 {
0027     Q_ASSERT(parser.isStartElement() && parser.isValidElement(QLatin1String(kmlTag_StyleMap)));
0028 
0029     GeoStackItem parentItem = parser.parentElement();
0030     
0031     if( parentItem.represents( kmlTag_Document ) ) {
0032         GeoDataStyleMap styleMap;
0033         KmlObjectTagHandler::parseIdentifiers( parser, &styleMap );
0034         parentItem.nodeAs<GeoDataDocument>()->addStyleMap( styleMap );
0035         return &parentItem.nodeAs<GeoDataDocument>()->styleMap( styleMap.id() );
0036     } else if( parentItem.is<GeoDataFeature>() ) {
0037 /*        GeoDataStyleMap styleMap;
0038         parentItem.nodeAs<GeoDataFeature>()->setStyleMap( styleMap );*/
0039     }
0040 
0041     return nullptr;
0042 }
0043 
0044 }
0045 }