File indexing completed on 2024-06-02 03:50:58

0001 /*
0002     SPDX-FileCopyrightText: 2008 Nikolas Zimmermann <zimmermann@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "DgmlDiscreteTagHandler.h"
0008 
0009 #include "DgmlElementDictionary.h"
0010 #include "DgmlAuxillaryDictionary.h"
0011 #include "GeoParser.h"
0012 #include "GeoSceneZoom.h"
0013 
0014 namespace Marble
0015 {
0016 namespace dgml
0017 {
0018 DGML_DEFINE_TAG_HANDLER(Discrete)
0019 
0020 GeoNode* DgmlDiscreteTagHandler::parse(GeoParser& parser) const
0021 {
0022     // Check whether the tag is valid
0023     Q_ASSERT(parser.isStartElement() && parser.isValidElement(QLatin1String(dgmlTag_Discrete)));
0024 
0025     // Checking for parent item
0026     GeoStackItem parentItem = parser.parentElement();
0027     if (parentItem.represents(dgmlTag_Zoom)) {
0028         QString parsedText = parser.readElementText().toLower().trimmed();
0029         parentItem.nodeAs<GeoSceneZoom>()->setDiscrete(parsedText == dgmlValue_true || parsedText == dgmlValue_on);
0030     }
0031 
0032     return nullptr;
0033 }
0034 
0035 }
0036 }