1 #ifndef DATA_H 2 #define DATA_H 3 4 #include <QList> 5 #include <QMap> 6 #include <QString> 7 #include <QStringList> 8 #include "waypoint.h" 9 #include "track.h" 10 #include "route.h" 11 #include "parser.h" 12 13 14 class Data 15 { 16 public: 17 Data(const QString &fileName); 18 isValid()19 bool isValid() const {return _valid;} errorString()20 const QString &errorString() const {return _errorString;} errorLine()21 int errorLine() const {return _errorLine;} 22 tracks()23 const QList<Track> &tracks() const {return _tracks;} routes()24 const QList<Route> &routes() const {return _routes;} waypoints()25 const QVector<Waypoint> &waypoints() const {return _waypoints;} areas()26 const QList<Area> &areas() const {return _polygons;} 27 28 static QString formats(); 29 static QStringList filter(); 30 31 private: 32 void processData(QList<TrackData> &trackData, QList<RouteData> &routeData); 33 34 bool _valid; 35 QString _errorString; 36 int _errorLine; 37 38 QList<Track> _tracks; 39 QList<Route> _routes; 40 QList<Area> _polygons; 41 QVector<Waypoint> _waypoints; 42 43 static QMap<QString, Parser*> _parsers; 44 }; 45 46 #endif // DATA_H 47