|
|
|
@ -708,14 +708,16 @@ void ChartView::mouseMoveEvent(QMouseEvent *ev) { |
|
|
|
|
if (!s.series->isVisible()) continue; |
|
|
|
|
|
|
|
|
|
// use reverse iterator to find last item <= sec.
|
|
|
|
|
double value = 0; |
|
|
|
|
auto it = std::lower_bound(s.vals.rbegin(), s.vals.rend(), sec, [](auto &p, double x) { return p.x() > x; }); |
|
|
|
|
if (it != s.vals.rend() && it->x() >= axis_x->min()) { |
|
|
|
|
value = it->y(); |
|
|
|
|
s.track_pt = chart()->mapToPosition(*it); |
|
|
|
|
x = std::max(x, s.track_pt.x()); |
|
|
|
|
} |
|
|
|
|
text_list.push_back(QString("<span style=\"color:%1;\">■ </span>%2: <b>%3</b>") |
|
|
|
|
.arg(s.series->color().name(), s.sig->name, |
|
|
|
|
s.track_pt.isNull() ? "--" : QString::number(s.track_pt.y()))); |
|
|
|
|
s.track_pt.isNull() ? "--" : QString::number(value))); |
|
|
|
|
} |
|
|
|
|
if (x < 0) { |
|
|
|
|
x = ev->pos().x(); |
|
|
|
@ -779,7 +781,7 @@ void ChartView::drawForeground(QPainter *painter, const QRectF &rect) { |
|
|
|
|
painter->setPen(Qt::NoPen); |
|
|
|
|
qreal track_line_x = -1; |
|
|
|
|
for (auto &s : sigs) { |
|
|
|
|
if (!s.track_pt.isNull() && s.series->isVisible()) { |
|
|
|
|
if (!s.track_pt.isNull() && s.series->isVisible()) {
|
|
|
|
|
painter->setBrush(s.series->color().darker(125)); |
|
|
|
|
painter->drawEllipse(s.track_pt, 5.5, 5.5); |
|
|
|
|
track_line_x = std::max(track_line_x, s.track_pt.x()); |
|
|
|
|