#include "gtl_gui_player_chart_range_body.h" namespace gtl { namespace gui { namespace player { chart_range_body::chart_range_body(::chart::series::series *parent) : ::chart::instrument::primitive::primitive(parent) { setFlag(QGraphicsItem::ItemIsMovable, false); setFlag(QGraphicsItem::ItemIsSelectable, false); setFlag(QGraphicsItem::ItemSendsGeometryChanges, false); setAcceptHoverEvents(false); } void chart_range_body::set_range(qreal x0, qreal x1) { prepareGeometryChange(); _left = qMin(x0, x1); _right = qMax(x0, x1); } QRectF chart_range_body::boundingRect() const { qreal left = _series->axis_x()->map_to_widget(_left); qreal right = _series->axis_x()->map_to_widget(_right); QRectF rect_axis = _series->axis_x()->boundingRect(); QRectF rect = QRectF(left, rect_axis.top(), right - left, rect_axis.height()); return rect; } QPainterPath chart_range_body::shape() const { return QPainterPath(); } void chart_range_body::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->fillRect(boundingRect(), QBrush(QColor(128, 128, 128, 64))); } } } }