From d24f813f3f2a05c112e803e4256b53535895fc98 Mon Sep 17 00:00:00 2001 From: Jedidiah Barber Date: Wed, 14 Jul 2021 11:49:10 +1200 Subject: Initial mirror commit --- src/charts/ChartToolTip.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/charts/ChartToolTip.cpp (limited to 'src/charts/ChartToolTip.cpp') diff --git a/src/charts/ChartToolTip.cpp b/src/charts/ChartToolTip.cpp new file mode 100644 index 0000000..15783ea --- /dev/null +++ b/src/charts/ChartToolTip.cpp @@ -0,0 +1,43 @@ +#include "ChartToolTip.h" + +const QFont ChartToolTip::Font("Sans Serif", 11); + +ChartToolTip::ChartToolTip(const QPointF& pos, const QString& text): + text(text) +{ + setPos(pos); + document.setDefaultFont(Font); + document.setHtml(text); + QSizeF docSize = document.size(); + setRect(QRectF(QPointF(-docSize.width() / 2, -docSize.height() / 2), docSize)); +} + +void ChartToolTip::paint(QPainter* painter, const QStyleOptionGraphicsItem*, + QWidget*) +{ + drawFrame(painter); + drawText(painter); +} + +void ChartToolTip::drawFrame(QPainter* painter) +{ + painter->setPen(QPen(Qt::black)); + painter->setBrush(QBrush(Qt::white)); + painter->drawRect(rect()); +} + +void ChartToolTip::drawText(QPainter* painter) +{ + painter->translate(rect().topLeft()); + document.drawContents(painter); +} + +void ChartToolTip::adjustPos() +{ + QRectF toolTipRect = mapRectToScene(boundingRect()); + QRectF sceneRect = scene()->sceneRect(); + if(toolTipRect.right() >= sceneRect.right()) + moveBy(-(toolTipRect.right() - sceneRect.right()) - 1, 0); + if(toolTipRect.top() <= sceneRect.top()) + moveBy(0, sceneRect.top() - toolTipRect.top() + 1); +} -- cgit