2016-08-16 00:27:54 +02:00
|
|
|
#ifndef GRAPHITEM_H
|
|
|
|
#define GRAPHITEM_H
|
|
|
|
|
2016-09-19 00:56:10 +02:00
|
|
|
#include <QGraphicsObject>
|
|
|
|
#include <QPen>
|
|
|
|
#include "graph.h"
|
2016-08-16 00:27:54 +02:00
|
|
|
|
2016-09-19 00:56:10 +02:00
|
|
|
class GraphItem : public QGraphicsObject
|
2016-08-16 00:27:54 +02:00
|
|
|
{
|
2016-09-19 00:56:10 +02:00
|
|
|
Q_OBJECT
|
|
|
|
|
2016-08-16 00:27:54 +02:00
|
|
|
public:
|
2016-09-19 00:56:10 +02:00
|
|
|
GraphItem(const Graph &graph, QGraphicsItem *parent = 0);
|
|
|
|
|
|
|
|
QRectF boundingRect() const
|
|
|
|
{return (_type == Graph::Distance) ? _distancePath.boundingRect()
|
|
|
|
: _timePath.boundingRect();}
|
|
|
|
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
|
|
|
QWidget *widget);
|
2016-08-16 00:27:54 +02:00
|
|
|
|
2016-09-19 00:56:10 +02:00
|
|
|
void setGraphType(Graph::Type type) {_type = type;}
|
2016-08-19 19:48:44 +02:00
|
|
|
int id() const {return _id;}
|
2016-08-16 00:27:54 +02:00
|
|
|
void setId(int id) {_id = id;}
|
2016-08-19 19:48:44 +02:00
|
|
|
void setColor(const QColor &color);
|
2016-08-16 00:27:54 +02:00
|
|
|
|
2016-09-19 00:56:10 +02:00
|
|
|
qreal yAtX(qreal x);
|
|
|
|
qreal distanceAtTime(qreal time);
|
|
|
|
|
|
|
|
signals:
|
|
|
|
void sliderPositionChanged(qreal);
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
void emitSliderPositionChanged(qreal);
|
|
|
|
|
2016-08-16 00:27:54 +02:00
|
|
|
private:
|
|
|
|
int _id;
|
2016-09-19 00:56:10 +02:00
|
|
|
QPen _pen;
|
|
|
|
QPainterPath _distancePath, _timePath;
|
|
|
|
Graph::Type _type;
|
2016-08-16 00:27:54 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // GRAPHITEM_H
|