test_sdk/gui/player/gtl_gui_player_chart_range_...

47 lines
1.5 KiB
C++
Raw Normal View History

#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)));
}
}
}
}