#include "ChartMarker.h" #include "ChartToolTip.h" const QPointF ChartMarker::ToolTipOffset(45, -35); const QColor ChartMarker::Color(Qt::blue); ChartMarker::ChartMarker(const QPointF& center, const QString& toolTipText): radius(Radius), toolTip(NULL), toolTipText(toolTipText) { setPos(center); setRect(QRectF(-HoverRadius, -HoverRadius, 2 * HoverRadius, 2 * HoverRadius)); setAcceptHoverEvents(true); } ChartMarker::~ChartMarker() { delete toolTip; } void ChartMarker::hoverEnterEvent(QGraphicsSceneHoverEvent*) { radius = HighlightedRadius; update(); if(!toolTip) createToolTip(); toolTip->show(); } void ChartMarker::createToolTip() { toolTip = new ChartToolTip(mapToScene(ToolTipOffset), toolTipText); scene()->addItem(toolTip); toolTip->adjustPos(); } void ChartMarker::hoverLeaveEvent(QGraphicsSceneHoverEvent*) { radius = Radius; update(); toolTip->hide(); } void ChartMarker::paint(QPainter* painter, const QStyleOptionGraphicsItem*, QWidget*) { painter->setPen(Color); painter->setBrush(Color); painter->drawEllipse(QPointF(), radius, radius); }