File indexing completed on 2024-05-12 03:51:44
0001 /* 0002 SPDX-FileCopyrightText: 2009 Thibaut GRIDEL <tgridel@free.fr> 0003 SPDX-License-Identifier: LGPL-2.1-or-later 0004 */ 0005 0006 #include "GPXnameTagHandler.h" 0007 0008 #include "MarbleDebug.h" 0009 0010 #include "GPXElementDictionary.h" 0011 #include "GeoParser.h" 0012 #include "GeoDataPlacemark.h" 0013 #include "GeoDataPoint.h" 0014 0015 namespace Marble 0016 { 0017 namespace gpx 0018 { 0019 GPX_DEFINE_TAG_HANDLER(name) 0020 0021 GeoNode* GPXnameTagHandler::parse(GeoParser& parser) const 0022 { 0023 Q_ASSERT(parser.isStartElement() && parser.isValidElement(QLatin1String(gpxTag_name))); 0024 0025 GeoStackItem parentItem = parser.parentElement(); 0026 if (parentItem.represents(gpxTag_wpt) 0027 || parentItem.represents(gpxTag_trk) 0028 || parentItem.represents(gpxTag_rtept)) 0029 { 0030 GeoDataPlacemark* placemark = parentItem.nodeAs<GeoDataPlacemark>(); 0031 0032 placemark->setName(parser.readElementText().trimmed()); 0033 } 0034 else if (parentItem.represents(gpxTag_rte)) 0035 { 0036 GeoDataFeature* route = parentItem.nodeAs<GeoDataFeature>(); 0037 route->setName(parser.readElementText().trimmed()); 0038 } 0039 return nullptr; 0040 } 0041 0042 } // namespace gpx 0043 0044 } // namespace Marble