#ifndef TRACKVIEW_H #define TRACKVIEW_H #include #include #include #include #include #include "units.h" #include "palette.h" #include "waypoint.h" class GPX; class POI; class Map; class WaypointItem; class MarkerItem; class ScaleItem; class TrackView : public QGraphicsView { Q_OBJECT public: TrackView(QWidget *parent = 0); ~TrackView(); void loadGPX(const GPX &gpx); void loadPOI(const POI &poi); void clearPOI(); void clear(); void setMap(Map *map); void setUnits(enum Units units); void plot(QPainter *painter, const QRectF &target); enum QPrinter::Orientation orientation() const; public slots: void movePositionMarker(qreal val); private slots: void redraw(); private: void addTrack(const QVector &track); void addWaypoints(const QList &waypoints); QRectF trackBoundingRect() const; QRectF waypointBoundingRect() const; qreal trackScale() const; qreal waypointScale() const; qreal mapScale(int zoom) const; void rescale(qreal scale); void showMarkers(bool show); void setTrackLineWidth(qreal width); void wheelEvent(QWheelEvent *event); void drawBackground(QPainter *painter, const QRectF &rect); void resizeEvent(QResizeEvent *e); void paintEvent(QPaintEvent *e); QGraphicsScene *_scene; QList > _tracks; QList _trackPaths; QList _waypoints; QList _markers; QHash _pois; Map *_map; ScaleItem *_mapScale; Palette _palette; qreal _maxLen; qreal _scale; int _zoom; }; #endif // TRACKVIEW_H