#ifndef PARSER_H #define PARSER_H #include #include #include struct TrackPoint { QPointF coordinates; QDateTime timestamp; qreal elevation; }; 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 trekPointData(QVector &data); void handleTrekPointAttributes(QVector &data, const QXmlStreamAttributes &attr); void handleTrekPointData(QVector &data, QStringRef element, const QString &value); QXmlStreamReader _reader; }; #endif // PARSER_H