File indexing completed on 2024-05-12 03:51:44
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2011 Niko Sams <niko.sams@gmail.com> 0004 // 0005 0006 #include "GPXhrTagHandler.h" 0007 0008 #include "MarbleDebug.h" 0009 0010 #include "GPXElementDictionary.h" 0011 #include "GeoParser.h" 0012 #include "GeoDataExtendedData.h" 0013 #include "GeoDataTrack.h" 0014 #include "GeoDataSimpleArrayData.h" 0015 0016 namespace Marble 0017 { 0018 namespace gpx 0019 { 0020 GPX_DEFINE_TAG_HANDLER_GARMIN_TRACKPOINTEXT1(hr) 0021 0022 GeoNode* GPXhrTagHandler::parse(GeoParser& parser) const 0023 { 0024 Q_ASSERT(parser.isStartElement() && parser.isValidElement(QLatin1String(gpxTag_hr))); 0025 0026 GeoStackItem parentItem = parser.parentElement(); 0027 0028 if ( parentItem.is<GeoDataTrack>() ) 0029 { 0030 GeoDataSimpleArrayData* arrayData = parentItem.nodeAs<GeoDataTrack>() 0031 ->extendedData().simpleArrayData(QStringLiteral("heartrate")); 0032 if (!arrayData) { 0033 arrayData = new GeoDataSimpleArrayData(); 0034 QString name = parser.attribute( "name" ).trimmed(); 0035 parentItem.nodeAs<GeoDataTrack>()->extendedData().setSimpleArrayData(QStringLiteral("heartrate"), arrayData); 0036 } 0037 QVariant value( parser.readElementText().toInt() ); 0038 arrayData->append( value ); 0039 return nullptr; 0040 } 0041 0042 return nullptr; 0043 } 0044 0045 } // namespace gpx 0046 0047 } // namespace Marble