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

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2013 Mayank Madan <maddiemadan@gmail.com>
0004 //
0005 
0006 #include "KmlViewRefreshModeTagHandler.h"
0007 
0008 #include "GeoDataLink.h"
0009 #include "GeoParser.h"
0010 #include "KmlElementDictionary.h"
0011 
0012 namespace Marble
0013 {
0014 namespace kml
0015 {
0016 
0017 KML_DEFINE_TAG_HANDLER( viewRefreshMode )
0018 
0019 GeoNode* KmlviewRefreshModeTagHandler::parse( GeoParser& parser ) const
0020 {
0021     Q_ASSERT(parser.isStartElement() && parser.isValidElement(QLatin1String(kmlTag_viewRefreshMode)));
0022 
0023     GeoStackItem parentItem = parser.parentElement();
0024     if ( parentItem.is<GeoDataLink>() ) {
0025         QString content = parser.readElementText().trimmed();
0026 
0027         GeoDataLink::ViewRefreshMode mode = GeoDataLink::Never;
0028         if (content == QLatin1String("onStop")) {
0029             mode = GeoDataLink::OnStop;
0030         } else if (content == QLatin1String("onRegion")) {
0031             mode = GeoDataLink::OnRegion;
0032         } else if (content == QLatin1String("onRequest")) {
0033             mode = GeoDataLink::OnRequest;
0034         }
0035 
0036         parentItem.nodeAs<GeoDataLink>()->setViewRefreshMode( mode );
0037     }
0038 
0039     return nullptr;
0040 }
0041 
0042 }
0043 }