1 // SPDX-License-Identifier: LGPL-2.1-or-later 2 // 3 // SPDX-FileCopyrightText: 2013 Mayank Madan <maddiemadan@gmail.com> 4 // 5 6 #include "KmlGxTimeSpanTagHandler.h" 7 8 #include "MarbleDebug.h" 9 10 #include "KmlElementDictionary.h" 11 #include "KmlObjectTagHandler.h" 12 #include "GeoDataTimeSpan.h" 13 #include "GeoDataFeature.h" 14 #include "GeoDataAbstractView.h" 15 #include "GeoParser.h" 16 17 namespace Marble 18 { 19 namespace kml 20 { 21 namespace gx 22 { 23 KML_DEFINE_TAG_HANDLER_GX22(TimeSpan)24KML_DEFINE_TAG_HANDLER_GX22( TimeSpan ) 25 26 GeoNode* KmlTimeSpanTagHandler::parse( GeoParser& parser ) const 27 { 28 Q_ASSERT(parser.isStartElement() && parser.isValidElement(QLatin1String(kmlTag_TimeSpan))); 29 30 GeoStackItem parentItem = parser.parentElement(); 31 if ( parentItem.is<GeoDataFeature>() ) { 32 GeoDataTimeSpan timeSpan; 33 KmlObjectTagHandler::parseIdentifiers( parser, &timeSpan ); 34 parentItem.nodeAs<GeoDataFeature>()->setTimeSpan( timeSpan ); 35 return &parentItem.nodeAs<GeoDataFeature>()->timeSpan(); 36 } else if ( parentItem.is<GeoDataAbstractView>() ) { 37 GeoDataTimeSpan timeSpan; 38 KmlObjectTagHandler::parseIdentifiers( parser, &timeSpan ); 39 parentItem.nodeAs<GeoDataAbstractView>()->setTimeSpan( timeSpan ); 40 return &parentItem.nodeAs<GeoDataAbstractView>()->timeSpan(); 41 } 42 43 return nullptr; 44 } 45 46 } 47 } 48 } 49