#ifndef PARSER_H #define PARSER_H #include #include #include struct TrackPoint { QPointF coordinates; QDateTime timestamp; qreal elevation; qreal geoidheight; qreal speed; TrackPoint() {elevation = 0; geoidheight = 0; speed = -1;} }; class Parser { public: bool loadFile(QIODevice *device, QVector &data); QString errorString() const; private: bool parse(QVector &data); void gpx(QVector &data); void trek(QVector &data); void trekPoints(QVector &data); void extensions(QVector &data); void trekPointData(QVector &data); void handleTrekPointAttributes(QVector &data, const QXmlStreamAttributes &attr); void handleTrekPointData(QVector &data, QStringRef element, const QString &value); void handleExtensionData(QVector &data, QStringRef element, const QString &value); QXmlStreamReader _reader; }; #endif // PARSER_H